summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO37
-rw-r--r--PKGBUILD120
-rw-r--r--duckstation-qt.desktop10
-rw-r--r--duckstation-qt.sh3
4 files changed, 132 insertions, 38 deletions
diff --git a/.SRCINFO b/.SRCINFO
index ff485e2051c1..1ae34a583d17 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,27 +1,56 @@
pkgbase = duckstation-git
pkgdesc = A Sony PlayStation (PSX) emulator, focusing on playability, speed, and long-term maintainability (git version)
- pkgver = r5564.73a80d3a
+ pkgver = 0.1.r6649.g9fd2994
pkgrel = 1
url = https://github.com/stenzek/duckstation
arch = x86_64
arch = aarch64
- license = GPL3
+ license = GPL-3.0-only
makedepends = git
makedepends = cmake
+ makedepends = clang
+ makedepends = lld
+ makedepends = llvm
makedepends = extra-cmake-modules
makedepends = qt6-tools
+ makedepends = qt6-wayland
makedepends = libdrm
makedepends = libpulse
+ makedepends = libwebp
makedepends = alsa-lib
- makedepends = jack2
makedepends = sndio
- makedepends = gtk3
makedepends = ninja
+ makedepends = jack
+ depends = sh
+ depends = glibc
+ depends = gcc-libs
depends = sdl2
depends = qt6-base
+ depends = shaderc-non-semantic-debug
+ depends = libwebp
+ depends = libjpeg-turbo
+ depends = libpng
+ depends = libxrandr
+ depends = libx11
+ depends = freetype2
+ depends = zstd
+ depends = zlib
+ depends = dbus
+ depends = curl
+ depends = systemd-libs
+ depends = hicolor-icon-theme
+ optdepends = qt6-wayland: Wayland support
+ optdepends = libpulse: Pulseaudio support
+ optdepends = sndio: Small audio support
+ optdepends = alsa-lib: ALSA support
+ optdepends = jack: JACK support
provides = duckstation
conflicts = duckstation
source = git+https://github.com/stenzek/duckstation.git
+ source = duckstation-qt.desktop
+ source = duckstation-qt.sh
sha256sums = SKIP
+ sha256sums = ec2d7358f81598390a8ceca2d1974be3e5f7c45602b550c89a1e9323ab45474b
+ sha256sums = 221a8fc0d1f0cebdf281acc26484e98ebbb59f876e12fdef3f03cf91380e31f5
pkgname = duckstation-git
diff --git a/PKGBUILD b/PKGBUILD
index aeac3fe32b7b..f7fe7998d5c6 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,55 +1,107 @@
-# Maintainer: katt <magunasu.b97@gmail.com>
+# Contributor: katt <magunasu.b97@gmail.com>
pkgname=duckstation-git
-pkgver=r5564.73a80d3a
+_pkgname=duckstation
+pkgver=0.1.r6649.g9fd2994
pkgdesc='A Sony PlayStation (PSX) emulator, focusing on playability, speed, and long-term maintainability (git version)'
pkgrel=1
arch=(x86_64 aarch64)
url=https://github.com/stenzek/duckstation
-license=(GPL3)
-makedepends=(git cmake extra-cmake-modules qt6-tools libdrm libpulse alsa-lib jack2 sndio gtk3 ninja)
-depends=(sdl2 qt6-base)
-optdepends=()
-provides=("${pkgname%-git}")
-conflicts=("${pkgname%-git}")
-source=(git+"$url".git)
-sha256sums=('SKIP')
+license=(GPL-3.0-only)
+depends=(
+ sh
+ glibc
+ gcc-libs
+ sdl2
+ qt6-base
+ shaderc-non-semantic-debug
+ libwebp
+ libjpeg-turbo
+ libpng
+ libxrandr
+ libx11
+ freetype2
+ zstd
+ zlib
+ dbus
+ curl
+ systemd-libs
+ hicolor-icon-theme)
+makedepends=(
+ git
+ cmake
+ clang
+ lld
+ llvm
+ extra-cmake-modules
+ qt6-tools
+ qt6-wayland
+ libdrm
+ libpulse
+ libwebp
+ alsa-lib
+ sndio
+ ninja
+ jack)
+optdepends=(
+ 'qt6-wayland: Wayland support'
+ 'libpulse: Pulseaudio support'
+ 'sndio: Small audio support'
+ 'alsa-lib: ALSA support'
+ 'jack: JACK support'
+)
+provides=('duckstation')
+conflicts=('duckstation')
+source=(git+"$url".git
+ duckstation-qt.desktop
+ duckstation-qt.sh)
+sha256sums=('SKIP'
+ 'ec2d7358f81598390a8ceca2d1974be3e5f7c45602b550c89a1e9323ab45474b'
+ '221a8fc0d1f0cebdf281acc26484e98ebbb59f876e12fdef3f03cf91380e31f5')
pkgver() {
- cd "${srcdir}/${pkgname%-git}"
- printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+ cd "$srcdir/$_pkgname"
+ git describe --long --abbrev=7 | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}
build() {
cmake -B build -S duckstation \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_C_COMPILER=clang \
+ -DCMAKE_CXX_COMPILER=clang++ \
+ -DCMAKE_C_FLAGS="$CFLAGS -Wno-error=format-security" \
+ -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-error=format-security" \
+ -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 \
-DBUILD_NOGUI_FRONTEND=OFF \
- -DUSE_WAYLAND=ON \
+ -DBUILD_QT_FRONTEND=ON \
-G Ninja \
-Wno-dev
- ninja -C build
+ cmake --build build --parallel
}
package() {
- # Main files
- install -m755 -d "${pkgdir}/opt"
- cp -rv build/bin "${pkgdir}/opt/${pkgname%-git}"
+ # Initially install everything into /usr/lib/duckstation
+ install -m 755 -d "${pkgdir}/usr/lib"
+ cp -drv --no-preserve='ownership' build/bin "${pkgdir}/usr/lib/${_pkgname}"
- # Symlink to /usr/bin
- install -m755 -d "${pkgdir}/usr/bin"
- ln -svt "${pkgdir}/usr/bin" /opt/"${pkgname%-git}"/"${pkgname%-git}"-qt
+ # Move shared data to /usr/share/duckstation
+ cd "${pkgdir}/usr/lib/${_pkgname}"
+ install -m 755 -d "${pkgdir}/usr/share/${_pkgname}"
+ for _dir in resources translations
+ do
+ mv "${_dir}" "${pkgdir}/usr/share/${_pkgname}"
+ ln -s "/usr/share/${_pkgname}/${_dir}" .
+ done
- # Desktop file
- cat > "${pkgname%-git}/data/resources/.desktop" << EOF
-[Desktop Entry]
-Type=Application
-Name=DuckStation
-GenericName=PlayStation 1 Emulator
-Comment=Fast PlayStation 1 emulator
-Icon=duckstation
-TryExec=duckstation-qt
-Exec=duckstation-qt %f
-Categories=Game;Emulator;Qt;
-EOF
- install -Dm644 "${pkgname%-git}/data/resources/.desktop" "${pkgdir}/usr/share/applications/duckstation-qt.desktop"
- install -Dm644 "${pkgname%-git}/data/resources/images/duck.png" "${pkgdir}/usr/share/pixmaps/duckstation.png"
+ # Install additional license
+ install -m 755 -d "${pkgdir}/usr/share/licenses/${pkgname}/"
+ mv "${pkgdir}/usr/share/${_pkgname}/resources/thirdparty.html" "${pkgdir}/usr/share/licenses/${pkgname}/"
+ ln -s "/usr/share/licenses/${pkgname}/thirdparty.html" "${pkgdir}/usr/share/${_pkgname}/resources/"
+
+ install -Dvm755 "${srcdir}/duckstation-qt.sh" "${pkgdir}/usr/bin/duckstation-qt"
+ install -Dvm644 "${srcdir}/duckstation-qt.desktop" "${pkgdir}/usr/share/applications/duckstation-qt.desktop"
+ install -Dvm644 "${pkgdir}/usr/share/${_pkgname}/resources/images/duck.png" "${pkgdir}/usr/share/icons/hicolor/64x64/apps/duckstation-qt.png"
}
diff --git a/duckstation-qt.desktop b/duckstation-qt.desktop
new file mode 100644
index 000000000000..ccdc7d0eb766
--- /dev/null
+++ b/duckstation-qt.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=DuckStation
+GenericName=PlayStation 1 Emulator
+Comment=Fast PlayStation 1 emulator
+Icon=duckstation-qt
+TryExec=duckstation-qt
+Exec=duckstation-qt %f
+Categories=Game;Emulator;Qt;
diff --git a/duckstation-qt.sh b/duckstation-qt.sh
new file mode 100644
index 000000000000..e558559e239e
--- /dev/null
+++ b/duckstation-qt.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+/usr/lib/duckstation/duckstation-qt "$@"