* [PATCH] classes: Add recipe class to overrides
@ 2012-04-26 13:45 Richard Purdie
2012-04-29 0:18 ` Khem Raj
0 siblings, 1 reply; 2+ messages in thread
From: Richard Purdie @ 2012-04-26 13:45 UTC (permalink / raw)
To: openembedded-core
[This is a tweaked version of one of Khem's patches. The idea here would
be to deprecate and ultimately remove the virtclass-native and
virtclass-nativesdk overrides]
We have currently no override to detect a recipe being build cross, crosssdk
or for target at times we can use virtclass-native and virtclass-nativesdk to
override stuff in recipes but we dont have way to modify a variables
based on recipe type always.
This patch adds in such an override and in particular makes a target override
class available.
With this change now we can say:
EXTRA_OECONF_class-target = "...."
EXTRA_OECONF_class-native = "..."
EXTRA_OECONF_class-nativesdk = "..."
EXTRA_OECONF_class-crosssdk= "..."
Based of an original patch by Khem Raj
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index 02e1ff5..a984eae 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -1,4 +1,5 @@
BB_DEFAULT_TASK ?= "build"
+CLASSOVERRIDE ?= "class-target"
inherit patch
inherit staging
diff --git a/meta/classes/cross-canadian.bbclass b/meta/classes/cross-canadian.bbclass
index bbf8f16..ed53118 100644
--- a/meta/classes/cross-canadian.bbclass
+++ b/meta/classes/cross-canadian.bbclass
@@ -8,7 +8,7 @@
# SDK packages are built either explicitly by the user,
# or indirectly via dependency. No need to be in 'world'.
EXCLUDE_FROM_WORLD = "1"
-
+CLASSOVERRIDE = "class-cross-canadian"
STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${SDK_ARCH}${SDK_VENDOR}-${SDK_OS}:${STAGING_DIR_NATIVE}${bindir_native}/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}"
#
diff --git a/meta/classes/cross.bbclass b/meta/classes/cross.bbclass
index 8da3048..e998307 100644
--- a/meta/classes/cross.bbclass
+++ b/meta/classes/cross.bbclass
@@ -4,6 +4,7 @@ inherit relocatable
# no need for them to be a direct target of 'world'
EXCLUDE_FROM_WORLD = "1"
+CLASSOVERRIDE = "class-cross"
PACKAGES = ""
PACKAGES_DYNAMIC = ""
PACKAGES_DYNAMIC_virtclass-native = ""
diff --git a/meta/classes/crosssdk.bbclass b/meta/classes/crosssdk.bbclass
index 67df236..93aba70 100644
--- a/meta/classes/crosssdk.bbclass
+++ b/meta/classes/crosssdk.bbclass
@@ -1,5 +1,6 @@
inherit cross
+CLASSOVERRIDE = "class-crosssdk"
PACKAGE_ARCH = "${SDK_ARCH}"
python () {
# set TUNE_PKGARCH to SDK_ARCH
diff --git a/meta/classes/native.bbclass b/meta/classes/native.bbclass
index ffab971..bca48d4 100644
--- a/meta/classes/native.bbclass
+++ b/meta/classes/native.bbclass
@@ -97,6 +97,7 @@ PKG_CONFIG_SYSROOT_DIR = ""
# we dont want libc-uclibc or libc-glibc to kick in for native recipes
LIBCOVERRIDE = ""
+CLASSOVERRIDE = "class-native"
PATH =. "${COREBASE}/scripts/native-intercept:"
diff --git a/meta/classes/nativesdk.bbclass b/meta/classes/nativesdk.bbclass
index 9e20834..a58fce2 100644
--- a/meta/classes/nativesdk.bbclass
+++ b/meta/classes/nativesdk.bbclass
@@ -8,6 +8,7 @@ STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${SDK_ARCH}${S
# we dont want libc-uclibc or libc-glibc to kick in for nativesdk recipes
LIBCOVERRIDE = ""
+CLASSOVERRIDE = "class-nativesdk"
#
# Update PACKAGE_ARCH and PACKAGE_ARCHS
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 91fe070..9f4e4d4 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -637,7 +637,8 @@ AUTO_LIBNAME_PKGS = "${PACKAGES}"
#
# This works for functions as well, they are really just environment variables.
# Default OVERRIDES to make compilation fail fast in case of build system misconfiguration.
-OVERRIDES = "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:forcevariable"
+OVERRIDES = "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${CLASSOVERRIDE}:forcevariable"
+CLASSOVERRIDE ?= "class-target"
DISTROOVERRIDES ?= "${@d.getVar('DISTRO', True) or ''}"
MACHINEOVERRIDES ?= "${MACHINE}"
MACHINEOVERRIDES[vardepsexclude] = "MACHINE"
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] classes: Add recipe class to overrides
2012-04-26 13:45 [PATCH] classes: Add recipe class to overrides Richard Purdie
@ 2012-04-29 0:18 ` Khem Raj
0 siblings, 0 replies; 2+ messages in thread
From: Khem Raj @ 2012-04-29 0:18 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
On Thu, Apr 26, 2012 at 6:45 AM, Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
> [This is a tweaked version of one of Khem's patches. The idea here would
> be to deprecate and ultimately remove the virtclass-native and
> virtclass-nativesdk overrides]
>
> We have currently no override to detect a recipe being build cross, crosssdk
> or for target at times we can use virtclass-native and virtclass-nativesdk to
> override stuff in recipes but we dont have way to modify a variables
> based on recipe type always.
>
> This patch adds in such an override and in particular makes a target override
> class available.
>
> With this change now we can say:
>
> EXTRA_OECONF_class-target = "...."
> EXTRA_OECONF_class-native = "..."
> EXTRA_OECONF_class-nativesdk = "..."
> EXTRA_OECONF_class-crosssdk= "..."
>
> Based of an original patch by Khem Raj
>
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Looks ok to me.
> ---
> diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
> index 02e1ff5..a984eae 100644
> --- a/meta/classes/base.bbclass
> +++ b/meta/classes/base.bbclass
> @@ -1,4 +1,5 @@
> BB_DEFAULT_TASK ?= "build"
> +CLASSOVERRIDE ?= "class-target"
>
> inherit patch
> inherit staging
> diff --git a/meta/classes/cross-canadian.bbclass b/meta/classes/cross-canadian.bbclass
> index bbf8f16..ed53118 100644
> --- a/meta/classes/cross-canadian.bbclass
> +++ b/meta/classes/cross-canadian.bbclass
> @@ -8,7 +8,7 @@
> # SDK packages are built either explicitly by the user,
> # or indirectly via dependency. No need to be in 'world'.
> EXCLUDE_FROM_WORLD = "1"
> -
> +CLASSOVERRIDE = "class-cross-canadian"
> STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${SDK_ARCH}${SDK_VENDOR}-${SDK_OS}:${STAGING_DIR_NATIVE}${bindir_native}/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}"
>
> #
> diff --git a/meta/classes/cross.bbclass b/meta/classes/cross.bbclass
> index 8da3048..e998307 100644
> --- a/meta/classes/cross.bbclass
> +++ b/meta/classes/cross.bbclass
> @@ -4,6 +4,7 @@ inherit relocatable
> # no need for them to be a direct target of 'world'
> EXCLUDE_FROM_WORLD = "1"
>
> +CLASSOVERRIDE = "class-cross"
> PACKAGES = ""
> PACKAGES_DYNAMIC = ""
> PACKAGES_DYNAMIC_virtclass-native = ""
> diff --git a/meta/classes/crosssdk.bbclass b/meta/classes/crosssdk.bbclass
> index 67df236..93aba70 100644
> --- a/meta/classes/crosssdk.bbclass
> +++ b/meta/classes/crosssdk.bbclass
> @@ -1,5 +1,6 @@
> inherit cross
>
> +CLASSOVERRIDE = "class-crosssdk"
> PACKAGE_ARCH = "${SDK_ARCH}"
> python () {
> # set TUNE_PKGARCH to SDK_ARCH
> diff --git a/meta/classes/native.bbclass b/meta/classes/native.bbclass
> index ffab971..bca48d4 100644
> --- a/meta/classes/native.bbclass
> +++ b/meta/classes/native.bbclass
> @@ -97,6 +97,7 @@ PKG_CONFIG_SYSROOT_DIR = ""
>
> # we dont want libc-uclibc or libc-glibc to kick in for native recipes
> LIBCOVERRIDE = ""
> +CLASSOVERRIDE = "class-native"
>
> PATH =. "${COREBASE}/scripts/native-intercept:"
>
> diff --git a/meta/classes/nativesdk.bbclass b/meta/classes/nativesdk.bbclass
> index 9e20834..a58fce2 100644
> --- a/meta/classes/nativesdk.bbclass
> +++ b/meta/classes/nativesdk.bbclass
> @@ -8,6 +8,7 @@ STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${SDK_ARCH}${S
>
> # we dont want libc-uclibc or libc-glibc to kick in for nativesdk recipes
> LIBCOVERRIDE = ""
> +CLASSOVERRIDE = "class-nativesdk"
>
> #
> # Update PACKAGE_ARCH and PACKAGE_ARCHS
> diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
> index 91fe070..9f4e4d4 100644
> --- a/meta/conf/bitbake.conf
> +++ b/meta/conf/bitbake.conf
> @@ -637,7 +637,8 @@ AUTO_LIBNAME_PKGS = "${PACKAGES}"
> #
> # This works for functions as well, they are really just environment variables.
> # Default OVERRIDES to make compilation fail fast in case of build system misconfiguration.
> -OVERRIDES = "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:forcevariable"
> +OVERRIDES = "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${CLASSOVERRIDE}:forcevariable"
> +CLASSOVERRIDE ?= "class-target"
> DISTROOVERRIDES ?= "${@d.getVar('DISTRO', True) or ''}"
> MACHINEOVERRIDES ?= "${MACHINE}"
> MACHINEOVERRIDES[vardepsexclude] = "MACHINE"
>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-04-29 0:28 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-26 13:45 [PATCH] classes: Add recipe class to overrides Richard Purdie
2012-04-29 0:18 ` Khem Raj
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox