diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 80 |
1 files changed, 35 insertions, 45 deletions
@@ -1,19 +1,19 @@ -# Maintainer: Daniel Bermond < gmail-com: danielbermond > - -_glslang_commit='25a508cc735109cc4e382c3a1cc293a9452a41f3' -_spirv_tools_commit='55adf4cf707bb12c29fc12f784ebeaa29a819e9b' -_spirv_headers_commit='29c11140baaf9f7fdaa39a583672c556bf1795a1' +# Maintainer: Daniel Bermond <dbermond@archlinux.org> pkgname=spirv-cross -pkgver=2019.09.06 +pkgver=2023.10.16 pkgrel=1 +_tag=vulkan-sdk-1.3.268.0 +_glslang_commit=06a7078ce74ab5c7801a165b8145859678831fb8 +_spirv_tools_commit=f62e121b0df5374d1f043d1fbda98467406af0b1 +_spirv_headers_commit=d13b52222c39a7e9a401b44646f0ca3a640fbd47 pkgdesc='A tool and library for parsing and converting SPIR-V to other shader languages' arch=('x86_64') url='https://github.com/KhronosGroup/SPIRV-Cross/' license=('Apache') depends=('gcc-libs') -makedepends=('git' 'cmake' 'python' 'python-nose') -source=("git+https://github.com/KhronosGroup/SPIRV-Cross.git#tag=${pkgver//./-}" +makedepends=('git' 'cmake' 'python') +source=("git+https://github.com/KhronosGroup/SPIRV-Cross.git#tag=${_tag}" "git+https://github.com/KhronosGroup/glslang.git#commit=${_glslang_commit}" "git+https://github.com/KhronosGroup/SPIRV-Tools.git#commit=${_spirv_tools_commit}" "git+https://github.com/KhronosGroup/SPIRV-Headers.git#commit=${_spirv_headers_commit}") @@ -23,60 +23,50 @@ sha256sums=('SKIP' 'SKIP') prepare() { - cd SPIRV-Cross - - mkdir -p build external/{glslang,spirv-tools}-build + mkdir -p SPIRV-Cross/external/{glslang,spirv-tools} - ln -sf "${srcdir}/glslang" external/glslang - ln -sf "${srcdir}/SPIRV-Tools" external/spirv-tools - ln -sf "${srcdir}/SPIRV-Headers" "${srcdir}/SPIRV-Tools/external/spirv-headers" + ln -sf "${srcdir}/glslang" SPIRV-Cross/external/glslang + ln -sf "${srcdir}/SPIRV-Tools" SPIRV-Cross/external/spirv-tools + ln -sf "${srcdir}/SPIRV-Headers" SPIRV-Tools/external/spirv-headers +} + +pkgver() { + git -C SPIRV-Cross log -1 --date='short' --pretty='format:%ci' "$_tag" | awk '{ gsub("-", ".", $1); print $1 }' } build() { # NOTE: test suite fails when using 'None' build type + local -a _common_opts=('-G Unix Makefiles' '-DCMAKE_BUILD_TYPE:STRING=Release' '-Wno-dev') + + export CFLAGS+=' -ffat-lto-objects' + export CXXFLAGS+=' -ffat-lto-objects' # glslang (required for tests) - printf '%s\n' ' -> Building glslang...' - cd SPIRV-Cross/external/glslang-build - cmake \ - -DCMAKE_BUILD_TYPE:STRING='Release' \ - -DCMAKE_INSTALL_PREFIX:PATH='output' \ - -Wno-dev \ - ../glslang - cmake --build . --config Release --target install + cmake -B SPIRV-Cross/external/glslang-build -S glslang \ + "${_common_opts[@]}" \ + -DCMAKE_INSTALL_PREFIX:PATH='output' + cmake --build SPIRV-Cross/external/glslang-build --target install # spirv-tools (required for tests) - printf '%s\n' ' -> Building SPIRV-Tools...' - cd "${srcdir}/SPIRV-Cross/external/spirv-tools-build" - cmake \ - -DCMAKE_BUILD_TYPE:STRING='Release' \ - -DSPIRV_WERROR:BOOL='OFF' \ + cmake -B SPIRV-Cross/external/spirv-tools-build -S SPIRV-Tools \ + "${_common_opts[@]}" \ -DCMAKE_INSTALL_PREFIX:PATH='output' \ - -Wno-dev \ - ../spirv-tools - cmake --build . --config Release --target install + -DSPIRV_WERROR:BOOL='OFF' + cmake --build SPIRV-Cross/external/spirv-tools-build --target install # spirv-cross - printf '%s\n' ' -> Building SPIRV-Cross...' - cd "${srcdir}/SPIRV-Cross/build" - cmake \ - -DCMAKE_BUILD_TYPE:STRING='Release' \ + cmake -B build-SPIRV-Cross -S SPIRV-Cross \ + "${_common_opts[@]}" \ -DCMAKE_INSTALL_PREFIX:PATH='/usr' \ - -DSPIRV_CROSS_SHARED:BOOL='ON' \ - -Wno-dev \ - .. - - make + -DSPIRV_CROSS_FORCE_PIC:BOOL='ON' \ + -DSPIRV_CROSS_SHARED:BOOL='ON' + cmake --build build-SPIRV-Cross } check() { - cd SPIRV-Cross/build - - make test + ctest --test-dir build-SPIRV-Cross --output-on-failure } package() { - cd SPIRV-Cross/build - - make DESTDIR="$pkgdir" install + DESTDIR="$pkgdir" cmake --install build-SPIRV-Cross } |