[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#58499] [PATCH v2] gnu: Add citra
From: |
Liliana Marie Prikler |
Subject: |
[bug#58499] [PATCH v2] gnu: Add citra |
Date: |
Sat, 22 Oct 2022 19:29:31 +0200 |
User-agent: |
Evolution 3.46.0 |
Am Donnerstag, dem 20.10.2022 um 21:55 +0000 schrieb
florhizome@posteo.net:
> From: florhizome <florhizome@posteo.net>
>
> * gnu: Add citra.
Missing ChangeLog.
> ---
> 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"))
You don't need to let-bind version. Add a comment next to revision
explaining that we mean nightly revisions.
> + (package
> + (name "citra")
> + (version (git-version version
> + (string-append "nightly-" revision)
> commit))
"nightly-" is not needed here.
> + (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)))
Why not?
> + (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
We have a boost package.
> + (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")
Again, no cookies for proprietary software.
> + #: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"))))))))
You can use find-files here and it'll probably be more natural.
> + (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))
Inputs are best sorted.
> + ;;gstreamer-plugins-bad-minimal needed for camera support
Use a line comment "; camera support".
Emacs adds proper distance with M-;
> + (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+))))
Cheers