[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#58499] [PATCH v2] gnu: Add citra
From: |
florhizome |
Subject: |
[bug#58499] [PATCH v2] gnu: Add citra |
Date: |
Thu, 20 Oct 2022 21:55:03 +0000 |
From: florhizome <florhizome@posteo.net>
* gnu: Add citra.
---
gnu/packages/emulators.scm | 103 +++++++++++++++++++++++++++++++++++++
1 file changed, 103 insertions(+)
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 4d7710f8ea..be4e10bb9c 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -61,6 +61,7 @@ (define-module (gnu packages emulators)
#:use-module (gnu packages cross-base)
#:use-module (gnu packages curl)
#:use-module (gnu packages digest)
+ #:use-module (gnu packages documentation)
#:use-module (gnu packages elf)
#:use-module (gnu packages flex)
#:use-module (gnu packages fltk)
@@ -74,6 +75,7 @@ (define-module (gnu packages emulators)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages libedit)
@@ -105,6 +107,7 @@ (define-module (gnu packages emulators)
#:use-module (gnu packages xorg)
#:use-module (gnu packages web)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system qt)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
@@ -245,9 +248,109 @@ (define-public desmume
"DeSmuME is an emulator for the Nintendo DS handheld gaming console.")
(license license:gpl2)))
+(define-public citra
+ (let ((version "0")
+ (revision "1785")
+ (commit "baecc18d8c5365af0dddb231bc8c0a9c03850bf6"))
+ (package
+ (name "citra")
+ (version (git-version version
+ (string-append "nightly-" revision) commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/citra-emu/citra-nightly")
+ (commit
+ (string-append "nightly-" revision))
+ ;;some submodules can't be avoided
+ ;;TODO devendor the rest
+ (recursive? #t)))
+ (sha256
+ (base32
+ "1grkrrxs1497i51spgnwmgfkqgkm7gplylhcrk67agaklx65d5s9"))
+ (file-name (git-file-name name version))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove as much external stuff as we can
+ ;; f.e. some files in boost are still needed
+ (for-each (lambda (dir)
+ (delete-file-recursively
+ (string-append "externals/" dir)))
+ '("android-ifaddrs"
+ "catch"
+ "libyuv"
+ "libressl"
+ "getopt"
+ "libusb"))
+ ;; Clean up source.
+ (for-each delete-file
+ (find-files "." ".*\\.(bin|dsy|exe|jar|rar)$"))
+ #t))))
+ (build-system qt-build-system)
+ (arguments
+ (list
+ #:configure-flags
+ #~(list
+ "-DUSE_SYSTEM_BOOST=ON"
+ "-DCITRA_USE_BUNDLED_FFMPEG=OFF"
+ "-DCITRA_USE_BUNDLED_QT=OFF"
+ "-DCITRA_USE_BUNDLED_SDL2=OFF"
+ "-DCMAKE_BUILD_TYPE=Release"
+ "-DCITRA_ENABLE_COMPATIBILITY_REPORTING=OFF"
+ "-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF"
+ "-DENABLE_QT_TRANSLATION=ON"
+ "-DENABLE_WEB_SERVICE=ON"
+ "-DENABLE_FFMPEG_AUDIO_DECODER=ON"
+ "-DUSE_DISCORD_PRESENCE=ON")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'delete-check
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("check_submodules_present\\(\\)")""))))
+ (add-after 'qt-wrap 'wrap-other-dependencies
+ (lambda* (#:key outputs #:allow-other-keys)
+ (for-each
+ (lambda (bin)
+ (wrap-program bin)
+ `("GST_PLUGIN_SYSTEM_PATH" prefix
+ (,(getenv "GST_PLUGIN_SYSTEM_PATH"))))
+ `(,(search-input-file outputs "bin/citra")
+ ,(search-input-file outputs "bin/citra-qt"))))))))
+ (native-inputs
+ (list pkg-config doxygen catch2))
+ (inputs
+ (list qtbase-5
+ qtmultimedia-5
+ qttools-5
+ qtwayland-5
+ libpng
+ libxkbcommon
+ openssl
+ libfdk
+ ffmpeg
+ pulseaudio
+ curl
+ rapidjson
+ sdl2
+ libusb
+ boost
+ gst-plugins-bad-minimal))
+ ;;gstreamer-plugins-bad-minimal needed for camera support
+ (propagated-inputs (list xdg-utils shared-mime-info))
+ (home-page "https://citra-emu.org")
+ (synopsis "Nintendo 3DS Emulator")
+ (description "Citra is an experimental emulator/debugger for the Nintendo
3DS
+ written in C++. It emulates a subset of the Nintendo 3DS' hardware.")
+ (license license:gpl2+))))
+
+
;; Building from recent Git because the official 5.0 release no longer builds.
;; Following commits and revision numbers of beta versions listed at
;; https://dolphin-emu.org/download/.
+
(define-public dolphin-emu
(let ((commit "a34823df61df65168aa40ef5e82e44defd4a0138")
(revision "13178"))
base-commit: 00ff6f7c399670a76efffb91276dea2633cc130c
--
2.38.0