summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlat9nq <lat9nq@gmail.com>2022-05-29 03:35:08 -0400
committerlat9nq <lat9nq@gmail.com>2022-06-16 23:57:39 -0400
commitc42fde2a373f676b5464168a8df14b22c6b46755 (patch)
tree0edc04f8fce4a6b3773257a3007519aecd7fb1f1
parentfef3d8acb51e6a23a73b7f3d2fbf21a80c41351c (diff)
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.
-rwxr-xr-x.ci/scripts/windows/docker.sh14
1 files 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