contrib/shaderc/Pkgfile
2021-02-28 00:27:39 +11:00

57 lines
1.9 KiB
Plaintext

# Description: A collection of tools, libraries and tests for shader compilation.
# URL: https://github.com/google/shaderc
# Maintainer: Danny Rawlins, crux at romster dot me
# Depends on: glslang
# Optional: asciidoctor
name=shaderc
version=2020.4-0dbd899
release=1
source=(#https://github.com/google/shaderc/archive/v$version/$name-v$version.tar.gz
https://github.com/google/shaderc/archive/0dbd899941a43ffd55df527d65128b3b66e75c9c.zip
glslc.1 glslc-asciidoc.patch
0001-Drop-third-party-code-in-CMakeLists.txt.patch
glslang_linker_flags.patch)
build() {
mv $name-0dbd899941a43ffd55df527d65128b3b66e75c9c $name-$version
patch -d $name-$version/glslc -p0 -i $SRC/glslc-asciidoc.patch
patch -p1 -d $name-$version -i $SRC/0001-Drop-third-party-code-in-CMakeLists.txt.patch
patch -p1 -d $name-$version -i $SRC/glslang_linker_flags.patch
# de-vendor libs and disable git versioning
sed '/examples/d;/third_party/d' -i $name-$version/CMakeLists.txt
sed '/build-version/d' -i $name-$version/glslc/CMakeLists.txt
cat <<- EOF > $name-$version/glslc/src/build-version.inc
"${version}\\n"
"$(prt-get info spirv-tools | awk '/^Version:/ {print $2}')\\n"
"$(prt-get info glslang | awk '/^Version:/ {print $2}')\\n"
EOF
# Point to correct include
sed -i 's|SPIRV/GlslangToSpv.h|glslang/SPIRV/GlslangToSpv.h|' $name-$version/libshaderc_util/src/compiler.cc
cmake -S $name-$version -B build -G Ninja \
-D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_INSTALL_LIBDIR=lib \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_CXX_FLAGS_RELEASE="$CXXFLAGS" \
-D CMAKE_C_FLAGS_RELEASE="$CFLAGS" \
-D SHADERC_SKIP_TESTS=ON \
-Wno-dev
cmake --build build -j ${JOBS:-1}
DESTDIR=$PKG cmake --install build
if [ -e '/usr/bin/asciidoctor' ]; then
cd $name-$version/glslc
asciidoctor -b manpage README.asciidoc -o glslc.1
install -D -m 0644 -t $PKG/usr/share/man/man1 glslc.1
cd -
else
install -D -m 0644 -t $PKG/usr/share/man/man1 $SRC/glslc.1
fi
}