[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#62550] [PATCH] gnu: Add alienblaster.
From: |
Bruno Victal |
Subject: |
[bug#62550] [PATCH] gnu: Add alienblaster. |
Date: |
Fri, 31 Mar 2023 11:41:27 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 |
Hi Yovan,
On 2023-03-30 20:26, Yovan Naumovski via Guix-patches via wrote:
> + (arguments
> + '(#:tests? #f ;; no tests
> + #:phases
> + (modify-phases %standard-phases
> + (add-after 'unpack 'fix-sdl-paths
> + (lambda* (#:key inputs outputs #:allow-other-keys)
> + (let* ((out (assoc-ref outputs "out"))
> + (share (string-append out "/share"))
> + (sdl-mixer (assoc-ref inputs "sdl-mixer")))
> +
> + ;; fix name and append path to SDL_mixer.h
> + (substitute* "src/Makefile"
> + (("GAME_NAME=alienBlaster")
> + "GAME_NAME=alienblaster")
> + (("SDL_FLAGS=\\$\\(shell sdl-config --cflags\\)" line)
> + (string-append line " -I" sdl-mixer "/include/SDL")))
> +
> + ;; substitute relative paths in .cfg and source/header files
> + (substitute* (find-files "./cfg")
> + (("(\\./)?images") (string-append share "/images")))
> + (substitute* (list "src/global.h" "src/global.cc")
> + (("./images") (string-append share "/images"))
> + (("./sound") (string-append share "/sound"))
> + (("./cfg") (string-append share "/cfg"))))))
> +
> + (delete 'configure)
> +
> + (replace 'install
> + (lambda* (#:key outputs #:allow-other-keys)
> + (let* ((out (assoc-ref outputs "out"))
> + (bin (string-append out "/bin")))
> + (install-file "alienblaster" bin)
> + (for-each
> + (lambda (dir)
> + (copy-recursively dir (string-append out "/share/" dir)))
> + '("images" "sound" "cfg")))
> + #t)))))
You should use G-Expressions here, i.e.
(arguments
(list
#:tests? #f ; no tests
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-sdl-paths
(lambda* (#:key inputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(share (string-append #$output "/share"))
(sdl-mixer (assoc-ref inputs "sdl-mixer")))
;; fix name and append path to SDL_mixer.h
(substitute* "src/Makefile"
(("GAME_NAME=alienBlaster")
"GAME_NAME=alienblaster")
(("SDL_FLAGS=\\$\\(shell sdl-config --cflags\\)" line)
(string-append line " -I" sdl-mixer "/include/SDL")))
;; substitute relative paths in .cfg and source/header files
(substitute* (find-files "./cfg")
(("(\\./)?images") (string-append share "/images")))
(substitute* (list "src/global.h" "src/global.cc")
(("./images") (string-append share "/images"))
(("./sound") (string-append share "/sound"))
(("./cfg") (string-append share "/cfg"))))))
… )
Take a look at the existing packages that use G-Expressions for inspiration.
(examples that come to mind are mympd, libavif, autokey, rng-tools,
dropwatch, nvme-cli, …)
> + (home-page "http://www.schwardtnet.de/alienblaster/")
> + (synopsis "Action-loaded 2D arcade shooter game")
> + (description "Alien Blaster is an action-loaded 2D arcade shooter
> +game. Your mission in the game is simple: stop the invasion of the aliens by
> +blasting them. Simultaneous two-player mode is available.")
Keep the sentences separated with two spaces between them. (Texinfo syntax)
Thanks,
Bruno