summaryrefslogtreecommitdiff
path: root/.ci
diff options
context:
space:
mode:
authorGravatar lat9nq2022-05-29 03:35:08 -0400
committerGravatar lat9nq2022-06-16 23:57:39 -0400
commitc42fde2a373f676b5464168a8df14b22c6b46755 (patch)
tree0edc04f8fce4a6b3773257a3007519aecd7fb1f1 /.ci
parentCMakeModules: Add MinGWClangCross (diff)
downloadyuzu-c42fde2a373f676b5464168a8df14b22c6b46755.tar.gz
yuzu-c42fde2a373f676b5464168a8df14b22c6b46755.tar.xz
yuzu-c42fde2a373f676b5464168a8df14b22c6b46755.zip
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.
Diffstat (limited to '.ci')
-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 @@
1#!/bin/bash -ex 1#!/bin/bash -ex
2 2
3set -e
4
3cd /yuzu 5cd /yuzu
4 6
5ccache -s 7ccache -s
6 8
7mkdir build || true && cd build 9mkdir build || true && cd build
10LDFLAGS="-fuse-ld=lld"
11# -femulated-tls required due to an incompatibility between GCC and Clang
12# TODO(lat9nq): If this is widespread, we probably need to add this to CMakeLists where appropriate
8cmake .. \ 13cmake .. \
9 -DCMAKE_BUILD_TYPE=Release \ 14 -DCMAKE_BUILD_TYPE=Release \
10 -DCMAKE_TOOLCHAIN_FILE="$(pwd)/../CMakeModules/MinGWCross.cmake" \ 15 -DCMAKE_CXX_FLAGS="-femulated-tls" \
16 -DCMAKE_TOOLCHAIN_FILE="$(pwd)/../CMakeModules/MinGWClangCross.cmake" \
11 -DDISPLAY_VERSION=$1 \ 17 -DDISPLAY_VERSION=$1 \
12 -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \ 18 -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
13 -DENABLE_QT_TRANSLATION=ON \ 19 -DENABLE_QT_TRANSLATION=ON \
14 -DUSE_CCACHE=ON \ 20 -DUSE_CCACHE=ON \
15 -GNinja \ 21 -DYUZU_USE_BUNDLED_SDL2=OFF \
16ninja 22 -DYUZU_USE_EXTERNAL_SDL2=OFF \
23 -GNinja
24ninja yuzu yuzu-cmd
17 25
18ccache -s 26ccache -s
19 27