blob: 5903335c9ccf12028b765ff3a33fe5f9ff7bfb11 (
plain)
1 # Description: A collection of tools, libraries and tests for shader compilation.
2 # URL: https://github.com/google/shaderc
3 # Maintainer: Danny Rawlins, crux at romster dot me
4 # Depends on: glslang spirv-tools
5 # Optional: asciidoctor
6
7 name=shaderc
8 version=2021.2
9 ## DEPS
10 _spirv_headers=f027d53ded7e230e008d37c8b47ede7cd308e19d
11 release=1
12 source=(https://github.com/google/shaderc/archive/v$version/$name-v$version.tar.gz
13 https://github.com/KhronosGroup/SPIRV-Headers/archive/$_spirv_headers/SPIRV-Headers-$_spirv_headers.tar.gz
14 glslc.1)
15
16 build() {
17 mkdir -p $name-$version/third_party/spirv-headers
18 mv SPIRV-Headers-$_spirv_headers/* $name-$version/third_party/spirv-headers
19
20 # de-vendor libs and disable git versioning
21 sed '/examples/d;/third_party/d' -i $name-$version/CMakeLists.txt
22 sed '/build-version/d' -i $name-$version/glslc/CMakeLists.txt
23 cat <<- EOF > $name-$version/glslc/src/build-version.inc
24 "${version}\\n"
25 "$(prt-get info spirv-tools | awk '/^Version:/ {print $2}')\\n"
26 "$(prt-get info glslang | awk '/^Version:/ {print $2}')\\n"
27 EOF
28
29 prt-get isinst ninja && PKGMK_SHADERC+=' -G Ninja'
30
31 cmake -S $name-$version -B build $PKGMK_SHADERC \
32 -D CMAKE_INSTALL_PREFIX=/usr \
33 -D CMAKE_INSTALL_LIBDIR=lib \
34 -D CMAKE_BUILD_TYPE=Release \
35 -D CMAKE_CXX_FLAGS_RELEASE="$CXXFLAGS" \
36 -D CMAKE_C_FLAGS_RELEASE="$CFLAGS" \
37 -D CMAKE_EXE_LINKER_FLAGS="$LDFLAGS -Wl,-z,defs" \
38 -D SHADERC_SKIP_TESTS=ON \
39 -D glslang_SOURCE_DIR:PATH='/usr/include/glslang' \
40 -D SPIRV-Headers_SOURCE_DIR:PATH="$SRC/$name-$version/third_party/spirv-headers"
41
42 cmake --build build -j ${JOBS:-1}
43 DESTDIR=$PKG cmake --install build
44
45 if [ -e '/usr/bin/asciidoctor' ]; then
46 cd $name-$version/glslc
47 asciidoctor -b manpage README.asciidoc -o glslc.1
48 install -D -m 0644 -t $PKG/usr/share/man/man1 glslc.1
49 cd -
50 else
51 install -D -m 0644 -t $PKG/usr/share/man/man1 $SRC/glslc.1
52 fi
53 }
|