# 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 spirv-tools
# Optional: asciidoctor

name=shaderc
version=2023.5
release=1
source=(https://github.com/google/shaderc/archive/v$version/$name-v$version.tar.gz
	glslc.1)

build() {
	# 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 printf '%v\n' --filter=spirv-tools)"
"$(prt-get printf '%v\n' --filter=glslang)"
EOF
	sed -i -e "s|\$<TARGET_FILE:spirv-dis>|spirv-dis|" \
		$name-$version/glslc/test/CMakeLists.txt

	cmake -S $name-$version -B build -G Ninja $PKGMK_SHADERC \
		-D CMAKE_INSTALL_PREFIX=/usr \
		-D CMAKE_INSTALL_LIBDIR=lib \
		-D CMAKE_BUILD_TYPE=Release \
		-D CMAKE_CXX_FLAGS_RELEASE="${CXXFLAGS} -ffat-lto-objects" \
		-D SHADERC_SKIP_TESTS=ON \
		-D glslang_SOURCE_DIR:PATH='/usr/include/glslang'

	cmake --build build -j ${JOBS:-1}
	DESTDIR=$PKG cmake --install build

	if [ -e '/usr/bin/asciidoctor' ]; then
		sed 's/^`glslc`/glslc/' $name-$version/glslc/README.asciidoc \
		| asciidoctor -q -b manpage -o glslc.1 -
		install -D -m 0644 -t $PKG/usr/share/man/man1 glslc.1
	else
		install -D -m 0644 -t $PKG/usr/share/man/man1 $SRC/glslc.1
	fi
}
