Skip to content

Commit 24e0fc5

Browse files
committed
scripts: add build-spirv-tools
1 parent e0ebf7c commit 24e0fc5

5 files changed

Lines changed: 76 additions & 28 deletions

File tree

build-all

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
cd "$(dirname "$0")"
44

55
./build-vulkan
6+
./build-spirv-tools
67
./build-moltenvk
78
./build-shaderc
89
./build-lcms2

build-moltenvk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@ cmake -B "${builddir}" -S "${srcdir}" \
2020
-DCMAKE_INSTALL_NAME_DIR="${pkgdir}/lib" \
2121
-DCMAKE_BUILD_TYPE=Release \
2222
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
23+
-DCPM_SOURCE_CACHE="${srcdir}/External/CPM" \
2324
-DMVK_CONFIG_LOG_LEVEL=error \
2425
-DMVK_USE_METAL_PRIVATE_API=ON \
25-
-DCPM_SOURCE_CACHE="${srcdir}/External/CPM" \
26+
-DMVK_EXCLUDE_SPIRV_TOOLS=ON \
2627
-Wno-dev \
2728
"$@"
2829

build-spirv-tools

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#!/bin/bash -e
2+
#
3+
# SPIRV-Tools
4+
# https://github.com/KhronosGroup/SPIRV-Tools.git
5+
#
6+
# SPIRV-Headers
7+
# https://github.com/KhronosGroup/SPIRV-Headers.git
8+
#
9+
cd "$(dirname "$0")"
10+
set -a; . .env; set +a
11+
12+
pkgname="spirv-tools"
13+
pkgdir="${STOWDIR}/${pkgname}"
14+
tools_srcdir="src/SPIRV-Tools"
15+
headers_srcdir="src/SPIRV-Headers"
16+
builddir="${TMPDIR:-/tmp}/build.${pkgname}"
17+
18+
echo "::group::$0"
19+
20+
rm -rf "${builddir}" "${pkgdir}"
21+
22+
cmake -B "${builddir}" -S "${headers_srcdir}" \
23+
-DCMAKE_INSTALL_PREFIX="${pkgdir}" \
24+
-DCMAKE_BUILD_TYPE=Release \
25+
-DSPIRV_HEADERS_ENABLE_INSTALL=ON \
26+
-DSPIRV_HEADERS_ENABLE_TESTS=OFF
27+
28+
cmake --install "${builddir}"
29+
30+
rm -rf "${builddir}"
31+
32+
cmake -B "${builddir}" -S "${tools_srcdir}" \
33+
-DCMAKE_INSTALL_PREFIX="${pkgdir}" \
34+
-DCMAKE_INSTALL_NAME_DIR="${pkgdir}/lib" \
35+
-DCMAKE_BUILD_TYPE=Release \
36+
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
37+
-DBUILD_SHARED_LIBS=OFF \
38+
-DSPIRV-Headers_SOURCE_DIR="${pkgdir}" \
39+
-DSPIRV_SKIP_EXECUTABLES=ON \
40+
-DSPIRV_SKIP_TESTS=ON \
41+
"$@"
42+
43+
cmake --build "${builddir}"
44+
cmake --install "${builddir}"
45+
rm -rf "${pkgdir}"/{lib,share}/cmake
46+
stow -Rd "${STOWDIR}" "${pkgname}"
47+
48+
rm -rf "${builddir}"
49+
50+
echo "::endgroup::"

build-vulkan

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,25 @@
11
#!/bin/bash -e
22
#
3-
# Vulkan Headers
4-
# https://github.com/KhronosGroup/Vulkan-Headers.git
5-
#
63
# Vulkan Loader
74
# https://github.com/KhronosGroup/Vulkan-Loader.git
85
#
9-
# SPIRV-Headers
10-
# https://github.com/KhronosGroup/SPIRV-Headers.git
6+
# Vulkan Headers
7+
# https://github.com/KhronosGroup/Vulkan-Headers.git
118
#
129
cd "$(dirname "$0")"
1310
set -a; . .env; set +a
1411

1512
pkgname="vulkan"
1613
pkgdir="${STOWDIR}/${pkgname}"
17-
vulkan_headers_srcdir="src/Vulkan-Headers"
18-
vulkan_loader_srcdir="src/Vulkan-Loader"
19-
spirv_headers_srcdir="src/SPIRV-Headers"
14+
loader_srcdir="src/Vulkan-Loader"
15+
headers_srcdir="src/Vulkan-Headers"
2016
builddir="${TMPDIR:-/tmp}/build.${pkgname}"
2117

2218
echo "::group::$0"
2319

2420
rm -rf "${builddir}" "${pkgdir}"
2521

26-
cmake -B "${builddir}" -S "${vulkan_headers_srcdir}" \
22+
cmake -B "${builddir}" -S "${headers_srcdir}" \
2723
-DCMAKE_INSTALL_PREFIX="${pkgdir}" \
2824
-DCMAKE_BUILD_TYPE=Release \
2925
-DVULKAN_HEADERS_ENABLE_INSTALL=ON \
@@ -33,17 +29,7 @@ cmake --install "${builddir}"
3329

3430
rm -rf "${builddir}"
3531

36-
cmake -B "${builddir}" -S "${spirv_headers_srcdir}" \
37-
-DCMAKE_INSTALL_PREFIX="${pkgdir}" \
38-
-DCMAKE_BUILD_TYPE=Release \
39-
-DSPIRV_HEADERS_ENABLE_INSTALL=ON \
40-
-DSPIRV_HEADERS_ENABLE_TESTS=OFF
41-
42-
cmake --install "${builddir}"
43-
44-
rm -rf "${builddir}"
45-
46-
cmake -B "${builddir}" -S "${vulkan_loader_srcdir}" \
32+
cmake -B "${builddir}" -S "${loader_srcdir}" \
4733
-DCMAKE_INSTALL_PREFIX="${pkgdir}" \
4834
-DCMAKE_INSTALL_NAME_DIR="${pkgdir}/lib" \
4935
-DCMAKE_BUILD_TYPE=Release \

fetch

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,14 @@ fetch_shaderc() {
164164
git -C src clone --depth 1 "${url}"
165165
}
166166

167+
fetch_spirv-tools() {
168+
local tools_url="https://github.com/KhronosGroup/SPIRV-Tools.git"
169+
local headers_url="https://github.com/KhronosGroup/SPIRV-Headers.git"
170+
rm -rf src/SPIRV-{Tools,Headers}
171+
git -C src clone --depth 1 "${tools_url}"
172+
git -C src clone --depth 1 "${headers_url}"
173+
}
174+
167175
fetch_svt-av1() {
168176
local url="https://gitlab.com/AOMediaCodec/SVT-AV1.git"
169177
rm -rf src/SVT-AV1
@@ -177,13 +185,11 @@ fetch_uchardet() {
177185
}
178186

179187
fetch_vulkan() {
180-
local vulkan_loader_url="https://github.com/KhronosGroup/Vulkan-Loader.git"
181-
local vulkan_headers_url="https://github.com/KhronosGroup/Vulkan-Headers.git"
182-
local spirv_headers_url="https://github.com/KhronosGroup/SPIRV-Headers.git"
183-
rm -rf src/Vulkan-{Loader,Headers} src/SPIRV-Headers
184-
git -C src clone --depth 1 "${vulkan_loader_url}"
185-
git -C src clone --depth 1 "${vulkan_headers_url}"
186-
git -C src clone --depth 1 "${spirv_headers_url}"
188+
local loader_url="https://github.com/KhronosGroup/Vulkan-Loader.git"
189+
local headers_url="https://github.com/KhronosGroup/Vulkan-Headers.git"
190+
rm -rf src/Vulkan-{Loader,Headers}
191+
git -C src clone --depth 1 "${loader_url}"
192+
git -C src clone --depth 1 "${headers_url}"
187193
}
188194

189195
fetch_whisper() {
@@ -233,6 +239,7 @@ if [[ "$*" == "all" ]]; then
233239
fetch_mpv
234240
fetch_opus
235241
fetch_shaderc
242+
fetch_spirv-tools
236243
fetch_svt-av1
237244
fetch_uchardet
238245
fetch_vulkan
@@ -314,6 +321,9 @@ else
314321
"shaderc")
315322
fetch_shaderc
316323
;;
324+
"spirv-tools")
325+
fetch_spirv-tools
326+
;;
317327
"svt-av1")
318328
fetch_svt-av1
319329
;;

0 commit comments

Comments
 (0)