diff options
author | eugene | 2024-05-05 23:24:57 +0300 |
---|---|---|
committer | eugene | 2024-05-05 23:24:57 +0300 |
commit | a1c081ea7141891824203a34e69f47078f1bfb6c (patch) | |
tree | f2e85c4701758981ee57c905c22b398ad263e042 | |
parent | b592b35ddba5cc79012f2822118a629e835ede53 (diff) | |
download | aur-a1c081ea7141891824203a34e69f47078f1bfb6c.tar.gz |
use vendored glslang and spirv-tools
-rw-r--r-- | .SRCINFO | 11 | ||||
-rw-r--r-- | PKGBUILD | 85 |
2 files changed, 49 insertions, 47 deletions
@@ -1,6 +1,6 @@ pkgbase = duckstation-git pkgdesc = A Sony PlayStation (PSX) emulator, focusing on playability, speed, and long-term maintainability (git version) - pkgver = 0.1.r6679.g17b9736 + pkgver = 0.1.r6757.g7626a9b pkgrel = 1 url = https://github.com/stenzek/duckstation arch = x86_64 @@ -21,6 +21,7 @@ pkgbase = duckstation-git makedepends = ninja makedepends = jack makedepends = python + makedepends = spirv-headers depends = sh depends = glibc depends = gcc-libs @@ -47,6 +48,8 @@ pkgbase = duckstation-git depends = systemd-libs depends = libudev.so depends = hicolor-icon-theme + depends = glslang + depends = spirv-tools optdepends = qt6-wayland: Wayland support optdepends = libpulse: Pulseaudio support optdepends = sndio: Small audio support @@ -56,16 +59,10 @@ pkgbase = duckstation-git conflicts = duckstation source = git+https://github.com/stenzek/duckstation.git source = git+https://github.com/google/shaderc.git#tag=v2024.0 - source = git+https://github.com/KhronosGroup/glslang.git#commit=d73712b8f6c9047b09e99614e20d456d5ada2390 - source = git+https://github.com/KhronosGroup/SPIRV-Headers.git#commit=8b246ff75c6615ba4532fe4fde20f1be090c3764 - source = git+https://github.com/KhronosGroup/SPIRV-Tools.git#commit=04896c462d9f3f504c99a4698605b6524af813c1 source = duckstation-qt.desktop source = duckstation-qt.sh sha256sums = SKIP sha256sums = c1f935c1e0338e274cea4f106fc3b13e02f4150e504a255ddb18221bd80bb416 - sha256sums = 8c97fbe90abb311903b29d1fec8799e6e8a618ed2b69de6833dfed9252c85dad - sha256sums = bbbdf1f65d11a5e6a1f03da5804e555af9c027e76f9dd22135a092f88b8a9b2b - sha256sums = 56bb21ba0a74b6a489398d5a6d429d7e38346ef67c21ee6df00395c990224701 sha256sums = ec2d7358f81598390a8ceca2d1974be3e5f7c45602b550c89a1e9323ab45474b sha256sums = 221a8fc0d1f0cebdf281acc26484e98ebbb59f876e12fdef3f03cf91380e31f5 @@ -2,7 +2,7 @@ pkgname=duckstation-git _pkgname=duckstation -pkgver=0.1.r6679.g17b9736 +pkgver=0.1.r6757.g7626a9b pkgdesc='A Sony PlayStation (PSX) emulator, focusing on playability, speed, and long-term maintainability (git version)' pkgrel=1 arch=(x86_64 aarch64) @@ -26,6 +26,8 @@ depends=( curl libcurl.so systemd-libs libudev.so hicolor-icon-theme + glslang + spirv-tools ) makedepends=( git @@ -43,6 +45,7 @@ makedepends=( ninja jack python + spirv-headers ) optdepends=( 'qt6-wayland: Wayland support' @@ -51,22 +54,16 @@ optdepends=( 'alsa-lib: ALSA support' 'jack: JACK support' ) -provides=('duckstation') -conflicts=('duckstation') +provides=(duckstation) +conflicts=(duckstation) source=( git+"$url".git git+https://github.com/google/shaderc.git#tag=v2024.0 - git+https://github.com/KhronosGroup/glslang.git#commit=d73712b8f6c9047b09e99614e20d456d5ada2390 - git+https://github.com/KhronosGroup/SPIRV-Headers.git#commit=8b246ff75c6615ba4532fe4fde20f1be090c3764 - git+https://github.com/KhronosGroup/SPIRV-Tools.git#commit=04896c462d9f3f504c99a4698605b6524af813c1 duckstation-qt.desktop duckstation-qt.sh) sha256sums=( 'SKIP' 'c1f935c1e0338e274cea4f106fc3b13e02f4150e504a255ddb18221bd80bb416' - '8c97fbe90abb311903b29d1fec8799e6e8a618ed2b69de6833dfed9252c85dad' - 'bbbdf1f65d11a5e6a1f03da5804e555af9c027e76f9dd22135a092f88b8a9b2b' - '56bb21ba0a74b6a489398d5a6d429d7e38346ef67c21ee6df00395c990224701' 'ec2d7358f81598390a8ceca2d1974be3e5f7c45602b550c89a1e9323ab45474b' '221a8fc0d1f0cebdf281acc26484e98ebbb59f876e12fdef3f03cf91380e31f5' ) @@ -76,50 +73,59 @@ pkgver() { git describe --long --abbrev=7 | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' } +prepare() { + cd "$srcdir/shaderc" + # apply duckstation patch + git apply "$srcdir/$_pkgname/scripts/shaderc-changes.patch" \ + --exclude=CMakeLists.txt \ + --exclude=libshaderc/CMakeLists.txt \ + --exclude third_party/CMakeLists.txt + + # de-vendor libs and disable git versioning + sed '/examples/d;/third_party/d' -i CMakeLists.txt + sed '/build-version/d' -i glslc/CMakeLists.txt + cat <<- EOF > glslc/src/build-version.inc +"${pkgver}\\n" +"$(pacman -Q spirv-tools|cut -d \ -f 2|sed 's/-.*//')\\n" +"$(pacman -Q glslang|cut -d \ -f 2|sed 's/-.*//')\\n" +EOF + + cd "$srcdir/duckstation" + # preparation for find shaderc as static + sed -e 's|shaderc_shared|shaderc_combined|g' \ + -e 's|PUBLIC Shaderc|PRIVATE Shaderc|g' \ + -e '/PRIVATE Shaderc/a target_link_libraries(util PUBLIC glslang::glslang)' \ + -e '/PRIVATE Shaderc/a target_link_libraries(util PUBLIC glslang::SPIRV)' \ + -e '/if(SHADERC_FOUND)/a find_package(glslang 14.1.0 REQUIRED)' \ + -i CMakeModules/FindShaderc.cmake \ + -i src/util/CMakeLists.txt + sed -e '/INTERFACE_COMPILE/d' \ + -i CMakeModules/FindShaderc.cmake +} + build() { echo "Building shaderc..." - cd "$srcdir/shaderc" - pushd third_party - ln -sf ../../glslang ./ - ln -sf ../../SPIRV-Headers ./spirv-headers - ln -sf ../../SPIRV-Tools ./spirv-tools - popd - git apply "$srcdir/$_pkgname/scripts/shaderc-changes.patch" \ - --exclude=CMakeLists.txt \ - --exclude=libshaderc/CMakeLists.txt \ - --exclude third_party/CMakeLists.txt - cmake -B build \ + cmake -B build-shaderc -S shaderc \ + -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ -DCMAKE_EXE_LINKER_FLAGS_INIT="-fuse-ld=lld" \ -DCMAKE_MODULE_LINKER_FLAGS_INIT="-fuse-ld=lld" \ -DCMAKE_SHARED_LINKER_FLAGS_INIT="-fuse-ld=lld" \ - -DCMAKE_PREFIX_PATH="$srcdir/deps" \ - -DCMAKE_INSTALL_PREFIX="$srcdir/deps" \ + -DCMAKE_INSTALL_PREFIX=/usr \ -DSHADERC_SKIP_TESTS=ON \ -DSHADERC_SKIP_EXAMPLES=ON \ -DSHADERC_SKIP_COPYRIGHT_CHECK=ON \ - -DENABLE_GLSLANG_BINARIES=OFF \ - -DENABLE_SPVREMAPPER=OFF \ - -DSPIRV_TOOLS_LIBRARY_TYPE=STATIC \ - -DSPIRV_SKIP_EXECUTABLES=ON \ - -G Ninja - cmake --build build --parallel - cmake --install build + -Dglslang_SOURCE_DIR=/usr/include/glslang + ninja -C build-shaderc + DESTDIR="$srcdir/deps" ninja -C build-shaderc install echo "Building duckstation..." - cd "$srcdir" - - # preparation for find shaderc as static - sed -e 's|shaderc_shared|shaderc_combined|g' \ - -e 's|PUBLIC Shaderc|PRIVATE Shaderc|g' \ - -i duckstation/CMakeModules/FindShaderc.cmake \ - -i duckstation/src/util/CMakeLists.txt - sed '/INTERFACE_COMPILE/d' -i duckstation/CMakeModules/FindShaderc.cmake cmake -B build -S duckstation \ + -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ @@ -129,13 +135,12 @@ build() { -DCMAKE_MODULE_LINKER_FLAGS_INIT="-fuse-ld=lld" \ -DCMAKE_SHARED_LINKER_FLAGS_INIT="-fuse-ld=lld" \ -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \ - -DCMAKE_PREFIX_PATH="$srcdir/deps" \ + -DCMAKE_PREFIX_PATH="$srcdir/deps/usr" \ -DCMAKE_SKIP_RPATH=ON \ -DBUILD_NOGUI_FRONTEND=OFF \ -DBUILD_QT_FRONTEND=ON \ - -G Ninja \ -Wno-dev - cmake --build build --parallel + ninja -C build } package() { |