From c42fde2a373f676b5464168a8df14b22c6b46755 Mon Sep 17 00:00:00 2001 From: lat9nq Date: Sun, 29 May 2022 03:35:08 -0400 Subject: [PATCH] ci/windows: Build using Clang Uses the MinGWClangCross toolchain script to build yuzu. Disables our bundled SDL2 to use the system ones that have been modified to not use `-mwindows`. Also set's `-e` to stop the script on an error (as opposed to packaging nothing). Uses LLVM's linker for linking yuzu. Adds -femulated-tls due to a libstdc++ incompatibility between GCC and Clang in vulkan_common. --- .ci/scripts/windows/docker.sh | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.ci/scripts/windows/docker.sh b/.ci/scripts/windows/docker.sh index d1a0d6ab9..f53d837d1 100755 --- a/.ci/scripts/windows/docker.sh +++ b/.ci/scripts/windows/docker.sh @@ -1,19 +1,27 @@ #!/bin/bash -ex +set -e + cd /yuzu ccache -s mkdir build || true && cd build +LDFLAGS="-fuse-ld=lld" +# -femulated-tls required due to an incompatibility between GCC and Clang +# TODO(lat9nq): If this is widespread, we probably need to add this to CMakeLists where appropriate cmake .. \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_TOOLCHAIN_FILE="$(pwd)/../CMakeModules/MinGWCross.cmake" \ + -DCMAKE_CXX_FLAGS="-femulated-tls" \ + -DCMAKE_TOOLCHAIN_FILE="$(pwd)/../CMakeModules/MinGWClangCross.cmake" \ -DDISPLAY_VERSION=$1 \ -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \ -DENABLE_QT_TRANSLATION=ON \ -DUSE_CCACHE=ON \ - -GNinja \ -ninja + -DYUZU_USE_BUNDLED_SDL2=OFF \ + -DYUZU_USE_EXTERNAL_SDL2=OFF \ + -GNinja +ninja yuzu yuzu-cmd ccache -s