]> git.lizzy.rs Git - dragonfireclient.git/commitdiff
Buildbot: Use posix on Win64 builds if available (#11355)
authorJuozas <juozaspo@gmail.com>
Tue, 22 Jun 2021 17:59:09 +0000 (20:59 +0300)
committerGitHub <noreply@github.com>
Tue, 22 Jun 2021 17:59:09 +0000 (19:59 +0200)
Use posix mingw-w64 toolchain on Win64 builds where applicable, avoids
many build errors when using buildwin64.sh to build 64 bit builds on
Ubuntu based Linux distributions

util/buildbot/buildwin64.sh
util/buildbot/toolchain_x86_64-w64-mingw32-posix.cmake [new file with mode: 0644]

index b9b23a1337a368545777e6c5178f147bc9910daf..3b5d61c96280c603b5cf0c9c2277b89c886b0566 100755 (executable)
@@ -18,7 +18,18 @@ mkdir -p $builddir
 builddir="$( cd "$builddir" && pwd )"
 libdir=$builddir/libs
 
-toolchain_file=$dir/toolchain_x86_64-w64-mingw32.cmake
+# Test which win64 compiler is present
+which x86_64-w64-mingw32-gcc &>/dev/null &&
+       toolchain_file=$dir/toolchain_x86_64-w64-mingw32.cmake
+which x86_64-w64-mingw32-gcc-posix &>/dev/null &&
+       toolchain_file=$dir/toolchain_x86_64-w64-mingw32-posix.cmake
+
+if [ -z "$toolchain_file" ]; then
+       echo "Unable to determine which mingw32 compiler to use"
+       exit 1
+fi
+echo "Using $toolchain_file"
+
 irrlicht_version=1.9.0mt1
 ogg_version=1.3.4
 vorbis_version=1.3.7
diff --git a/util/buildbot/toolchain_x86_64-w64-mingw32-posix.cmake b/util/buildbot/toolchain_x86_64-w64-mingw32-posix.cmake
new file mode 100644 (file)
index 0000000..b6b2376
--- /dev/null
@@ -0,0 +1,19 @@
+# name of the target operating system
+SET(CMAKE_SYSTEM_NAME Windows)
+
+# which compilers to use for C and C++
+# *-posix is Ubuntu's naming for the MinGW variant that comes with support
+# for pthreads / std::thread (required by MT)
+SET(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc-posix)
+SET(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++-posix)
+SET(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres)
+
+# here is the target environment located
+SET(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32)
+
+# adjust the default behaviour of the FIND_XXX() commands:
+# search headers and libraries in the target environment, search
+# programs in the host environment
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)