# Maintainer: # Contributor: David Wu # Contributor: Maxime Gauduin # Contributor: Bartłomiej Piotrowski # Contributor: Ben Reedy # Contributor: Clement Guerin # Contributor: Thiago Kenji Okada # Contributor: uberushaximus pkgname=( ppsspp-git ppsspp-assets-git ) pkgver=1.14.4.r1397.baa066c7b7 pkgrel=1 _ffver=3.0.12 pkgdesc='A PSP emulator written in C++' arch=(x86_64) url=https://www.ppsspp.org/ license=(GPL2) makedepends=( clang lld cmake git glew glu libglvnd libzip ninja python qt5-base qt5-multimedia qt5-tools sdl2 snappy zlib ) options=(!lto) source=( git+https://github.com/hrydgard/ppsspp.git git+https://github.com/Kingcom/armips.git git+https://github.com/discordapp/discord-rpc.git https://ffmpeg.org/releases/ffmpeg-$_ffver.tar.xz ppsspp-ffmpeg_x86_64.sh::https://raw.githubusercontent.com/hrydgard/ppsspp-ffmpeg/master/linux_x86-64.sh armips-filesystem::git+https://github.com/Kingcom/filesystem.git git+https://github.com/KhronosGroup/glslang.git git+https://github.com/hrydgard/ppsspp-lang.git ppsspp-miniupnp::git+https://github.com/hrydgard/miniupnp.git git+https://github.com/Tencent/rapidjson.git git+https://github.com/KhronosGroup/SPIRV-Cross.git git+https://github.com/google/cpu_features.git ppsspp-sdl.desktop ppsspp-qt.desktop ) b2sums=('SKIP' 'SKIP' 'SKIP' 'e978c76cdab638d4bf2718e0ec58fb0d4c7c4017d3100de76460fc8b148cb899066dbe92680aad19f7bd60c7c8924d966fcee22a53133be695ac8352a6ed01cc' 'd5140fb7d56e3b7873a3174e3b9c96a5188309daa77b534d2e7e6355b6d74db4f672d8dc8daa968f272e824c9832fdac88e74794c93a4ac6b5aec271ddeada13' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'c6bcdfedee866dfdcc82a8c333c31ff73ed0beec65b63acec8bc8186383c0bc9f0912f21bb9715b665e8dc1793b1a85599761f9037856fa54ad8aa3bfdbfd468' '328e2ba47b78d242b0ec6ba6bfa039c77a36d1ef7246e5c2c2432d8e976e9360baf505eb05f48408ede1a30545cbbb7f875bf5ebd0252cef35523d449b8254a0') pkgver() { cd ppsspp git describe --tags | sed 's/^v//; s/-/.r/; s/-g/./' } prepare() { cd ppsspp if [[ -d ffmpeg ]]; then rm -rf ffmpeg fi cp -r "$srcdir"/ffmpeg-$_ffver ffmpeg cp "$srcdir"/ppsspp-ffmpeg_x86_64.sh ffmpeg/ chmod u+x ffmpeg/ppsspp-ffmpeg_x86_64.sh for submodule in assets/lang ext/miniupnp; do git submodule init ${submodule} git config submodule.${submodule}.url ../ppsspp-${submodule#*/} git -c protocol.file.allow=always submodule update ${submodule} done for submodule in ext/{armips,discord-rpc,rapidjson,SPIRV-Cross,cpu_features,glslang}; do git submodule init ${submodule} git config submodule.${submodule}.url ../${submodule#*/} git -c protocol.file.allow=always submodule update ${submodule} done cd ext/armips for submodule in ext/filesystem; do git submodule init ${submodule} git config submodule.${submodule}.url ../../../armips-${submodule#*/} git -c protocol.file.allow=always submodule update ${submodule} done } build() { export CC=clang export CXX=clang++ # Rebuild ffmpeg locally pushd ppsspp/ffmpeg ./ppsspp-ffmpeg_x86_64.sh popd cmake -S ppsspp -B build-sdl -G Ninja \ -Wno-dev \ -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_INTERPROCEDURAL_OPTIMIZATION=ON \ -DCMAKE_SKIP_RPATH=ON \ -DHEADLESS=ON \ -DOpenGL_GL_PREFERENCE=GLVND \ -DUSE_SYSTEM_LIBZIP=ON \ -DUSE_SYSTEM_SNAPPY=ON \ -DUSE_SYSTEM_ZSTD=ON \ -DUSING_QT_UI=OFF cmake --build build-sdl -v cmake -S ppsspp -B build-qt -G Ninja \ -Wno-dev \ -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_INTERPROCEDURAL_OPTIMIZATION=ON \ -DCMAKE_SKIP_RPATH=ON \ -DHEADLESS=OFF \ -DOpenGL_GL_PREFERENCE=GLVND \ -DUSE_SYSTEM_LIBZIP=ON \ -DUSE_SYSTEM_SNAPPY=ON \ -DUSE_SYSTEM_ZSTD=ON \ -DUSING_QT_UI=ON cmake --build build-qt -v } package_ppsspp-git() { depends=( glew glibc hicolor-icon-theme libgl libzip ppsspp-assets-git qt5-base qt5-multimedia sdl2 snappy zlib zstd ) provides=(ppsspp) conflicts=(ppsspp) install -Dm 755 build-sdl/PPSSPPSDL -t "${pkgdir}"/usr/bin/ install -Dm 755 build-sdl/PPSSPPHeadless -t "${pkgdir}"/usr/bin/ install -Dm 755 build-qt/PPSSPPQt -t "${pkgdir}"/usr/bin/ install -dm 755 "${pkgdir}"/usr/share/icons cp -dr --no-preserve=ownership ppsspp/icons/hicolor "${pkgdir}"/usr/share/icons/ install -Dm 644 ppsspp/icons/icon-512.svg "${pkgdir}"/usr/share/pixmaps/ppsspp.svg install -Dm 644 ppsspp-sdl.desktop -t "${pkgdir}"/usr/share/applications/ install -Dm 644 ppsspp-qt.desktop -t "${pkgdir}"/usr/share/applications/ } package_ppsspp-assets-git() { provides=(ppsspp-assets) conflicts=(ppsspp-assets) install -dm 755 "${pkgdir}"/usr/share/ppsspp cp -dr --no-preserve=ownership build-sdl/assets "${pkgdir}"/usr/share/ppsspp/ } # vim: ts=2 sw=2 et: