From cec0dfcbbda1e11e5ff2f45e58ea393d0437d7c6 Mon Sep 17 00:00:00 2001 From: Juozas Date: Tue, 22 Jun 2021 20:59:09 +0300 Subject: [PATCH] Buildbot: Use posix on Win64 builds if available (#11355) 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 | 13 ++++++++++++- .../toolchain_x86_64-w64-mingw32-posix.cmake | 19 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 util/buildbot/toolchain_x86_64-w64-mingw32-posix.cmake diff --git a/util/buildbot/buildwin64.sh b/util/buildbot/buildwin64.sh index b9b23a133..3b5d61c96 100755 --- a/util/buildbot/buildwin64.sh +++ b/util/buildbot/buildwin64.sh @@ -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 index 000000000..b6b237657 --- /dev/null +++ b/util/buildbot/toolchain_x86_64-w64-mingw32-posix.cmake @@ -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)