Files
buildroot/package/weston/Config.in
Joseph Kogut cc6ace8158 package/weston: add EGL dependency for XWayland
BR2_PACKAGE_WESTON_XWAYLAND currently depends on BR2_PACKAGE_LIBEPOXY,
which implicitly requires either libGL or libEGL. However, the XWayland
glamor support uses libepoxy with EGL, so express that dependency
directly. With only libGL and no libEGL, it fails to build. E.g.,

BR2_aarch64=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_GLIBC_STABLE=y
BR2_PACKAGE_MESA3D=y
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ETNAVIV=y
BR2_PACKAGE_MESA3D_OPENGL_GLX=y
BR2_PACKAGE_XORG7=y
BR2_PACKAGE_XWAYLAND=y
BR2_PACKAGE_LIBEPOXY=y

fails with:

In file included from ../glamor/glamor_priv.h:73,
from ../glamor/glamor_composite_glyphs.c:25:
../glamor/glamor_context.h:27:10: fatal error: epoxy/egl.h: No such file or directory
27 | #include <epoxy/egl.h>
   |          ^~~~~~~~~~~~~

Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com>
Signed-off-by: Arnout Vandecappelle <arnout@rnout.be>
(cherry picked from commit 701f8bb31c)
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
2026-05-29 10:26:55 +02:00

223 lines
6.8 KiB
Plaintext

