~ruther/guix-local

5f1611071a1c13caa1ec3ad481d77683dea20983 — Maxim Cournoyer 10 months ago 3755347
gnu: flycast: Update to 2.5-0.33833cf, fixing build.

* gnu/packages/emulators.scm (flycast): Update to 2.5-0.33833cf.
[source] <snippet>: Bundle Vulkan-Headers for now.
[inputs]: Remove vulkan-headers for now.

Change-Id: I9bead5eaf14d58bfc898cf74ae3f9decd92ee321
1 files changed, 75 insertions(+), 65 deletions(-)

M gnu/packages/emulators.scm
M gnu/packages/emulators.scm => gnu/packages/emulators.scm +75 -65
@@ 4352,72 4352,82 @@ 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"
                                    "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
                    ;; TODO: Uncomment after vulkan-headers
                    ;; is updated to 1.3.261.0 or newer.
                    ;;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,
and Atomiswave emulator derived from reicast.")
    (license license:gpl2+)))
      (license license:gpl2+))))

(define-public freedisksysrom
  ;; There is no release; use the latest commit.