1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-09-15 18:57:08 +00:00

Switch to LLVM-based MinGW toolchain (#14329)

This commit is contained in:
sfan5 2024-02-16 21:36:19 +01:00 committed by GitHub
parent 8c3a6a819e
commit f483d10c95
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 110 additions and 147 deletions

View file

@ -9,9 +9,9 @@ curl_version=8.5.0
gettext_version=0.20.2
freetype_version=2.13.2
sqlite3_version=3.44.2
luajit_version=20231211
luajit_version=20240125
leveldb_version=1.23
zlib_version=1.3
zlib_version=1.3.1
zstd_version=1.5.5
download () {
@ -48,11 +48,11 @@ get_sources () {
# sets $runtime_dlls
find_runtime_dlls () {
local triple=$1
# Try to find runtime DLLs in various paths (varies by distribution, sigh)
# Try to find runtime DLLs in various paths
local tmp=$(dirname "$(command -v $compiler)")/..
runtime_dlls=
for name in lib{gcc_,stdc++-,winpthread-}'*'.dll; do
for dir in $tmp/$triple/{bin,lib} $tmp/lib/gcc/$triple/*; do
for name in lib{clang_rt,c++,unwind,winpthread-}'*'.dll; do
for dir in $tmp/$triple/{bin,lib}; do
[ -d "$dir" ] || continue
local file=$(echo $dir/$name)
[ -f "$file" ] && { runtime_dlls+="$file;"; break; }
@ -65,14 +65,20 @@ find_runtime_dlls () {
fi
}
add_cmake_libs () {
local irr_dlls=$(echo $libdir/irrlicht/lib/*.dll | tr ' ' ';')
local vorbis_dlls=$(echo $libdir/libvorbis/bin/libvorbis{,file}-*.dll | tr ' ' ';')
local gettext_dlls=$(echo $libdir/gettext/bin/lib{intl,iconv}-*.dll | tr ' ' ';')
_dlls () {
for f in "$@"; do
if [ ! -e "$f" ]; then
echo "Could not find $f" >&2
elif [[ -f "$f" && "$f" == *.dll ]]; then
printf '%s;' "$f"
fi
done
}
add_cmake_libs () {
cmake_args+=(
-DCMAKE_PREFIX_PATH=$libdir/irrlicht
-DIRRLICHT_DLL="$irr_dlls"
-DIRRLICHT_DLL="$(_dlls $libdir/irrlicht/lib/*)"
-DZLIB_INCLUDE_DIR=$libdir/zlib/include
-DZLIB_LIBRARY=$libdir/zlib/lib/libz.dll.a
@ -87,37 +93,37 @@ add_cmake_libs () {
-DOGG_INCLUDE_DIR=$libdir/libogg/include
-DOGG_LIBRARY=$libdir/libogg/lib/libogg.dll.a
-DOGG_DLL=$libdir/libogg/bin/libogg-0.dll
-DOGG_DLL="$(_dlls $libdir/libogg/bin/*)"
-DVORBIS_INCLUDE_DIR=$libdir/libvorbis/include
-DVORBIS_LIBRARY=$libdir/libvorbis/lib/libvorbis.dll.a
-DVORBIS_DLL="$vorbis_dlls"
-DVORBIS_DLL="$(_dlls $libdir/libvorbis/bin/libvorbis{,file}[-.]*)"
-DVORBISFILE_LIBRARY=$libdir/libvorbis/lib/libvorbisfile.dll.a
-DOPENAL_INCLUDE_DIR=$libdir/openal/include/AL
-DOPENAL_LIBRARY=$libdir/openal/lib/libOpenAL32.dll.a
-DOPENAL_DLL=$libdir/openal/bin/OpenAL32.dll
-DCURL_DLL=$libdir/curl/bin/libcurl-4.dll
-DCURL_DLL="$(_dlls $libdir/curl/bin/libcurl*)"
-DCURL_INCLUDE_DIR=$libdir/curl/include
-DCURL_LIBRARY=$libdir/curl/lib/libcurl.dll.a
-DGETTEXT_MSGFMT=`command -v msgfmt`
-DGETTEXT_DLL="$gettext_dlls"
-DGETTEXT_DLL="$(_dlls $libdir/gettext/bin/lib{intl,iconv}*)"
-DGETTEXT_INCLUDE_DIR=$libdir/gettext/include
-DGETTEXT_LIBRARY=$libdir/gettext/lib/libintl.dll.a
-DFREETYPE_INCLUDE_DIR_freetype2=$libdir/freetype/include/freetype2
-DFREETYPE_INCLUDE_DIR_ft2build=$libdir/freetype/include/freetype2
-DFREETYPE_LIBRARY=$libdir/freetype/lib/libfreetype.dll.a
-DFREETYPE_DLL=$libdir/freetype/bin/libfreetype-6.dll
-DFREETYPE_DLL="$(_dlls $libdir/freetype/bin/libfreetype*)"
-DSQLITE3_INCLUDE_DIR=$libdir/sqlite3/include
-DSQLITE3_LIBRARY=$libdir/sqlite3/lib/libsqlite3.dll.a
-DSQLITE3_DLL=$libdir/sqlite3/bin/libsqlite3-0.dll
-DSQLITE3_DLL="$(_dlls $libdir/sqlite3/bin/libsqlite*)"
-DLEVELDB_INCLUDE_DIR=$libdir/leveldb/include
-DLEVELDB_LIBRARY=$libdir/leveldb/lib/libleveldb.dll.a
-DLEVELDB_DLL=$libdir/leveldb/bin/libleveldb.dll
-DLEVELDB_INCLUDE_DIR=$libdir/libleveldb/include
-DLEVELDB_LIBRARY=$libdir/libleveldb/lib/libleveldb.dll.a
-DLEVELDB_DLL=$libdir/libleveldb/bin/libleveldb.dll
)
}