summaryrefslogtreecommitdiff
path: root/shaderc/Pkgfile
blob: e92b3d100192a4a66f690232ef8a293d1c8ac1d7 (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.3
    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 }

Generated by cgit