blob: ba4dd84696d3b2db32ba833c1f4874b86bbb4514 (
plain)
1 # Description: OpenGL and OpenGL ES shader front end and validator
2 # URL: https://www.khronos.org/opengles/sdk/tools/Reference-Compiler
3 # Maintainer: Danny Rawlins, crux at romster dot me
4 # Depends on: cmake
5 # Optional: ninja
6
7 name=glslang
8 version=11.8.0
9 release=1
10 _spirv_headers=b42ba6d92faf6b4938e6f22ddd186dbdacc98d78
11 _spirv_tools=73735db943d7165d725883a1da0ad9eac79c1e34
12 source=(https://github.com/KhronosGroup/glslang/archive/$version/$name-$version.tar.gz
13 https://github.com/KhronosGroup/SPIRV-Headers/archive/$_spirv_headers/SPIRV-Headers-$_spirv_headers.tar.gz
14 https://github.com/KhronosGroup/SPIRV-Tools/archive/$_spirv_tools/SPIRV-Tools-$_spirv_tools.tar.gz
15 known_good.py.in)
16
17 build() {
18 cp -r SPIRV-Tools-$_spirv_tools $name-$version/External/spirv-tools
19 cp -r SPIRV-Headers-$_spirv_headers $name-$version/External/spirv-tools/external/spirv-headers
20
21 sed -e "s|@SRC@|$SRC/$name-$version|" $SRC/known_good.py.in > $SRC/known_good.py
22 chmod u+x $SRC/known_good.py
23 $SRC/known_good.py
24
25 prt-get isinst ninja && PKGMK_GLSLANG+=' -G Ninja'
26 prt-get isinst ccache && \
27 PKGMK_GLSLANG+=' -D USE_CCACHE=ON' && \
28 PATH="$(echo ${PATH} | awk -v RS=: -v ORS=: '/ccache/ {next} {print}' | sed 's/:*$//')"
29
30 local config="
31 -S $name-$version
32 -D CMAKE_INSTALL_PREFIX=/usr
33 -D CMAKE_INSTALL_LIBDIR=lib
34 -D CMAKE_BUILD_TYPE=Release
35 -D CMAKE_SKIP_RPATH:BOOL=yes
36 -Wno-dev"
37
38 cmake -B build-static $config $PKGMK_GLSLANG \
39 -D BUILD_SHARED_LIBS=OFF \
40 -D CMAKE_CXX_FLAGS_RELEASE="${CXXFLAGS}"
41 cmake --build build-static
42
43 # https://github.com/KhronosGroup/glslang/issues/1484 -Wl,--no-undefined
44 cmake -B build-shared $config $PKGMK_GLSLANG \
45 -D BUILD_SHARED_LIBS=ON \
46 -D CMAKE_CXX_FLAGS_RELEASE="${CXXFLAGS}" \
47 -D CMAKE_SHARED_LINKER_FLAGS='-Wl,--no-undefined'
48 cmake --build build-shared
49
50 DESTDIR=$PKG cmake --build build-static --target install
51 DESTDIR=$PKG cmake --build build-shared --target install
52
53 mv $PKG/usr/bin/spirv-remap $SRC/
54 rm -r $PKG/usr/{bin/spirv*,include/spirv-tools,lib/cmake/SPIRV-Tools*,lib/libSPIRV-*,lib/pkgconfig}
55 mv $SRC/spirv-remap $PKG/usr/bin/spirv-remap
56 }
|