commit:     4164c7276ed07dc9496ae8d606b7700714172db8
Author:     Octiabrina Terrien-Puig <octiabrina <AT> myrvogna <DOT> net>
AuthorDate: Fri Apr  9 07:00:47 2021 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> riseup <DOT> net>
CommitDate: Fri Apr  9 07:00:47 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=4164c727

games-emulation/duckstation: new package

Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Octiabrina Terrien-Puig <octiabrina <AT> myrvogna.net>

 .../duckstation/duckstation-9999.ebuild            | 103 +++++++++++++++++++++
 .../duckstation/files/duckstation-nogui.desktop    |  10 ++
 .../duckstation/files/duckstation-qt.desktop       |  10 ++
 games-emulation/duckstation/metadata.xml           |  26 ++++++
 4 files changed, 149 insertions(+)

diff --git a/games-emulation/duckstation/duckstation-9999.ebuild 
b/games-emulation/duckstation/duckstation-9999.ebuild
new file mode 100644
index 000000000..42bf022bc
--- /dev/null
+++ b/games-emulation/duckstation/duckstation-9999.ebuild
@@ -0,0 +1,103 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake desktop git-r3 xdg-utils
+
+DESCRIPTION="Fast Sony PlayStation (PSX) emulator"
+HOMEPAGE="https://github.com/stenzek/duckstation";
+EGIT_REPO_URI="https://github.com/stenzek/duckstation.git";
+EGIT_CHECKOUT_DIR="${WORKDIR}/${PN}"
+EGIT_SUBMODULES=()
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="discord egl evdev fbdev +gamepad gbm +nogui qt5 retroachievements 
wayland X"
+
+# Either or both frontends must be built
+REQUIRED_USE="
+       ?? ( fbdev gbm )
+       gbm? ( egl )
+       wayland? ( egl )
+"
+
+BDEPEND="
+       virtual/pkgconfig
+       wayland? ( kde-frameworks/extra-cmake-modules )
+"
+DEPEND="
+       evdev? ( dev-libs/libevdev )
+       gamepad? ( media-libs/libsdl2 )
+       gbm? ( x11-libs/libdrm )
+       qt5? (
+                       dev-qt/qtcore
+                       dev-qt/qtgui
+                       dev-qt/qtnetwork
+       )
+       retroachievements? ( net-misc/curl[curl_ssl_gnutls] )
+       X? (
+                       x11-libs/libX11
+                       x11-libs/libXrandr
+       )
+"
+RDEPEND="${DEPEND}"
+
+# Set working directory to checkout directory
+S="${WORKDIR}/${PN}"
+
+src_configure() {
+       local mycmakeargs=(
+               -DBUILD_NOGUI_FRONTEND=$(usex nogui)
+               -DBUILD_QT_FRONTEND=$(usex qt5)
+               -DENABLE_CHEEVOS=$(usex retroachievements)
+               –DENABLE_DISCORD_PRESENCE=$(usex discord)
+               -DUSE_DRMKMS=$(usex gbm)
+               -DUSE_EGL=$(usex egl)
+               -DUSE_EVDEV=$(usex evdev)
+               -DUSE_FBDEV=$(usex fbdev)
+               -DUSE_SDL2=$(usex gamepad)
+               -DUSE_WAYLAND=$(usex wayland)
+               -DUSE_X11=$(usex X)
+
+               -DBUILD_SHARED_LIBS=OFF
+       )
+
+       cmake_src_configure
+}
+
+src_install() {
+       dodoc README.md
+
+       # Binary and resources files must be in same directory – installing in 
/opt
+       insinto /opt/${PN}
+       doins -r "${BUILD_DIR}"/bin/{database,inputprofiles,resources,shaders}
+
+       if use nogui; then
+               newicon -s 16 appimage/icon-16px.png duckstation-nogui
+               newicon -s 32 appimage/icon-32px.png duckstation-nogui
+               newicon -s 48 appimage/icon-48px.png duckstation-nogui
+               newicon -s 64 appimage/icon-64px.png duckstation-nogui
+               domenu "${FILESDIR}"/duckstation-nogui.desktop
+               doins "${BUILD_DIR}"/bin/duckstation-nogui
+               fperms +x /opt/${PN}/duckstation-nogui
+       fi
+
+       if use qt5; then
+               newicon -s 16 appimage/icon-16px.png duckstation-qt
+               newicon -s 32 appimage/icon-32px.png duckstation-qt
+               newicon -s 48 appimage/icon-48px.png duckstation-qt
+               newicon -s 64 appimage/icon-64px.png duckstation-qt
+               domenu "${FILESDIR}"/duckstation-qt.desktop
+               doins "${BUILD_DIR}"/bin/duckstation-qt
+               fperms +x /opt/${PN}/duckstation-qt
+       fi
+}
+
+pkg_postinst() {
+       xdg_icon_cache_update
+}
+
+pkg_postrm() {
+       xdg_icon_cache_update
+}

diff --git a/games-emulation/duckstation/files/duckstation-nogui.desktop 
b/games-emulation/duckstation/files/duckstation-nogui.desktop
new file mode 100644
index 000000000..dccebffdc
--- /dev/null
+++ b/games-emulation/duckstation/files/duckstation-nogui.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Type=Application
+Name=DuckStation NoGUI
+GenericName=PlayStation 1 Emulator
+Comment=Fast-ish PlayStation 1 emulator
+Icon=duckstation-nogui
+TryExec=/opt/duckstation/duckstation-nogui
+Exec=/opt/duckstation/duckstation-nogui %f
+Terminal=false
+Categories=Game;Emulator;

diff --git a/games-emulation/duckstation/files/duckstation-qt.desktop 
b/games-emulation/duckstation/files/duckstation-qt.desktop
new file mode 100644
index 000000000..26e02be15
--- /dev/null
+++ b/games-emulation/duckstation/files/duckstation-qt.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Type=Application
+Name=DuckStation Qt
+GenericName=PlayStation 1 Emulator
+Comment=Fast-ish PlayStation 1 emulator
+Icon=duckstation-qt
+TryExec=/opt/duckstation/duckstation-qt
+Exec=/opt/duckstation/duckstation-qt %f
+Terminal=false
+Categories=Game;Emulator;Qt;

diff --git a/games-emulation/duckstation/metadata.xml 
b/games-emulation/duckstation/metadata.xml
new file mode 100644
index 000000000..836f45531
--- /dev/null
+++ b/games-emulation/duckstation/metadata.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <email>[email protected]</email>
+               <name>Octiabrina Terrien-Puig</name>
+       </maintainer>
+       <upstream>
+               <remote-id type="github">stenzek/duckstation</remote-id>
+       </upstream>
+       <longdescription>
+               DuckStation is a fast emulator of the Sony PlayStation (PSX),
+               focused on playability, speed, and long-term maintainability.
+       </longdescription>
+       <use>
+               <flag name="discord">Enable Discord Rich Presence to show the 
current game on Discord</flag>
+               <flag name="egl">Enable EGL support</flag>
+               <flag name="evdev">Support EVDev controller interface</flag>
+               <flag name="fbdev">Support FBDev OpenGL contexts</flag>
+               <flag name="gamepad">Link with SDL2 for controller 
support</flag>
+               <flag name="gbm">Support DRM/KMS OpenGL contexts</flag>
+               <flag name="nogui">Build the NoGUI frontend</flag>
+               <flag name="qt5">Build the QT frontend</flag>
+               <flag name="retroachievements">Build with RetroAchievements 
supports</flag>
+       </use>
+</pkgmetadata>

Reply via email to