gnu: godot: Enable wayland support.

* gnu/packages/game-development.scm (godot)[phases]: Update fix-dlopen-paths
to include wayland libraries.  Add unbundle-wayland phase.
[inputs]: Add libdecor, wayland, and wayland-protocols.

Change-Id: I636f0fcc1eba5af98e2a8c6b9caa91d2e1aa4a97
This commit is contained in:
John Kehayias 2025-01-08 01:31:06 -05:00
parent 21574796e9
commit eaa94ed255
No known key found for this signature in database
GPG key ID: 499097AE5EA815D9

View file

@ -2209,6 +2209,10 @@ (define-public godot
"platform/linuxbsd/fontconfig-so_wrap.c" "platform/linuxbsd/fontconfig-so_wrap.c"
"platform/linuxbsd/libudev-so_wrap.c" "platform/linuxbsd/libudev-so_wrap.c"
"platform/linuxbsd/speechd-so_wrap.c" "platform/linuxbsd/speechd-so_wrap.c"
"platform/linuxbsd/wayland/dynwrappers/libdecor-so_wrap.c"
"platform/linuxbsd/wayland/dynwrappers/wayland-client-core-so_wrap.c"
"platform/linuxbsd/wayland/dynwrappers/wayland-cursor-so_wrap.c"
"platform/linuxbsd/wayland/dynwrappers/wayland-egl-core-so_wrap.c"
"platform/linuxbsd/x11/display_server_x11.cpp" "platform/linuxbsd/x11/display_server_x11.cpp"
"platform/linuxbsd/x11/dynwrappers/xcursor-so_wrap.c" "platform/linuxbsd/x11/dynwrappers/xcursor-so_wrap.c"
"platform/linuxbsd/x11/dynwrappers/xext-so_wrap.c" "platform/linuxbsd/x11/dynwrappers/xext-so_wrap.c"
@ -2226,6 +2230,10 @@ (define-public godot
"libfontconfig.so.1" "libfontconfig.so.1"
"libudev.so.1" "libudev.so.1"
"libspeechd.so.2" "libspeechd.so.2"
"libdecor-0.so.0"
"libwayland-client.so.0"
"libwayland-cursor.so.0"
"libwayland-egl.so.1"
"libXrandr.so.2" "libXrandr.so.2"
"libXcursor.so.1" "libXcursor.so.1"
"libXext.so.6" "libXext.so.6"
@ -2263,6 +2271,20 @@ (define-public godot
(("./thirdparty/linuxbsd_headers/xkbcommon/xkbcommon-keysyms.h") (("./thirdparty/linuxbsd_headers/xkbcommon/xkbcommon-keysyms.h")
(string-append (string-append
(search-input-file inputs "include/xkbcommon/xkbcommon-keysyms.h")))))) (search-input-file inputs "include/xkbcommon/xkbcommon-keysyms.h"))))))
(add-after 'unbundle-xkbcommon 'unbundle-wayland
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "platform/linuxbsd/wayland/SCsub"
;; This first file does not exist in a "protocol" directory of
;; our wayland package, so this can't be grouped with the
;; other substitutions.
(("#thirdparty/wayland/protocol/wayland.xml")
(search-input-file inputs "share/wayland/wayland.xml"))
(("#thirdparty/wayland-protocols")
(string-append
#$(this-package-input "wayland-protocols") "/share/wayland-protocols"))
(("#thirdparty/wayland")
(string-append
#$(this-package-input "wayland") "/share/wayland")))))
(replace 'install (replace 'install
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((zenity (search-input-file inputs "bin/zenity"))) (let ((zenity (search-input-file inputs "bin/zenity")))
@ -2311,6 +2333,7 @@ (define-public godot
libpng libpng
harfbuzz harfbuzz
icu4c icu4c
libdecor
libtheora libtheora
libvorbis libvorbis
libvpx libvpx
@ -2329,6 +2352,8 @@ (define-public godot
pulseaudio pulseaudio
speech-dispatcher speech-dispatcher
vulkan-loader vulkan-loader
wayland
wayland-protocols
wslay wslay
zenity zenity
zlib zlib