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.
This commit is contained in:
		| @@ -1,19 +1,27 @@ | |||||||
| #!/bin/bash -ex | #!/bin/bash -ex | ||||||
|  |  | ||||||
|  | set -e | ||||||
|  |  | ||||||
| cd /yuzu | cd /yuzu | ||||||
|  |  | ||||||
| ccache -s | ccache -s | ||||||
|  |  | ||||||
| mkdir build || true && cd build | 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 .. \ | cmake .. \ | ||||||
|     -DCMAKE_BUILD_TYPE=Release \ |     -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 \ |     -DDISPLAY_VERSION=$1 \ | ||||||
|     -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \ |     -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \ | ||||||
|     -DENABLE_QT_TRANSLATION=ON \ |     -DENABLE_QT_TRANSLATION=ON \ | ||||||
|     -DUSE_CCACHE=ON \ |     -DUSE_CCACHE=ON \ | ||||||
|     -GNinja \ |     -DYUZU_USE_BUNDLED_SDL2=OFF \ | ||||||
| ninja |     -DYUZU_USE_EXTERNAL_SDL2=OFF \ | ||||||
|  |     -GNinja | ||||||
|  | ninja yuzu yuzu-cmd | ||||||
|  |  | ||||||
| ccache -s | ccache -s | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user