Mirai's Miscellaneous Misadventures
M46 / meta / guix.scm
(use-modules
(guix packages)
(guix build-system meson)
((guix licenses) #:prefix license:)
(guix utils)
(gnu packages llvm)
(guix gexp)
(guix profiles)
(gnu packages graphics)
(gnu packages pkg-config)
(gnu packages sdl)
)
; todo: remove when (or if) <https://github.com/mesonbuild/meson/pull/11862> is merged and lands on Guix
(use-modules (gnu packages build-tools) (guix git-download))
(define meson-wasm
(package/inherit meson
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/mesonbuild/meson")
(commit "41eee7a7b5d633e6a89a132d172a6dc5ed8d90df")
)
)
(sha256 (base32 "0sxhli4hrl62kf6g5jd9rixwcr6y622dgmlxii9l5kqjdyjvgva7"))
)
)
)
)
(define mimimi
(package
(name "mimimi")
(version "MXX")
(license license:agpl3+)
(synopsis "a platforming game")
(description synopsis)
(home-page #f)
(source (local-file ".." "mimimi-source" #:recursive? #t))
(build-system meson-build-system)
(inputs (list minifb sdl2))
(native-inputs (list pkg-config))
(arguments
'(
#:build-type "release"
#:configure-flags '("-Ddefault_library=static")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-mimimi
(lambda _
(if (file-exists? "meta/patches.tar")
(invoke "tar" "--strip-components=1" "-xf" "meta/patches.tar")
)
(if (directory-exists? "meta/patches")
(copy-recursively "meta/patches" ".")
)
(if (file-exists? "meta/patches.txt")
(invoke "patch" "-p1" "-i" "meta/patches.txt")
)
)
)
)
)
)
)
)
(define mimimi-wasm
(package/inherit mimimi
(name "mimimi-wasm")
(inputs '())
(native-inputs (list clang-toolchain lld))
(arguments
(substitute-keyword-arguments (package-arguments mimimi)
((#:meson meson #f) meson-wasm)
((#:configure-flags flags #~'()) #~'("--cross-file=meta/wasm32.txt" "-Dengines=wasm"))
((#:phases phases #~%standard-phases)
#~(modify-phases #$phases
(replace 'configure
(lambda* (#:key outputs configure-flags build-type #:allow-other-keys)
(let*
(
(out (assoc-ref outputs "out"))
(args `(,(string-append "--prefix=" out) ,(string-append "--buildtype=" build-type) ,@configure-flags "../build"))
)
(apply invoke "meson" "setup" args)
(chdir "../build")
)
)
)
)
)
)
)
)
)
(packages->manifest (list mimimi mimimi-wasm))