gnu: godot-lts: Improve package style.
* gnu/packages/game-development.scm (godot-lts): Re-indent and ensure max column length to 79. [arguments]: Use gexp. Change-Id: I0bedb66a4e7e0ebe6242df885f1e687ce3a43ce0 Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
This commit is contained in:
		
							parent
							
								
									7f1c40df92
								
							
						
					
					
						commit
						c12a6e7419
					
				
					 1 changed files with 88 additions and 78 deletions
				
			
		|  | @ -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 @@ games.") | |||
|                               "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)) | ||||
|  |  | |||
		Reference in a new issue