Toggle diff (188 lines)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 9591fae7f9e..03b6f1df8b9 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -29,6 +29,7 @@
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;; Copyright © 2022 dan <i@dan.games>
;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com>
+;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1972,86 +1973,95 @@ (define-public godot-lts
"vhacd"
"xatlas")))
(for-each delete-file-recursively
- (lset-difference string=?
- (scandir ".")
- (cons* "." ".." preserved-files)))))))))
+ (lset-difference
+ string=?
+ (scandir ".")
+ (cons* "." ".." preserved-files)))))))))
(build-system scons-build-system)
(arguments
- `(#:scons-flags (list "platform=x11" "target=release_debug"
- ;; Avoid using many of the bundled libs.
- ;; Note: These options can be found in the SConstruct file.
- "builtin_bullet=no"
- "builtin_freetype=no"
- "builtin_glew=no"
- "builtin_libmpdec=no"
- "builtin_libogg=no"
- "builtin_libpng=no"
- "builtin_libtheora=no"
- "builtin_libvorbis=no"
- "builtin_libvpx=no"
- "builtin_libwebp=no"
- "builtin_mbedtls=no"
- "builtin_opus=no"
- "builtin_pcre2=no"
- "builtin_wslay=no"
- "builtin_zlib=no"
- "builtin_zstd=no")
- #:tests? #f ; There are no tests
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'scons-use-env
- (lambda _
- ;; Scons does not use the environment variables by default,
- ;; but this substitution makes it do so.
- (substitute* "SConstruct"
- (("env_base = Environment\\(tools=custom_tools\\)")
- (string-append
- "env_base = Environment(tools=custom_tools)\n"
- "env_base = Environment(ENV=os.environ)")))))
- ;; Build headless tools, used for packaging games without depending on X.
- (add-after 'build 'build-headless
- (lambda* (#:key scons-flags #:allow-other-keys)
- (apply invoke "scons"
- `(,(string-append "-j" (number->string (parallel-job-count)))
- "platform=server" ,@(delete "platform=x11" scons-flags)))))
- (replace 'install
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (headless (assoc-ref outputs "headless"))
- (zenity (assoc-ref inputs "zenity")))
- ;; Strip build info from filenames.
- (with-directory-excursion "bin"
- (for-each
- (lambda (file)
- (let ((dest (car (string-split (basename file) #\.))))
- (rename-file file dest)))
- (find-files "." "godot.*\\.x11\\.opt\\.tools.*"))
- (install-file "godot" (string-append out "/bin"))
- (install-file "godot_server" (string-append headless "/bin")))
- ;; Tell the editor where to find zenity for OS.alert().
- (wrap-program (string-append out "/bin/godot")
- `("PATH" ":" prefix (,(string-append zenity "/bin")))))))
- (add-after 'install 'wrap-ld-path
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (pulseaudio_path (string-append (assoc-ref inputs "pulseaudio") "/lib"))
- (alas_lib_path (string-append (assoc-ref inputs "alsa-lib") "/lib")))
- (wrap-program (string-append out "/bin/godot")
- `("LD_LIBRARY_PATH" ":" prefix (,pulseaudio_path ,alas_lib_path))))))
- (add-after 'install 'install-godot-desktop
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (applications (string-append out "/share/applications"))
- (icons (string-append out "/share/icons/hicolor")))
- (mkdir-p applications)
- (copy-file "misc/dist/linux/org.godotengine.Godot.desktop"
- (string-append applications "/godot.desktop"))
- (for-each (lambda (icon dest)
- (mkdir-p (dirname dest))
- (copy-file icon dest))
- '("icon.png" "icon.svg")
- `(,(string-append icons "/256x256/apps/godot.png")
- ,(string-append icons "/scalable/apps/godot.svg")))))))))
+ (list
+ ;; Avoid using many of the bundled libs.
+ ;; Note: These options can be found in the SConstruct file.
+ #:scons-flags #~(list "platform=x11" "target=release_debug"
+ "builtin_bullet=no"
+ "builtin_freetype=no"
+ "builtin_glew=no"
+ "builtin_libmpdec=no"
+ "builtin_libogg=no"
+ "builtin_libpng=no"
+ "builtin_libtheora=no"
+ "builtin_libvorbis=no"
+ "builtin_libvpx=no"
+ "builtin_libwebp=no"
+ "builtin_mbedtls=no"
+ "builtin_opus=no"
+ "builtin_pcre2=no"
+ "builtin_wslay=no"
+ "builtin_zlib=no"
+ "builtin_zstd=no")
+ #:tests? #f ; There are no tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'scons-use-env
+ (lambda _
+ ;; Scons does not use the environment variables by default,
+ ;; but this substitution makes it do so.
+ (substitute* "SConstruct"
+ (("env_base = Environment\\(tools=custom_tools\\)")
+ (string-append
+ "env_base = Environment(tools=custom_tools)\n"
+ "env_base = Environment(ENV=os.environ)")))))
+ ;; Build headless tools, to package games without depending on X.
+ (add-after 'build 'build-headless
+ (lambda* (#:key scons-flags #:allow-other-keys)
+ (apply invoke "scons"
+ `(,(string-append
+ "-j" (number->string (parallel-job-count)))
+ "platform=server"
+ ,@(delete "platform=x11" scons-flags)))))
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (headless (assoc-ref outputs "headless"))
+ (zenity (assoc-ref inputs "zenity")))
+ ;; Strip build info from filenames.
+ (with-directory-excursion "bin"
+ (for-each
+ (lambda (file)
+ (let ((dest (car (string-split (basename file) #\.))))
+ (rename-file file dest)))
+ (find-files "." "godot.*\\.x11\\.opt\\.tools.*"))
+ (install-file "godot" (string-append out "/bin"))
+ (install-file "godot_server"
+ (string-append headless "/bin")))
+ ;; Tell the editor where to find zenity for OS.alert().
+ (wrap-program (string-append out "/bin/godot")
+ `("PATH" ":" prefix (,(string-append zenity "/bin")))))))
+ (add-after 'install 'wrap-ld-path
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (pulseaudio_path (string-append
+ (assoc-ref inputs "pulseaudio") "/lib"))
+ (alas_lib_path (string-append
+ (assoc-ref inputs "alsa-lib") "/lib")))
+ (wrap-program (string-append out "/bin/godot")
+ `("LD_LIBRARY_PATH" ":" prefix
+ (,pulseaudio_path ,alas_lib_path))))))
+ (add-after 'install 'install-godot-desktop
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (applications (string-append out "/share/applications"))
+ (icons (string-append out "/share/icons/hicolor")))
+ (mkdir-p applications)
+ (copy-file "misc/dist/linux/org.godotengine.Godot.desktop"
+ (string-append applications "/godot.desktop"))
+ (for-each (lambda (icon dest)
+ (mkdir-p (dirname dest))
+ (copy-file icon dest))
+ '("icon.png" "icon.svg")
+ `(,(string-append icons "/256x256/apps/godot.png")
+ ,(string-append icons
+ "/scalable/apps/godot.svg")))))))))
(outputs '("out" "headless"))
(native-inputs
(list pkg-config))
--
2.41.0