unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#76012] [PATCH] gnu: Add ghosthop.
@ 2025-02-02 14:30 iyzsong--- via Guix-patches via
  2025-02-04  9:50 ` bug#76012: " 宋文武 via Guix-patches via
  0 siblings, 1 reply; 2+ messages in thread
From: iyzsong--- via Guix-patches via @ 2025-02-02 14:30 UTC (permalink / raw)
  To: 76012
  Cc: 宋文武, Adam Faiz, Liliana Marie Prikler,
	宋文武

From: 宋文武 <iyzsong@member.fsf.org>

* gnu/packages/games.scm (ghosthop): New variable.

Change-Id: I45867f844517666cb123b1d05a140c0ae8528e79
---
 gnu/packages/games.scm | 66 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 8255e0623b..4bb96c67c7 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -181,6 +181,7 @@ (define-module (gnu packages games)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages lisp)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages man)
@@ -2176,6 +2177,71 @@ (define-public knightsgame
     ;; license.  The whole package is released under GPLv3+.
     (license license:gpl3+)))
 
+(define-public ghosthop
+  (let ((commit "9fefc22830ff8fde484452d7a249f4c54feec0fc")
+        (revision "1"))
+    (package
+      (name "ghosthop")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.com/gcmas/ghosthop.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "021awll73bgjk61r6y6cbqn0dpmki9jp627km7yhx5px15panslq"))
+         (modules '((guix build utils)))
+         (snippet '(delete-file-recursively "vendor"))))
+      (build-system copy-build-system)
+      (arguments
+       (list
+        #:install-plan
+        ;; 'ghosthop' load 'asset' and 'scm' from the current directory.
+        #~'(("ghosthop" "opt/ghosthop/")
+            ("asset" "opt/ghosthop/")
+            ("scm" "opt/ghosthop/"))
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-before 'install 'build
+              ;; Avoid its Makefile to build with system libraries.
+              (lambda* (#:key inputs #:allow-other-keys)
+                (with-output-to-file "rlbind.c"
+                  (lambda ()
+                    (invoke "repl" "rlbind.scm")))
+                (invoke #$(cc-for-target)
+                        "-o" "ghosthop"
+                        "-O3" "-lm" "-lraylib"
+                        (search-input-file inputs "/share/s7/s7.c")
+                        "rlbind.c" "src/init.c")
+                (invoke #$(strip-for-target) "ghosthop")))
+            (add-after 'install 'install-launcher
+              ;; Create an launcher script for 'ghosthop'.
+              (lambda* (#:key inputs outputs #:allow-other-keys)
+                (let* ((out (assoc-ref outputs "out"))
+                       (bindir (string-append out "/bin"))
+                       (gamedir (string-append out "/opt/ghosthop"))
+                       (launcher (string-append bindir "/ghosthop"))
+                       (bash (search-input-file inputs "/bin/bash")))
+                  (mkdir (dirname launcher))
+                  (with-output-to-file launcher
+                    (lambda ()
+                      (format #t "#!~a~%" bash)
+                      (format #t "cd ~a~%" gamedir)
+                      (format #t "exec -a ghosthop ~a~%"
+                              (string-append gamedir "/ghosthop"))))
+                  (chmod launcher #o755)))))))
+      (native-inputs (list s7))
+      (inputs (list bash-minimal raylib))
+      (home-page "https://gitlab.com/gcmas/ghosthop")
+      (synopsis "Puzzle game with colored rules")
+      (description "This is a small puzzle game made for the 2024 Spring Lisp
+Game Jam.  The objective is to reach the goal by assigning rules to colors.")
+      (license (list license:gpl3+            ;code and other assets
+                     license:cc-by-sa3.0))))) ;music
+
 (define-public gnome-2048
   (package
     (name "gnome-2048")

base-commit: b64d3168af697ceb2a96e7e2c62bcf418b8a586a
-- 
2.48.1





^ permalink raw reply related	[flat|nested] 2+ messages in thread

* bug#76012: [PATCH] gnu: Add ghosthop.
  2025-02-02 14:30 [bug#76012] [PATCH] gnu: Add ghosthop iyzsong--- via Guix-patches via
@ 2025-02-04  9:50 ` 宋文武 via Guix-patches via
  0 siblings, 0 replies; 2+ messages in thread
From: 宋文武 via Guix-patches via @ 2025-02-04  9:50 UTC (permalink / raw)
  To: 76012-done


Pushed to master, close.




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-02-04  9:48 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-02 14:30 [bug#76012] [PATCH] gnu: Add ghosthop iyzsong--- via Guix-patches via
2025-02-04  9:50 ` bug#76012: " 宋文武 via Guix-patches via

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).