diff mbox series

[2/3] package/cog: depend on wpebackend-fdo only if needed

Message ID 20240208095531.99049-3-aperez@igalia.com
State New
Headers show
Series Add support for the WPE WebKit RDK backend | expand

Commit Message

Adrian Perez de Castro Feb. 8, 2024, 9:55 a.m. UTC
Make the Cog headless platform plug-in selectable, allowing to configure
the build without any plug-in at all. When all plug-ins are disabled,
Cog does not require wpebackend-fdo at build time, and it is still
able to use its built-in "fallback" support to load other WPE backends
like wpebackend-rdk.

Signed-off-by: Adrian Perez de Castro <aperez@igalia.com>
---
 package/cog/Config.in | 28 ++++++++++++++++++++++++++--
 package/cog/cog.mk    | 13 ++++++++++---
 2 files changed, 36 insertions(+), 5 deletions(-)
diff mbox series

Patch

diff --git a/package/cog/Config.in b/package/cog/Config.in
index d2a910f9b89..d706b045b15 100644
--- a/package/cog/Config.in
+++ b/package/cog/Config.in
@@ -19,6 +19,10 @@  config BR2_PACKAGE_COG
 
 if BR2_PACKAGE_COG
 
+config BR2_PACKAGE_COG_NEEDS_WPEBACKEND_FDO
+	bool
+	default n
+
 config BR2_PACKAGE_COG_PROGRAMS_HOME_URI
 	string "home uri"
 	default "https://wpewebkit.org"
@@ -30,6 +34,8 @@  config BR2_PACKAGE_COG_PROGRAMS_HOME_URI
 config BR2_PACKAGE_COG_PLATFORM_FDO
 	bool "Wayland backend"
 	default y
+	depends on BR2_PACKAGE_WPEBACKEND_FDO
+	select BR2_PACKAGE_COG_NEEDS_WPEBACKEND_FDO
 	select BR2_PACKAGE_LIBXKBCOMMON
 	select BR2_PACKAGE_WAYLAND_PROTOCOLS
 	help
@@ -43,6 +49,8 @@  config BR2_PACKAGE_COG_PLATFORM_DRM
 	depends on BR2_PACKAGE_HAS_LIBGBM
 	depends on BR2_PACKAGE_LIBGBM_HAS_FEATURE_DMA_BUF
 	depends on BR2_PACKAGE_LIBGBM_HAS_FEATURE_FORMAT_MODIFIER_PLANE_COUNT
+	depends on BR2_PACKAGE_WPEBACKEND_FDO
+	select BR2_PACKAGE_COG_NEEDS_WPEBACKEND_FDO
 	select BR2_PACKAGE_LIBDRM
 	select BR2_PACKAGE_LIBINPUT
 	help
@@ -50,16 +58,32 @@  config BR2_PACKAGE_COG_PLATFORM_DRM
 	  with video drivers that support kernel mode-setting (KMS)
 	  via the DRM user-space API.
 
+config BR2_PACKAGE_COG_PLATFORM_HEADLESS
+	bool "Headless backend"
+	depends on BR2_PACKAGE_WPEBACKEND_FDO
+	select BR2_PACKAGE_COG_NEEDS_WPEBACKEND_FDO
+	help
+	  Enable the headless platform backend.
+
 config BR2_PACKAGE_COG_USE_SYSTEM_DBUS
 	bool "expose system D-Bus control interface"
 	help
 	  Expose remote control interface on system bus
 
-comment "DRM platform needs EGL and GBM"
+comment "Headless platform needs wpebackend-fdo"
+	depends on \
+		!BR2_PACKAGE_WPEBACKEND_FDO
+
+comment "DRM platform needs EGL, GBM, wpebackend-fdo"
 	depends on \
 		!BR2_PACKAGE_HAS_LIBEGL || \
 		!BR2_PACKAGE_HAS_LIBGBM || \
 		!BR2_PACKAGE_LIBGBM_HAS_FEATURE_DMA_BUF || \
-		!BR2_PACKAGE_LIBGBM_HAS_FEATURE_FORMAT_MODIFIER_PLANE_COUNT
+		!BR2_PACKAGE_LIBGBM_HAS_FEATURE_FORMAT_MODIFIER_PLANE_COUNT || \
+		!BR2_PACKAGE_WPEBACKEND_FDO
+
+comment "Wayland platform needs wpebackend-fdo"
+	depends on \
+		!BR2_PACKAGE_WPEBACKEND_FDO
 
 endif
diff --git a/package/cog/cog.mk b/package/cog/cog.mk
index e96909f7796..8fc50de56f1 100644
--- a/package/cog/cog.mk
+++ b/package/cog/cog.mk
@@ -8,7 +8,7 @@  COG_VERSION = 0.18.2
 COG_SITE = https://wpewebkit.org/releases
 COG_SOURCE = cog-$(COG_VERSION).tar.xz
 COG_INSTALL_STAGING = YES
-COG_DEPENDENCIES = dbus wpewebkit wpebackend-fdo wayland
+COG_DEPENDENCIES = dbus wpewebkit wayland
 COG_LICENSE = MIT
 COG_LICENSE_FILES = COPYING
 COG_CONF_OPTS = \
@@ -19,8 +19,6 @@  COG_CONF_OPTS = \
 	-Dcog_home_uri='$(call qstrip,$(BR2_PACKAGE_COG_PROGRAMS_HOME_URI))' \
 	-Dplatforms='$(subst $(space),$(comma),$(strip $(COG_PLATFORMS_LIST)))'
 
-COG_PLATFORMS_LIST = headless
-
 ifeq ($(BR2_PACKAGE_WESTON),y)
 COG_CONF_OPTS += -Dwayland_weston_direct_display=true
 COG_DEPENDENCIES += weston
@@ -28,6 +26,11 @@  else
 COG_CONF_OPTS += -Dwayland_weston_direct_display=false
 endif
 
+ifeq ($(BR2_PACKAGE_COG_PLATFORM_HEADLESS),y)
+COG_PLATFORMS_LIST += headless
+COG_DEPENDENCIES += wpebackend-fdo
+endif
+
 ifeq ($(BR2_PACKAGE_COG_PLATFORM_FDO),y)
 COG_PLATFORMS_LIST += wayland
 COG_DEPENDENCIES += libxkbcommon wayland-protocols
@@ -48,4 +51,8 @@  ifeq ($(BR2_PACKAGE_LIBMANETTE),y)
 COG_DEPENDENCIES += libmanette
 endif
 
+ifeq ($(BR2_PACKAGE_COG_NEEDS_WPEBACKEND_FDO),y)
+COG_DEPENDENCIES += wpebackend-fdo
+endif
+
 $(eval $(meson-package))