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_TOOLCHAIN_HAS_THREADS # dbus
depends on BR2_USE_MMU # dbus depends on BR2_USE_MMU # dbus
select BR2_PACKAGE_DBUS select BR2_PACKAGE_DBUS
select BR2_PACKAGE_LIBXKBCOMMON
select BR2_PACKAGE_WAYLAND select BR2_PACKAGE_WAYLAND
select BR2_PACKAGE_WAYLAND_PROTOCOLS
help help
Single "window" launcher for the WebKit WPE port, and Single "window" launcher for the WebKit WPE port, and
helper library for implementing WPE launcher. It does 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 string is used, there is no default and the URI to open
must be always specified in the command line. 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 endif

View File

@ -8,15 +8,27 @@ COG_VERSION = 0.6.0
COG_SITE = https://wpewebkit.org/releases COG_SITE = https://wpewebkit.org/releases
COG_SOURCE = cog-$(COG_VERSION).tar.xz COG_SOURCE = cog-$(COG_VERSION).tar.xz
COG_INSTALL_STAGING = YES 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 = MIT
COG_LICENSE_FILES = COPYING COG_LICENSE_FILES = COPYING
COG_CONF_OPTS = \ COG_CONF_OPTS = \
-DCOG_BUILD_PROGRAMS=ON \ -DCOG_BUILD_PROGRAMS=ON \
-DCOG_PLATFORM_FDO=ON \
-DCOG_PLATFORM_DRM=OFF \
-DCOG_WESTON_DIRECT_DISPLAY=OFF \ -DCOG_WESTON_DIRECT_DISPLAY=OFF \
-DINSTALL_MAN_PAGES=OFF \ -DINSTALL_MAN_PAGES=OFF \
-DCOG_HOME_URI='$(call qstrip,$(BR2_PACKAGE_COG_PROGRAMS_HOME_URI))' -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)) $(eval $(cmake-package))