package/cog: support choosing either DRM or FDO platform

A new DRM platform has landed, now you can choose to build with the
DRM or FDO platform, or neither. If neither are selected, Cog will
fallback to a simple WPE backend like WPEBackend-rdk
(https://github.com/WebPlatformForEmbedded/WPEBackend-rdk).

Don't be confused that in both cases the *wpebackend-fdo* package is
required. This is an unfortunate naming issue.

Signed-off-by: Charlie Turner <cturner@igalia.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Charlie Turner 2020-04-06 18:42:05 +01:00 committed by Thomas Petazzoni
parent 8db28f15bb
commit 817d553018
2 changed files with 38 additions and 5 deletions

View File

@ -8,9 +8,7 @@ config BR2_PACKAGE_COG
depends on BR2_TOOLCHAIN_HAS_THREADS # dbus
depends on BR2_USE_MMU # dbus
select BR2_PACKAGE_DBUS
select BR2_PACKAGE_LIBXKBCOMMON
select BR2_PACKAGE_WAYLAND
select BR2_PACKAGE_WAYLAND_PROTOCOLS
help
Single "window" launcher for the WebKit WPE port, and
helper library for implementing WPE launcher. It does
@ -29,4 +27,27 @@ config BR2_PACKAGE_COG_PROGRAMS_HOME_URI
string is used, there is no default and the URI to open
must be always specified in the command line.
config BR2_PACKAGE_COG_PLATFORM_FDO
bool "FreeDesktop.org backend"
default y
select BR2_PACKAGE_LIBXKBCOMMON
select BR2_PACKAGE_WAYLAND_PROTOCOLS
help
Enable the FreeDesktop.org backend. Cog will interface with
a compositor over the Wayland protocol.
config BR2_PACKAGE_COG_PLATFORM_DRM
bool "DRM backend"
depends on BR2_PACKAGE_HAS_UDEV # libinput
depends on BR2_PACKAGE_MESA3D_OPENGL_EGL # gbm
select BR2_PACKAGE_LIBDRM
select BR2_PACKAGE_LIBINPUT
help
Enable the DRM platform backend. Cog will interface directly
with video drivers that support kernel mode-setting (KMS)
via the DRM user-space API.
comment "DRM platform needs mesa3d w/ EGL driver and GBM"
depends on !BR2_PACKAGE_MESA3D_OPENGL_EGL
endif

View File

@ -8,15 +8,27 @@ COG_VERSION = 0.6.0
COG_SITE = https://wpewebkit.org/releases
COG_SOURCE = cog-$(COG_VERSION).tar.xz
COG_INSTALL_STAGING = YES
COG_DEPENDENCIES = dbus wpewebkit wpebackend-fdo libxkbcommon wayland wayland-protocols
COG_DEPENDENCIES = dbus wpewebkit wpebackend-fdo wayland
COG_LICENSE = MIT
COG_LICENSE_FILES = COPYING
COG_CONF_OPTS = \
-DCOG_BUILD_PROGRAMS=ON \
-DCOG_PLATFORM_FDO=ON \
-DCOG_PLATFORM_DRM=OFF \
-DCOG_WESTON_DIRECT_DISPLAY=OFF \
-DINSTALL_MAN_PAGES=OFF \
-DCOG_HOME_URI='$(call qstrip,$(BR2_PACKAGE_COG_PROGRAMS_HOME_URI))'
ifeq ($(BR2_PACKAGE_COG_PLATFORM_FDO),y)
COG_CONF_OPTS += -DCOG_PLATFORM_FDO=ON
COG_DEPENDENCIES += libxkbcommon wayland-protocols
else
COG_CONF_OPTS += -DCOG_PLATFORM_FDO=OFF
endif
ifeq ($(BR2_PACKAGE_COG_PLATFORM_DRM),y)
COG_CONF_OPTS += -DCOG_PLATFORM_DRM=ON
COG_DEPENDENCIES += libdrm libinput
else
COG_CONF_OPTS += -DCOG_PLATFORM_DRM=OFF
endif
$(eval $(cmake-package))