waffle: fix REQUIRED_DISTRO_FEATURES and PACKAGECONFIG virtual/libgl dependencies

Waffle's REQUIRED_DISTRO_FEATURES statement looks into DEPENDS and if
virtual/libgl is present, it includes opengl as distro feature. However,
in a multilib environment, recipes provides virtual/${MLPREFIX}libgl,
thus waffle recipe needs to include the prefix. Also PACKAGECONFIG
statements need this change in order to properly include the libgl
dependency.

The way this error showed up was in a multilib environment and a distro
not containing opengl, i.e. nodistro, leading the following error when
building world -S none (because opengl was not included as required distro
feature):

    ERROR: Nothing PROVIDES 'virtual/lib32-libgl' (but virtual:multilib:lib32:/meta/recipes-graphics/waffle/waffle_1.5.2.bb DEPENDS on or otherwise requires it). Close matches:
      virtual/lib32-libsdl
      virtual/lib32-libc
      virtual/lib32-libsdl2
    ERROR: Required build target 'lib32-meta-world-pkgdata' has no buildable providers.
    Missing or unbuildable dependency chain was: ['lib32-meta-world-pkgdata', 'meta-world-pkgdata', 'lib32-waffle', 'virtual/lib32-libgl']

    Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

[YOCTO #10900]

(From OE-Core rev: 2e3344a3b6d5c709ab0d368dd171240ab5cc6e22)

(From OE-Core rev: 8b0c5abe824647c6c9205ecedd29c3ac54c423a5)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Leonardo Sandoval 2017-08-31 07:00:41 -07:00 committed by Richard Purdie
parent 44c5efb453
commit 23ea6ac574
1 changed files with 5 additions and 5 deletions

View File

@ -21,20 +21,20 @@ PACKAGECONFIG ??= "glx"
REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG', 'glx', 'x11', '', d)}"
# virtual/libgl requires opengl in DISTRO_FEATURES.
REQUIRED_DISTRO_FEATURES += "${@bb.utils.contains('DEPENDS', 'virtual/libgl', 'opengl', '', d)}"
REQUIRED_DISTRO_FEATURES += "${@bb.utils.contains('DEPENDS', 'virtual/${MLPREFIX}libgl', 'opengl', '', d)}"
# I say virtual/libgl, actually wants gl.pc
PACKAGECONFIG[glx] = "-Dwaffle_has_glx=1,-Dwaffle_has_glx=0,virtual/libgl libx11"
PACKAGECONFIG[glx] = "-Dwaffle_has_glx=1,-Dwaffle_has_glx=0,virtual/${MLPREFIX}libgl libx11"
# I say virtual/libgl, actually wants wayland-egl.pc, egl.pc, and the wayland
# DISTRO_FEATURE.
PACKAGECONFIG[wayland] = "-Dwaffle_has_wayland=1,-Dwaffle_has_wayland=0,virtual/libgl wayland"
PACKAGECONFIG[wayland] = "-Dwaffle_has_wayland=1,-Dwaffle_has_wayland=0,virtual/${MLPREFIX}libgl wayland"
# I say virtual/libgl, actually wants gbm.pc egl.pc
PACKAGECONFIG[gbm] = "-Dwaffle_has_gbm=1,-Dwaffle_has_gbm=0,virtual/libgl udev"
PACKAGECONFIG[gbm] = "-Dwaffle_has_gbm=1,-Dwaffle_has_gbm=0,virtual/${MLPREFIX}libgl udev"
# I say virtual/libgl, actually wants egl.pc
PACKAGECONFIG[x11-egl] = "-Dwaffle_has_x11_egl=1,-Dwaffle_has_x11_egl=0,virtual/libgl libxcb"
PACKAGECONFIG[x11-egl] = "-Dwaffle_has_x11_egl=1,-Dwaffle_has_x11_egl=0,virtual/${MLPREFIX}libgl libxcb"
FILES_${PN}-dev += "${datadir}/cmake/Modules/FindWaffle.cmake \
${libdir}/cmake/Waffle/"