summaryrefslogtreecommitdiff
path: root/gnu/packages/emulators.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/emulators.scm')
-rw-r--r--gnu/packages/emulators.scm154
1 files changed, 89 insertions, 65 deletions
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index bb0bd898e1..f86fcedd56 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -4352,72 +4352,96 @@ on a Commodore C64, C128 etc.")
(license license:zlib)))
(define-public flycast
- (package
- (name "flycast")
- (version "2.4")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/flyinghead/flycast")
- (commit (string-append "v" version))
- ;; There are many bundled packages here included as git
- ;; submodules. Removing many of them would require patching the
- ;; source code and repository layout.
- (recursive? #t)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0ainy75gkrvilcm89hq6wq9md41w0mxgp6l27q5fzrxxykpjh6ym"))
- (modules '((guix build utils)))
- (snippet #~(begin
- (substitute* "CMakeLists.txt"
- (("add_subdirectory\\(core/deps/Vulkan-Headers\\)")
- "find_package(VulkanHeaders)"))
- (with-directory-excursion "core/deps"
- (for-each delete-file-recursively
- '("SDL"
- "Spout"
- "Syphon"
- "Vulkan-Headers"
- "breakpad"
- "discord-rpc"
- "libzip"
- "oboe")))))))
- (build-system cmake-build-system)
- (arguments
- (list
- #:tests? #f ; no test suite
- #:configure-flags
- #~(list "-DUSE_ALSA=ON"
- "-DUSE_BREAKPAD=OFF"
- "-DUSE_DX11=OFF"
- "-DUSE_DX9=OFF"
- ;; The USE_HOST_GLSLANG option is not implemented correctly.
- ;; (see: https://github.com/flyinghead/flycast/issues/1843)
- "-DUSE_HOST_GLSLANG=OFF"
- "-DUSE_HOST_LIBZIP=ON"
- "-DUSE_HOST_SDL=ON"
- "-DUSE_LIBAO=ON"
- "-DUSE_LUA=ON"
- "-DUSE_PULSEAUDIO=ON"
- "-DUSE_VULKAN=ON")))
- (inputs (list alsa-lib
- ao
- curl
- glslang
- libzip
- lua
- miniupnpc
- pulseaudio
- sdl2
- spirv-tools
- vulkan-headers
- pkg-config))
- (home-page "https://github.com/flyinghead/flycast")
- (synopsis "Sega Dreamcast, Naomi, Naomi 2, and Atomiswave emulator")
- (description "Flycast is a multi-platform Sega Dreamcast, Naomi, Naomi 2,
+ ;; Use a git snapshot as the latest 2.5 release is still on an older glslang
+ ;; version that doesn't build with GCC 14.
+ (let ((commit "33833cfd1ed2d94d907223442fdb8cdafd8d5d80")
+ (revision "0"))
+ (package
+ (name "flycast")
+ (version (git-version "2.5" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/flyinghead/flycast")
+ (commit commit)
+ ;; There are many bundled packages here included as git
+ ;; submodules, but removing many of them would require patching
+ ;; the source code and repository layout (see: <>).
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "16vwhw33zhq2b8mpg863cn7sz4f04wxjz2650jgqjv7i5lkdd1g9"))
+ (modules '((guix build utils)))
+ (snippet #~(begin
+ ;; TODO: Uncomment after our vulkan-headers
+ ;; are update to 1.3.261.0 or newer.
+ ;; (substitute* "CMakeLists.txt"
+ ;; (("add_subdirectory\\(core/deps/Vulkan-Headers\\)")
+ ;; "find_package(VulkanHeaders)"))
+ (with-directory-excursion "core/deps"
+ (for-each
+ delete-file-recursively
+ '("SDL"
+ "Spout"
+ "Syphon"
+ ;; TODO: Uncomment after our vulkan-headers
+ ;; are update to 1.3.261.0 or newer.
+ ;;"Vulkan-Headers"
+ "breakpad"
+ "discord-rpc"
+ ;; XXX: The libretro build requires the bundled
+ ;; libzip, which it uses to produce a
+ ;; static library.
+ ;;"libzip"
+ "oboe")))))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;no test suite
+ #:configure-flags
+ #~(list "-DUSE_ALSA=ON"
+ "-DUSE_BREAKPAD=OFF"
+ "-DUSE_DX11=OFF"
+ "-DUSE_DX9=OFF"
+ ;; The USE_HOST_GLSLANG option is not implemented correctly.
+ ;; (see: https://github.com/flyinghead/flycast/issues/1843)
+ "-DUSE_HOST_GLSLANG=OFF"
+ "-DUSE_HOST_LIBZIP=ON"
+ "-DUSE_HOST_SDL=ON"
+ "-DUSE_LIBAO=ON"
+ "-DUSE_LIBCDIO=ON"
+ "-DUSE_LUA=ON"
+ "-DUSE_PULSEAUDIO=ON"
+ "-DUSE_VULKAN=ON")))
+ (native-inputs (list pkg-config))
+ (inputs (list alsa-lib
+ ao
+ curl
+ glslang
+ libcdio
+ libzip
+ lua
+ miniupnpc
+ pulseaudio
+ sdl2
+ spirv-tools
+ ;; TODO: Uncomment after vulkan-headers
+ ;; is updated to 1.3.261.0 or newer.
+ ;;vulkan-headers
+ ))
+ (home-page "https://github.com/flyinghead/flycast")
+ (synopsis "Sega Dreamcast, Naomi, Naomi 2, and Atomiswave emulator")
+ (description "Flycast is a multi-platform Sega Dreamcast, Naomi, Naomi 2,
and Atomiswave emulator derived from reicast.")
- (license license:gpl2+)))
+ (license license:gpl2+))))
+
+(define-public libretro-flycast
+ (package/inherit flycast
+ (name "libretro-flycast")
+ (arguments (substitute-keyword-arguments (package-arguments flycast)
+ ((#:configure-flags flags)
+ #~(cons "-DLIBRETRO=ON" #$flags))))))
(define-public freedisksysrom
;; There is no release; use the latest commit.