From 9927a3d72e2272d8e3dc4785ba02e27802ee1c6c Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Wed, 23 Mar 2016 14:52:05 +0200 Subject: bitbake.conf: rename 'gobject-introspection-data' machine feature to 'qemu-usermode' The new value is more general and better reflects what having the feature really means. Introspection data, then, is built only if 'gobject-introspection-data' is in DISTRO_FEATURES and 'qemu-usermode' is in MACHINE_FEATURES. Signed-off-by: Alexander Kanavin Signed-off-by: Richard Purdie --- meta/classes/gobject-introspection-data.bbclass | 9 +++++++++ meta/classes/gobject-introspection.bbclass | 8 ++++---- meta/conf/bitbake.conf | 2 +- meta/conf/machine/include/x86/arch-x86.inc | 2 +- .../gobject-introspection/gobject-introspection_1.46.0.bb | 4 ++-- meta/recipes-sato/webkit/webkitgtk_2.10.7.bb | 2 +- 6 files changed, 18 insertions(+), 9 deletions(-) create mode 100644 meta/classes/gobject-introspection-data.bbclass diff --git a/meta/classes/gobject-introspection-data.bbclass b/meta/classes/gobject-introspection-data.bbclass new file mode 100644 index 0000000000..b1bdd268e6 --- /dev/null +++ b/meta/classes/gobject-introspection-data.bbclass @@ -0,0 +1,9 @@ +# This variable is set to True if gobject-introspection-data is in +# DISTRO_FEATURES and qemu-usermode is in MACHINE_FEATURES, and False otherwise. +# +# It should be used in recipes to determine whether introspection data should be built, +# so that qemu use can be avoided when necessary. +GI_DATA_ENABLED = "${@bb.utils.contains('DISTRO_FEATURES', 'gobject-introspection-data', \ + bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'True', 'False', d), 'False', d)}" + + diff --git a/meta/classes/gobject-introspection.bbclass b/meta/classes/gobject-introspection.bbclass index d8b8b3ed27..2d73e402ce 100644 --- a/meta/classes/gobject-introspection.bbclass +++ b/meta/classes/gobject-introspection.bbclass @@ -1,9 +1,9 @@ # Inherit this class in recipes to enable building their introspection files -# This allows disabling introspection support (and therefore avoiding the use -# of qemu) in recipes if gobject-introspection-data is omitted from -# DISTRO_FEATURES or MACHINE_FEATURES. -EXTRA_OECONF_prepend = "${@bb.utils.contains('COMBINED_FEATURES', 'gobject-introspection-data', '--enable-introspection', '--disable-introspection', d)} " +# This sets up autoconf-based recipes to build introspection data (or not), +# depending on distro and machine features (see gobject-introspection-data class). +inherit gobject-introspection-data +EXTRA_OECONF_prepend = "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '--enable-introspection', '--disable-introspection', d)} " UNKNOWN_CONFIGURE_WHITELIST_append = " --enable-introspection --disable-introspection" diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index e3db5041f3..d4fb5f3571 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -762,7 +762,7 @@ EXTRA_IMAGE_FEATURES ??= "" IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}" DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit bluez5 gobject-introspection-data" -MACHINE_FEATURES_BACKFILL = "rtc gobject-introspection-data" +MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode" COMBINED_FEATURES = "${@oe.utils.set_intersect('DISTRO_FEATURES', 'MACHINE_FEATURES', d)}" COMBINED_FEATURES[vardeps] += "DISTRO_FEATURES MACHINE_FEATURES" diff --git a/meta/conf/machine/include/x86/arch-x86.inc b/meta/conf/machine/include/x86/arch-x86.inc index ba7be8ad65..e51d595f74 100644 --- a/meta/conf/machine/include/x86/arch-x86.inc +++ b/meta/conf/machine/include/x86/arch-x86.inc @@ -25,7 +25,7 @@ TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mx32', ' -mx32', '', d)}" TUNE_LDARGS += "${@bb.utils.contains('TUNE_FEATURES', 'mx32', '-m elf32_x86_64', '', d)}" TUNE_ASARGS += "${@bb.utils.contains('TUNE_FEATURES', 'mx32', '-x32', '', d)}" # user mode qemu doesn't support x32 -MACHINE_FEATURES_BACKFILL_CONSIDERED_append = " ${@bb.utils.contains('TUNE_FEATURES', 'mx32', 'gobject-introspection-data', '', d)}" +MACHINE_FEATURES_BACKFILL_CONSIDERED_append = " ${@bb.utils.contains('TUNE_FEATURES', 'mx32', 'qemu-usermode', '', d)}" # ELF64 ABI TUNEVALID[m64] = "IA32e (x86_64) ELF64 standard ABI" diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.46.0.bb b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.46.0.bb index b8b88234e7..9b16147da3 100644 --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.46.0.bb +++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.46.0.bb @@ -16,7 +16,7 @@ SRC_URI = "${GNOME_MIRROR}/${BPN}/1.46/${BPN}-${PV}.tar.xz \ SRC_URI[md5sum] = "adb40a31c7c80b65b0f4c8fd71b493dc" SRC_URI[sha256sum] = "6658bd3c2b8813eb3e2511ee153238d09ace9d309e4574af27443d87423e4233" -inherit autotools pkgconfig gtk-doc pythonnative qemu +inherit autotools pkgconfig gtk-doc pythonnative qemu gobject-introspection-data BBCLASSEXTEND = "native" # necessary to let the call for python-config from configure.ac succeed @@ -105,7 +105,7 @@ EOF EXTRA_OECONF_class-target += "--enable-host-gi \ --enable-gi-cross-wrapper=${B}/g-ir-scanner-qemuwrapper \ --enable-gi-ldd-wrapper=${B}/g-ir-scanner-lddwrapper \ - ${@bb.utils.contains('COMBINED_FEATURES', 'gobject-introspection-data', '--enable-introspection-data', '--disable-introspection-data', d)} \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '--enable-introspection-data', '--disable-introspection-data', d)} \ " diff --git a/meta/recipes-sato/webkit/webkitgtk_2.10.7.bb b/meta/recipes-sato/webkit/webkitgtk_2.10.7.bb index 849a33a1e7..8eb6b9f3b2 100644 --- a/meta/recipes-sato/webkit/webkitgtk_2.10.7.bb +++ b/meta/recipes-sato/webkit/webkitgtk_2.10.7.bb @@ -54,7 +54,7 @@ PACKAGECONFIG[libhyphen] = "-DUSE_LIBHYPHEN=ON,-DUSE_LIBHYPHEN=OFF,libhyphen" EXTRA_OECMAKE = " \ -DPORT=GTK \ -DCMAKE_BUILD_TYPE=Release \ - ${@bb.utils.contains('COMBINED_FEATURES', 'gobject-introspection-data', '-DENABLE_INTROSPECTION=ON', '-DENABLE_INTROSPECTION=OFF', d)} \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_INTROSPECTION=ON', '-DENABLE_INTROSPECTION=OFF', d)} \ -DENABLE_GTKDOC=OFF \ -DENABLE_MINIBROWSER=ON \ " -- cgit 1.2.3-korg