On Thu 2021-09-23 @ 07:24:07 PM, Peter Kjellerstedt wrote: > > -----Original Message----- > > From: openembedded-devel@lists.openembedded.org <openembedded- > > de...@lists.openembedded.org> On Behalf Of Trevor Woerner > > Sent: den 23 september 2021 20:55 > > To: openembedded-devel@lists.openembedded.org > > Subject: [oe] [meta-oe][PATCH v2] vk-gl-cts: allow the user to specify the > > target > > > > When building opengl-es-cts (for example), instead of hard-coding a > > specific target to build (surfaceless), leave the choice empty by default > > which instructs the package's build system to search the sysroot and try > > to > > determine which target to use (i.e. the "Default" target). > > > > Provide overrides (in the form of PACAKGECONFIGs) to allow the user to > > specify a specific target to build (if they don't want the target selected > > automatically). > > > > Signed-off-by: Trevor Woerner <twoer...@gmail.com> > > --- > > changes in v2: > > - add logic to try to guess which dependencies (x11/wayland) will be > > required in the case where the user doesn't set a target explicitly > > - add comments to explain the code, and explain how the newly added > > PACKAGECONFIGs work > > --- > > .../vk-gl-cts/khronos-cts.inc | 33 +++++++++++++++++-- > > 1 file changed, 30 insertions(+), 3 deletions(-) > > > > diff --git a/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc b/meta- > > oe/recipes-graphics/vk-gl-cts/khronos-cts.inc > > index f61921473..903f006db 100644 > > --- a/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc > > +++ b/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc > > @@ -18,9 +18,9 @@ S = "${WORKDIR}/git" > > > > inherit pkgconfig cmake features_check > > > > -REQUIRED_DISTRO_FEATURES += "opengl" > > +ANY_OF_DISTRO_FEATURES += "opengl wayland" > > > > -DEPENDS += "libpng zlib virtual/libgles2 virtual/egl" > > +DEPENDS += "libpng zlib virtual/libgles2" > > > > SRC_URI += > > "file://0001-Workaround-for-GCC-11-uninit-variable-warnings-946.patch;patchdir=external/amber/src > > \ > > > > file://0001-Include-limits-header-for-numeric_limits.patch;patchdir=external/vulkancts > > \ > > @@ -36,7 +36,34 @@ SRC_URI:append:toolchain-clang = "\ > > file://fix-clang-private-operator.patch \ > > " > > > > -EXTRA_OECMAKE:append = " -DDEQP_TARGET=surfaceless" > > +# The best thing for the user to do is to not specify any of the following > > +# PACKAGECONFIGs (i.e. leave it blank) which tells the project to do its > > own > > +# probing and build what it thinks is appropriate. > > +# However, if you want, you can specify one of the following PACKAGECONFIGs > > +# to override this behaviour. > > +PACKAGECONFIG ??= "" > > +PACKAGECONFIG[surfaceless] = "-DDEQP_TARGET=surfaceless,," > > +PACKAGECONFIG[wayland] = "-DDEQP_TARGET=wayland,,wayland" > > +PACKAGECONFIG[x11_egl] = "-DDEQP_TARGET=x11_egl,,virtual/libx11 > > virtual/egl" > > +PACKAGECONFIG[x11_glx] = "-DDEQP_TARGET=x11_glx,,virtual/libx11" > > +PACKAGECONFIG[x11_egl_glx] = "-DDEQP_TARGET=x11_glx,,virtual/libx11 > > virtual/egl" > > + > > +python __anonymous() { > > + packageconfig = (d.getVar("PACKAGECONFIG") or "").split() > > + if len(packageconfig) > 1: > > + bb.fatal("only one PACKAGECONFIG of 'surfaceless wayland x11_egl > > x11_glx x11_egl_glx' can be specified at a time") > > If they are mutually exclusive, it is better to use the sixth argument for
There's a *sixth* argument to PACKAGECONFIG??! What kind of sorcery is this??! > the PACKAGECONFIG varflags, which allows you to specify other incompatible > varflags. I.e, the above would then become: > > PACKAGECONFIG[surfaceless] = "-DDEQP_TARGET=surfaceless,,,,, wayland x11_egl > x11_glx x11_egl_glx" > PACKAGECONFIG[wayland] = "-DDEQP_TARGET=wayland,, wayland,,, surfaceless > x11_egl x11_glx x11_egl_glx" > PACKAGECONFIG[x11_egl] = "-DDEQP_TARGET=x11_egl,, virtual/libx11 > virtual/egl,,, surfaceless wayland x11_glx x11_egl_glx" > PACKAGECONFIG[x11_glx] = "-DDEQP_TARGET=x11_glx,, virtual/libx11,,, > surfaceless wayland x11_egl x11_egl_glx" > PACKAGECONFIG[x11_egl_glx] = "-DDEQP_TARGET=x11_glx,, virtual/libx11 > virtual/egl,,, surfaceless wayland x11_egl x11_glx" > > This allows other PACKAGECONFIGs to be added without breaking the logic. I was going to leave that as a problem for whoever came along after me and wanted to add something else ;-) (just kidding) > > > + > > + # if the user doesn't specify any PACKAGECONFIG then the cts build > > system > > + # is going to probe the sysroot to try to figure out what to build > > + # in this case we try to guess whether the user is building for wayland > > + # or x11 and add the required dependencies automatically > > + distrofeatures = (d.getVar("DISTRO_FEATURES") or "") > > + if len(packageconfig) == 0: > > A better test is: > > if not bb.utils.contains_any("PACKAGECONFIG", [ "surfaceless", "wayland", > "x11_egl", "x11_glx", "x11_egl_glx" ], True, False, d): > > > + if "wayland" in distrofeatures: > > + d.appendVar("DEPENDS", " wayland ") > > + if "x11" in distrofeatures: > > + d.appendVar("DEPENDS", " virtual/libx11 virtual/egl ") > > +} > > > > CTSDIR = "/usr/lib/${BPN}" > > > > -- > > 2.30.0.rc0 >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#93111): https://lists.openembedded.org/g/openembedded-devel/message/93111 Mute This Topic: https://lists.openembedded.org/mt/85821661/21656 Group Owner: openembedded-devel+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-