Subject: [bug#48952] [PATCH v2 2/6] gnu: superstarfighter: Use godot-build-system.

From: Vinicius Monego <[email-masked]>
Date: Tue, 21 Dec 2021 23:55:44 +0000

* gnu/packages/games.scm (superstarfighter)[build-system]: Use
godot-build-system.
[arguments]: Remove #:tests?. <#:game, #:project-directory>: New fields.
<#:phases>: Do not replace configure, build and install. Add phase
'install-desktop-file after 'install.
---
 gnu/packages/games.scm | 54 +++++++++---------------------------------
 1 file changed, 11 insertions(+), 43 deletions(-)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 6258d65f97..a701f7aa94 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -67,6 +67,7 @@
 ;;; Copyright © 2021 Petr Hodina <[email-masked]>
 ;;; Copyright © 2021 Brendan Tildesley <[email-masked]>
 ;;; Copyright © 2021 Christopher Baines <[email-masked]>
+;;; Copyright © 2021 Vinicius Monego <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -209,6 +210,7 @@
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
+  #:use-module (guix build-system godot)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
@@ -2562,59 +2564,25 @@ modify quests for the Solarus engine.")))
              (commit "32521f467616bb390e3929d07e1936ff43fe64da")))
        (file-name (git-file-name name version))
        (sha256
+
         (base32 "1ckghzrfgvk9z1n5f4ivnamm6s8h9sbv0a3aq9pp4a3yrhkgld0k"))))
-    (build-system gnu-build-system)
+    (build-system godot-build-system)
     (arguments
-     `(#:tests? #f                      ;there are no tests
+     `(#:game ,name
+       #:project-directory "godot"
        #:phases
        (modify-phases %standard-phases
-         (replace 'configure
-           (lambda _
-             (chdir "godot")
-             (setenv "HOME" (getcwd))
-             (with-output-to-file "export_presets.cfg"
-               (lambda ()
-                 (display
-                  "[preset.0]
-name=\"Guix\"
-platform=\"Linux/X11\"
-runnable=true
-[preset.0.options]")))
-             #t))
-         (replace 'build
-           (lambda _
-             (let ((godot (assoc-ref %build-inputs "godot-headless")))
-               (invoke (string-append godot "/bin/godot_server")
-                       "--export-pack" "Guix"
-                       "superstarfighter.pck" "project.godot"))
-             #t))
-         (replace 'install
-           (lambda* (#:key inputs outputs #:allow-other-keys)
+         (add-after 'install 'install-desktop-file
+           (lambda* (#:key inputs outputs game #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
-                    (bin (string-append out "/bin"))
-                    (share (string-append out "/share"))
-                    (data (string-append share "/superstarfighter"))
-                    (icons (string-append share "/icons/hicolor/256x256/apps")))
-               (install-file "superstarfighter.pck" data)
-               (mkdir-p bin)
-               (call-with-output-file (string-append bin "/superstarfighter")
-                 (lambda (port)
-                   (format port
-                           "#!/bin/sh~@
-                            exec ~a/bin/godot --main-pack ~a/superstarfighter.pck~%"
-                           (assoc-ref inputs "godot")
-                           data)
-                   (chmod port #o755)))
-               (mkdir-p icons)
-               (copy-file "icon.png" (string-append icons "/" ,name ".png"))
+                    (share (string-append out "/share")))
                (make-desktop-entry-file
-                (string-append share "/applications/" ,name ".desktop")
+                (string-append share "/applications/" game ".desktop")
                 #:name "SuperStarfighter"
                 #:comment "Fast-paced arcade combat game"
                 #:exec ,name
                 #:icon ,name
-                #:categories '("Game" "ArcadeGame")))
-             #t)))))
+                #:categories '("Game" "ArcadeGame"))))))))
     (native-inputs
      `(("godot-headless" ,godot "headless")))
     (inputs
-- 
2.30.2