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_ENABLE_LOCALE # libinput
	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_JPEG
	select BR2_PACKAGE_LIBINPUT
	select BR2_PACKAGE_LIBDRM
	# Runtime dependency
	select BR2_PACKAGE_XKEYBOARD_CONFIG
	# Make sure at least one compositor is selected.
	select BR2_PACKAGE_WESTON_FBDEV if !BR2_PACKAGE_WESTON_HAS_COMPOSITOR
	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

# Helper to make sure at least one compositor is selected.
config BR2_PACKAGE_WESTON_HAS_COMPOSITOR
	bool

config BR2_PACKAGE_WESTON_DRM
	bool "DRM compositor"
	depends on BR2_PACKAGE_MESA3D_OPENGL_EGL
	select BR2_PACKAGE_WESTON_HAS_COMPOSITOR

# Uses libgbm from mesa3d
comment "DRM compositor needs an OpenGL EGL backend provided by mesa3d"
	depends on !BR2_PACKAGE_MESA3D_OPENGL_EGL

config BR2_PACKAGE_WESTON_FBDEV
	bool "fbdev 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
	select BR2_PACKAGE_FREERDP
	select BR2_PACKAGE_WESTON_HAS_COMPOSITOR
	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++"
	depends on BR2_USE_MMU
	depends on BR2_TOOLCHAIN_HAS_SYNC_4
	depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP

config BR2_PACKAGE_WESTON_X11
	bool "X11 compositor"
	depends on BR2_PACKAGE_XORG7
	select BR2_PACKAGE_LIBXCB
	select BR2_PACKAGE_XLIB_LIBX11
	select BR2_PACKAGE_WESTON_HAS_COMPOSITOR

comment "X11 compositor needs X.org enabled"
	depends on !BR2_PACKAGE_XORG7

config BR2_PACKAGE_WESTON_XWAYLAND
	bool "XWayland support"
	depends on BR2_PACKAGE_XORG7
	depends on BR2_PACKAGE_LIBEPOXY
	select BR2_PACKAGE_CAIRO
	select BR2_PACKAGE_LIBXCB
	select BR2_PACKAGE_XLIB_LIBX11
	select BR2_PACKAGE_XLIB_LIBXCURSOR

comment "XWayland support needs libepoxy and X.org enabled"
	depends on !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_LIBEPOXY

config BR2_PACKAGE_WESTON_DEMO_CLIENTS
	bool "demo clients"
	help
	  This enables the installation of Weston's demo clients.

endif
