gnu: Add wasm4.
* gnu/packages/emulators.scm (wasm4): New variable.
This commit is contained in:
parent
0079dd7c8e
commit
c19cd9f947
1 changed files with 53 additions and 1 deletions
|
@ -3,7 +3,7 @@
|
||||||
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
|
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
|
||||||
;;; Copyright © 2015, 2016, 2021 Sou Bunnbu <iyzsong@member.fsf.org>
|
;;; Copyright © 2015, 2016, 2021 Sou Bunnbu <iyzsong@member.fsf.org>
|
||||||
;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||||
;;; Copyright © 2015, 2018 David Thompson <dthompson2@worcester.edu>
|
;;; Copyright © 2015, 2018, 2023 David Thompson <dthompson2@worcester.edu>
|
||||||
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||||
;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2017-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
;;; Copyright © 2017-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||||
|
@ -74,6 +74,7 @@
|
||||||
#:use-module (gnu packages gl)
|
#:use-module (gnu packages gl)
|
||||||
#:use-module (gnu packages glib)
|
#:use-module (gnu packages glib)
|
||||||
#:use-module (gnu packages gnome)
|
#:use-module (gnu packages gnome)
|
||||||
|
#:use-module (gnu packages graphics)
|
||||||
#:use-module (gnu packages gtk)
|
#:use-module (gnu packages gtk)
|
||||||
#:use-module (gnu packages image)
|
#:use-module (gnu packages image)
|
||||||
#:use-module (gnu packages libedit)
|
#:use-module (gnu packages libedit)
|
||||||
|
@ -1506,6 +1507,57 @@ reference frontend for the libretro API, currently used by most as a modular
|
||||||
multi-system game/emulator system.")
|
multi-system game/emulator system.")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public wasm4
|
||||||
|
(package
|
||||||
|
(name "wasm4")
|
||||||
|
(version "2.5.4")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/aduros/wasm4")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0ycnznwy4i4fw6l507y5xm986rxqvnpl971725q8xinsnq2swpnl"))))
|
||||||
|
(build-system cmake-build-system)
|
||||||
|
(arguments
|
||||||
|
(list
|
||||||
|
#:tests? #f ; no check target
|
||||||
|
#:configure-flags
|
||||||
|
#~(list (string-append "-DCMAKE_C_FLAGS="
|
||||||
|
"-I" #$minifb "/include "
|
||||||
|
"-I" #$wasm3 "/include"))
|
||||||
|
#:phases
|
||||||
|
'(modify-phases %standard-phases
|
||||||
|
;; WASM4's source is a combination of multiple runtimes. We want to
|
||||||
|
;; build the native one.
|
||||||
|
(add-after 'unpack 'chdir-to-native-runtime
|
||||||
|
(lambda _
|
||||||
|
(chdir "runtimes/native")))
|
||||||
|
;; WASM4 uses git submodules to bundle several dependencies, which we
|
||||||
|
;; have instead made dedicated packages for. This phase hacks the
|
||||||
|
;; build system to use our own stuff.
|
||||||
|
(add-after 'chdir-to-native-runtime 'unbundle
|
||||||
|
(lambda _
|
||||||
|
(substitute* "CMakeLists.txt"
|
||||||
|
;; These directories do not exist because we aren't pulling in
|
||||||
|
;; submodules.
|
||||||
|
(("add_subdirectory\\(vendor/minifb\\)") "")
|
||||||
|
(("add_subdirectory\\(vendor/cubeb\\)") "")
|
||||||
|
;; Add additional libraries needed to successfully link the
|
||||||
|
;; wasm4 executable using the unbundled dependencies.
|
||||||
|
(("target_link_libraries\\(wasm4 minifb cubeb\\)")
|
||||||
|
"target_link_libraries(wasm4 m GL X11 xkbcommon minifb cubeb m3)")))))))
|
||||||
|
(inputs (list cubeb minifb wasm3))
|
||||||
|
(synopsis "WebAssembly fantasy console")
|
||||||
|
(description "WASM-4 is a low-level fantasy game console for building
|
||||||
|
small games with WebAssembly. Game cartridges (ROMs) are small,
|
||||||
|
self-contained .wasm files that can be built with any programming language
|
||||||
|
that compiles to WebAssembly.")
|
||||||
|
(home-page "https://wasm4.org")
|
||||||
|
(license license:isc)))
|
||||||
|
|
||||||
(define-public scummvm
|
(define-public scummvm
|
||||||
(package
|
(package
|
||||||
(name "scummvm")
|
(name "scummvm")
|
||||||
|
|
Reference in a new issue