[oe] [meta-oe][PATCH v3 4/4] glmark2: Remove X11 exclusiveness

Otavio Salvador otavio at ossystems.com.br
Wed Jul 22 19:47:09 UTC 2015


The tool has support for multiple backends: X11, drm and Wayland.

This demanded to a fix, which has been sent upstream, to make the
flavor configuration predictable and the recipe has been rework to
support them all, making the PACKAGECONFIG to respect the
DISTRO_FEATURES available by default.

Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
---
 ...-packages-to-be-used-by-the-enabled-flavo.patch | 43 ++++++++++++++++++++++
 meta-oe/recipes-benchmark/glmark2/glmark2_git.bb   | 34 +++++++++++------
 2 files changed, 66 insertions(+), 11 deletions(-)
 create mode 100644 meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch

diff --git a/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch b/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch
new file mode 100644
index 0000000..ff13329
--- /dev/null
+++ b/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch
@@ -0,0 +1,43 @@
+From: Otavio Salvador <otavio at ossystems.com.br>
+Subject: [PATCH] build: Check packages to be used by the enabled flavors
+Organization: O.S. Systems Software LTDA.
+
+The packages shouldn't be dynamically detected otherwise the build
+predictability is lost. We now have all packages as mandatory but
+dependent of the flavors which use them.
+
+Upstream-Status: Submitted [https://github.com/glmark2/glmark2/pull/8]
+
+Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
+---
+ wscript | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/wscript b/wscript
+index cab62a3..e7eaed0 100644
+--- a/wscript
++++ b/wscript
+@@ -121,13 +121,17 @@ def configure(ctx):
+                 ('mirclient','mirclient', '0.13', list_contains(Options.options.flavors, 'mir')),
+                 ('wayland-client','wayland-client', None, list_contains(Options.options.flavors, 'wayland')),
+                 ('wayland-egl','wayland-egl', None, list_contains(Options.options.flavors, 'wayland'))]
+-    for (pkg, uselib, atleast, mandatory) in opt_pkgs:
++    for (pkg, uselib, atleast, check) in opt_pkgs:
++        # Check packages required by the flavors
++        if not check:
++            continue
++
+         if atleast is None:
+             ctx.check_cfg(package = pkg, uselib_store = uselib,
+-                          args = '--cflags --libs', mandatory = mandatory)
++                          args = '--cflags --libs', mandatory = True)
+         else:
+             ctx.check_cfg(package = pkg, uselib_store = uselib, atleast_version=atleast,
+-                          args = '--cflags --libs', mandatory = mandatory)
++                          args = '--cflags --libs', mandatory = True)
+ 
+ 
+     # Prepend CXX flags so that they can be overriden by the
+-- 
+2.4.6
+
diff --git a/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb b/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
index 57acad5..98ce377 100644
--- a/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
+++ b/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
@@ -8,32 +8,44 @@ LICENSE = "GPLv3+ & SGIv1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
                     file://COPYING.SGI;beginline=5;md5=269cdab4af6748677acce51d9aa13552"
 
-DEPENDS = "libpng12 jpeg virtual/libx11"
-
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
+DEPENDS = "libpng12 jpeg"
 
 PV = "2014.03+${SRCPV}"
 
-SRC_URI = "git://github.com/glmark2/glmark2.git;protocol=https"
+SRC_URI = "git://github.com/glmark2/glmark2.git;protocol=https \
+           file://build-Check-packages-to-be-used-by-the-enabled-flavo.patch"
 SRCREV = "fa71af2dfab711fac87b9504b6fc9862f44bf72a"
 
 S = "${WORKDIR}/git"
 
-inherit waf pkgconfig distro_features_check
+inherit waf pkgconfig
 
-PACKAGECONFIG ?= "gl gles2"
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11-gl x11-gles2', '', d)} \
+                  ${@bb.utils.contains('DISTRO_FEATURES', 'wayland opengl', 'wayland-gl wayland-gles2', '', d)} \
+                  drm-gl drm-gles2"
 
-PACKAGECONFIG[gl] = ",,virtual/libgl"
-PACKAGECONFIG[gles2] = ",,virtual/libgles2"
+PACKAGECONFIG[x11-gl] = ",,virtual/libgl virtual/libx11"
+PACKAGECONFIG[x11-gles2] = ",,virtual/libgles2 virtual/libx11"
+PACKAGECONFIG[drm-gl] = ",,virtual/libgl libdrm"
+PACKAGECONFIG[drm-gles2] = ",,virtual/libgles2 libdrm"
+PACKAGECONFIG[wayland-gl] = ",,virtual/libgl wayland"
+PACKAGECONFIG[wayland-gles2] = ",,virtual/libgles2 wayland"
 
 python __anonymous() {
     packageconfig = (d.getVar("PACKAGECONFIG", True) or "").split()
     flavors = []
-    if "gles2" in packageconfig:
+    if "x11-gles2" in packageconfig:
         flavors.append("x11-glesv2")
-    if "gl" in packageconfig:
+    if "x11-gl" in packageconfig:
         flavors.append("x11-gl")
+    if "wayland-gles2" in packageconfig:
+        flavors.append("wayland-glesv2")
+    if "wayland-gl" in packageconfig:
+        flavors.append("wayland-gl")
+    if "drm-gles2" in packageconfig:
+        flavors.append("drm-glesv2")
+    if "drm-gl" in packageconfig:
+        flavors.append("drm-gl")
     if flavors:
         d.appendVar("EXTRA_OECONF", " --with-flavors=%s" % ",".join(flavors))
 }
-- 
2.4.6




More information about the Openembedded-devel mailing list