2 # shellcheck disable=SC2086 # we want word splitting
6 # Building libdrm (libva dependency)
7 . .gitlab-ci/container/build-libdrm.sh
10 CMAKE_TOOLCHAIN_MINGW_PATH=$wd/.gitlab-ci/container/debian/x86_mingw-toolchain.cmake
14 # Building DirectX-Headers
15 git clone https://github.com/microsoft/DirectX-Headers -b v1.606.4 --depth 1
16 mkdir -p DirectX-Headers/build
17 pushd DirectX-Headers/build
20 --buildtype=release -Dbuild-test=false \
21 -Dprefix=/usr/x86_64-w64-mingw32/ \
22 --cross-file=$wd/.gitlab-ci/x86_64-w64-mingw32
28 git clone https://github.com/intel/libva
30 # Checking out commit hash with libva-win32 support
31 # This feature will be released with libva version 2.17
32 git checkout 2579eb0f77897dc01a02c1e43defc63c40fd2988
34 # libva already has a build dir in their repo, use builddir instead
35 mkdir -p libva/builddir
40 -Dprefix=/usr/x86_64-w64-mingw32/ \
41 --cross-file=$wd/.gitlab-ci/x86_64-w64-mingw32
46 export VULKAN_SDK_VERSION=1.3.211.0
48 # Building SPIRV Tools
49 git clone -b sdk-$VULKAN_SDK_VERSION --depth=1 \
50 https://github.com/KhronosGroup/SPIRV-Tools SPIRV-Tools
52 git clone -b sdk-$VULKAN_SDK_VERSION --depth=1 \
53 https://github.com/KhronosGroup/SPIRV-Headers SPIRV-Tools/external/SPIRV-Headers
55 mkdir -p SPIRV-Tools/build
56 pushd SPIRV-Tools/build
58 -DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_MINGW_PATH \
59 -DCMAKE_INSTALL_PREFIX=/usr/x86_64-w64-mingw32/ \
60 -GNinja -DCMAKE_BUILD_TYPE=Release \
61 -DCMAKE_CROSSCOMPILING=1 \
62 -DCMAKE_POLICY_DEFAULT_CMP0091=NEW
68 git clone -b release/14.x --depth=1 \
69 https://github.com/llvm/llvm-project llvm-project
71 git clone -b v14.0.0 --depth=1 \
72 https://github.com/KhronosGroup/SPIRV-LLVM-Translator llvm-project/llvm/projects/SPIRV-LLVM-Translator
74 mkdir llvm-project/build
75 pushd llvm-project/build
77 -DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_MINGW_PATH \
78 -DCMAKE_INSTALL_PREFIX=/usr/x86_64-w64-mingw32/ \
79 -GNinja -DCMAKE_BUILD_TYPE=Release \
80 -DCMAKE_CROSSCOMPILING=1 \
81 -DLLVM_ENABLE_RTTI=ON \
82 -DCROSS_TOOLCHAIN_FLAGS_NATIVE=-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=$PWD/../../SPIRV-Tools/external/SPIRV-Headers \
83 -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=$PWD/../../SPIRV-Tools/external/SPIRV-Headers \
84 -DLLVM_ENABLE_PROJECTS="clang" \
85 -DLLVM_TARGETS_TO_BUILD="AMDGPU;X86" \
86 -DLLVM_OPTIMIZED_TABLEGEN=TRUE \
87 -DLLVM_ENABLE_ASSERTIONS=TRUE \
88 -DLLVM_INCLUDE_UTILS=OFF \
89 -DLLVM_INCLUDE_RUNTIMES=OFF \
90 -DLLVM_INCLUDE_TESTS=OFF \
91 -DLLVM_INCLUDE_EXAMPLES=OFF \
92 -DLLVM_INCLUDE_GO_TESTS=OFF \
93 -DLLVM_INCLUDE_BENCHMARKS=OFF \
94 -DLLVM_BUILD_LLVM_C_DYLIB=OFF \
95 -DLLVM_ENABLE_DIA_SDK=OFF \
96 -DCLANG_BUILD_TOOLS=ON \
97 -DLLVM_SPIRV_INCLUDE_TESTS=OFF
103 mkdir llvm-project/build-libclc
104 pushd llvm-project/build-libclc
106 -DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_MINGW_PATH \
107 -DCMAKE_INSTALL_PREFIX=/usr/x86_64-w64-mingw32/ \
108 -GNinja -DCMAKE_BUILD_TYPE=Release \
109 -DCMAKE_CROSSCOMPILING=1 \
110 -DCMAKE_POLICY_DEFAULT_CMP0091=NEW \
111 -DCMAKE_CXX_FLAGS="-m64" \
112 -DLLVM_CONFIG="/usr/x86_64-w64-mingw32/bin/llvm-config" \
113 -DLLVM_CLANG="/usr/x86_64-w64-mingw32/bin/clang" \
114 -DLLVM_AS="/usr/x86_64-w64-mingw32/bin/llvm-as" \
115 -DLLVM_LINK="/usr/x86_64-w64-mingw32/bin/llvm-link" \
116 -DLLVM_OPT="/usr/x86_64-w64-mingw32/bin/opt" \
117 -DLLVM_SPIRV="/usr/x86_64-w64-mingw32/bin/llvm-spirv" \
118 -DLIBCLC_TARGETS_TO_BUILD="spirv-mesa3d-;spirv64-mesa3d-"