comment "weston needs udev and a toolchain w/ locale, threads, dynamic library, headers >= 3.0"
depends on !BR2_PACKAGE_HAS_UDEV || !BR2_TOOLCHAIN_HAS_THREADS || \
!BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 || BR2_STATIC_LIBS || \
!BR2_ENABLE_LOCALE
config BR2_PACKAGE_WESTON
bool "weston"
depends on BR2_PACKAGE_HAS_UDEV
depends on !BR2_STATIC_LIBS # wayland
depends on BR2_TOOLCHAIN_HAS_THREADS # wayland
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
select BR2_PACKAGE_WAYLAND
select BR2_PACKAGE_WAYLAND_PROTOCOLS
select BR2_PACKAGE_LIBXKBCOMMON
select BR2_PACKAGE_CAIRO
select BR2_PACKAGE_CAIRO_PNG
select BR2_PACKAGE_LIBPNG
select BR2_PACKAGE_LIBINPUT
select BR2_PACKAGE_LIBDISPLAY_INFO
select BR2_PACKAGE_LIBDRM
select BR2_PACKAGE_SEATD
# Runtime dependency
select BR2_PACKAGE_XKEYBOARD_CONFIG
select BR2_PACKAGE_WESTON_SHELL_DESKTOP if !BR2_PACKAGE_WESTON_HAS_SHELL
help
Weston is the reference implementation of a Wayland
compositor, and a useful compositor in its own right.
Weston has various backends that lets it run on Linux kernel
modesetting and evdev input as well as under X11.
http://wayland.freedesktop.org/
if BR2_PACKAGE_WESTON
choice
prompt "default compositor"
config BR2_PACKAGE_WESTON_DEFAULT_DRM
bool "drm"
select BR2_PACKAGE_WESTON_DRM
config BR2_PACKAGE_WESTON_DEFAULT_HEADLESS
bool "headless"
select BR2_PACKAGE_WESTON_HEADLESS
config BR2_PACKAGE_WESTON_DEFAULT_RDP
bool "rdp"
depends on BR2_USE_MMU # freerdp, libglib2
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on BR2_USE_WCHAR # freerdp
depends on BR2_INSTALL_LIBSTDCPP # freerdp
depends on BR2_PACKAGE_XORG7 # freerdp-server
select BR2_PACKAGE_WESTON_RDP
config BR2_PACKAGE_WESTON_DEFAULT_WAYLAND
bool "wayland (nested)"
select BR2_PACKAGE_WESTON_WAYLAND
config BR2_PACKAGE_WESTON_DEFAULT_X11
bool "X11 (nested)"
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_WESTON_X11
comment "X11 (nested) backend needs X.org"
depends on !BR2_PACKAGE_XORG7
endchoice
config BR2_PACKAGE_WESTON_DEFAULT_COMPOSITOR
string
default "drm" if BR2_PACKAGE_WESTON_DEFAULT_DRM
default "headless" if BR2_PACKAGE_WESTON_DEFAULT_HEADLESS
default "rdp" if BR2_PACKAGE_WESTON_DEFAULT_RDP
default "wayland" if BR2_PACKAGE_WESTON_DEFAULT_WAYLAND
default "x11" if BR2_PACKAGE_WESTON_DEFAULT_X11
config BR2_PACKAGE_WESTON_DRM
bool "DRM compositor"
# FreeRDP needs threads and !static, already the case for weston
config BR2_PACKAGE_WESTON_RDP
bool "RDP compositor"
depends on BR2_USE_MMU # freerdp, libglib2
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on BR2_USE_WCHAR # freerdp
depends on BR2_INSTALL_LIBSTDCPP # freerdp
depends on BR2_PACKAGE_XORG7 # freerdp-server
select BR2_PACKAGE_FREERDP
select BR2_PACKAGE_FREERDP_SERVER
help
This enables the RDP backend, which allows accessing weston
through the network with any RDP-compliant client.
Please note that one must pass those options to weston for RDP
to be functional:
--rdp-tls-cert=/path/to/server.crt
--rdp-tls-key=/path/to/server.key
By default, Buildroot installs such files in
/etc/freerdp/server/ so you may want to change them in a
post-build script or a rootfs overlay.
comment "RDP compositor needs a toolchain w/ wchar, C++, X.org"
depends on BR2_USE_MMU
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \
!BR2_PACKAGE_XORG7
config BR2_PACKAGE_WESTON_HEADLESS
bool "headless (testing) compositor"
config BR2_PACKAGE_WESTON_WAYLAND
bool "Wayland (nested) compositor"
config BR2_PACKAGE_WESTON_X11
bool "X11 (nested) compositor"
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_LIBXCB
select BR2_PACKAGE_XLIB_LIBX11
comment "X11 (nested) compositor needs X.org enabled"
depends on !BR2_PACKAGE_XORG7
config BR2_PACKAGE_WESTON_XWAYLAND
bool "XWayland support"
depends on BR2_PACKAGE_HAS_LIBEGL
depends on BR2_PACKAGE_LIBEPOXY
depends on BR2_PACKAGE_XORG7 # xwayland
depends on BR2_USE_MMU # xwayland
depends on !BR2_STATIC_LIBS # xwayland
depends on BR2_TOOLCHAIN_HAS_THREADS # xwayland
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # xwayland -> xlib_libxshmfence
select BR2_PACKAGE_CAIRO
select BR2_PACKAGE_LIBXCB
select BR2_PACKAGE_XCB_UTIL_CURSOR
select BR2_PACKAGE_XLIB_LIBX11
select BR2_PACKAGE_XLIB_LIBXCURSOR
select BR2_PACKAGE_XWAYLAND
comment "XWayland support needs libepoxy w/ EGL and X.org enabled"
depends on !BR2_PACKAGE_HAS_LIBEGL || !BR2_PACKAGE_XORG7 || \
!BR2_PACKAGE_LIBEPOXY
comment "XWayland support needs a toolchain w/ threads, dynamic library"
depends on BR2_USE_MMU
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
# Weston needs at least one shell; this can be one of the bundled ones,
# below, of from a third-party package, which should then select this.
config BR2_PACKAGE_WESTON_HAS_SHELL
bool
config BR2_PACKAGE_WESTON_SHELL_DESKTOP
bool "desktop shell"
default y
config BR2_PACKAGE_WESTON_SHELL_FULLSCREEN
bool "fullscreen shell"
default y
select BR2_PACKAGE_WESTON_HAS_SHELL
config BR2_PACKAGE_WESTON_SHELL_IVI
bool "ivi shell"
default y
select BR2_PACKAGE_WESTON_HAS_SHELL
config BR2_PACKAGE_WESTON_SHELL_KIOSK
bool "kiosk shell"
default y
select BR2_PACKAGE_WESTON_HAS_SHELL
config BR2_PACKAGE_WESTON_SCREENSHARE
bool "screenshare"
default y
config BR2_PACKAGE_WESTON_SIMPLE_CLIENTS
bool "simple clients"
help
Simple clients includes application such as:
damage, dmabuf-feedback, dmabuf-egl, dmabuf-v4l, egl
In the target filesystem, simple client program binaries are
prefixed with "weston-simple-".
Note: Weston has two sets of clients. See also the weston
"demo clients" option.
config BR2_PACKAGE_WESTON_DEMO_CLIENTS
bool "demo clients"
depends on BR2_USE_MMU # pango
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # pango
depends on BR2_INSTALL_LIBSTDCPP # pango
depends on BR2_TOOLCHAIN_HAS_THREADS # pango
depends on BR2_USE_WCHAR # pango
depends on BR2_PACKAGE_HAS_LIBGLES
depends on BR2_PACKAGE_HAS_LIBEGL
select BR2_PACKAGE_PANGO
help
This enables the installation of Weston's demo clients.
Demo clients includes application such as:
clickdot, confine, content_protection, dnd, editor,
eventdemo, flower, fullscreen, image, multi-resource,
presentation-shm, resizor, scaler, smoke, stacking,
subsurfaces, tablet, transformed...
In the target filesystem, demo client program binaries are
prefixed with "weston-".
Note: Weston has two sets of clients. See also the weston
"simple clients" option.
comment "demo clients needs an OpenGL ES/EGL provider and a toolchain w/ wchar, threads, C++, gcc >= 4.9"
depends on BR2_USE_MMU
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
!BR2_USE_WCHAR || !BR2_PACKAGE_HAS_LIBGLES || \
!BR2_PACKAGE_HAS_LIBEGL || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
endif