opt/glslang/Pkgfile
2021-04-24 14:05:46 +10:00

57 lines
2.1 KiB
Plaintext

# Description: OpenGL and OpenGL ES shader front end and validator
# URL: https://www.khronos.org/opengles/sdk/tools/Reference-Compiler
# Maintainer: Danny Rawlins, crux at romster dot me
# Depends on: cmake
# Optional: ninja
name=glslang
version=11.4.0
release=1
_spirv_headers=dafead1765f6c1a5f9f8a76387dcb2abe4e54acd
_spirv_tools=dc72924cb31cd9f3dbc3eb47e9d926cf641e3a07
source=(https://github.com/KhronosGroup/glslang/archive/$version/$name-$version.tar.gz
https://github.com/KhronosGroup/SPIRV-Headers/archive/$_spirv_headers/SPIRV-Headers-$_spirv_headers.tar.gz
https://github.com/KhronosGroup/SPIRV-Tools/archive/$_spirv_tools/SPIRV-Tools-$_spirv_tools.tar.gz
known_good.py.in)
build() {
cp -r SPIRV-Tools-$_spirv_tools $name-$version/External/spirv-tools
cp -r SPIRV-Headers-$_spirv_headers $name-$version/External/spirv-tools/external/spirv-headers
sed -e "s|@SRC@|$SRC/$name-$version|" $SRC/known_good.py.in > $SRC/known_good.py
chmod u+x $SRC/known_good.py
$SRC/known_good.py
prt-get isinst ninja && PKGMK_GLSLANG+=' -G Ninja'
prt-get isinst ccache && \
PKGMK_GLSLANG+=' -D USE_CCACHE=ON' && \
PATH="$(echo ${PATH} | awk -v RS=: -v ORS=: '/ccache/ {next} {print}' | sed 's/:*$//')"
local config="
-S $name-$version
-D CMAKE_INSTALL_PREFIX=/usr
-D CMAKE_INSTALL_LIBDIR=lib
-D CMAKE_BUILD_TYPE=Release
-D CMAKE_SKIP_RPATH:BOOL=yes
-Wno-dev"
cmake -B build-static $config $PKGMK_GLSLANG \
-D BUILD_SHARED_LIBS=OFF \
-D CMAKE_CXX_FLAGS_RELEASE="${CXXFLAGS}"
cmake --build build-static
# https://github.com/KhronosGroup/glslang/issues/1484 -Wl,--no-undefined
cmake -B build-shared $config $PKGMK_GLSLANG \
-D BUILD_SHARED_LIBS=ON \
-D CMAKE_CXX_FLAGS_RELEASE="${CXXFLAGS}" \
-D CMAKE_SHARED_LINKER_FLAGS='-Wl,--no-undefined'
cmake --build build-shared
DESTDIR=$PKG cmake --build build-static --target install
DESTDIR=$PKG cmake --build build-shared --target install
mv $PKG/usr/bin/spirv-remap $SRC/
rm -r $PKG/usr/{bin/spirv*,include/spirv-tools,lib/cmake/SPIRV-Tools*,lib/libSPIRV-*,lib/pkgconfig}
mv $SRC/spirv-remap $PKG/usr/bin/spirv-remap
}