[oe-commits] [openembedded-core] 04/12: classes/populate_sdk_ext: support setting vars from environment at build time
git at git.openembedded.org
git at git.openembedded.org
Thu Mar 31 12:18:55 UTC 2016
rpurdie pushed a commit to branch master-next
in repository openembedded-core.
commit 2bfed75c48a6f6596ded9cb64cb96f00510f914e
Author: Paul Eggleton <paul.eggleton at linux.intel.com>
AuthorDate: Thu Mar 31 21:53:31 2016 +1300
classes/populate_sdk_ext: support setting vars from environment at build time
When running bitbake you may pass in values of variables from the
external environment (making use of BB_ENV_EXTRAWHITE), and you may
choose to do this when building the extensible SDK, for example:
MACHINE=qemuarm bitbake -c populate_sdk_ext core-image-minimal
You would naturally expect those settings to be reflected in the
extensible SDK itself; however they were not, since we were only
considering local.conf and auto.conf. Check the variables mentioned in
BB_ENV_EXTRAWHITE to see if any are different than the values set in
local.conf/auto.conf and add lines setting them in the SDK's local.conf
if so.
Fixes [YOCTO #9339].
Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
meta/classes/populate_sdk_ext.bbclass | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/meta/classes/populate_sdk_ext.bbclass b/meta/classes/populate_sdk_ext.bbclass
index 0ea974d..5e2ebd7 100644
--- a/meta/classes/populate_sdk_ext.bbclass
+++ b/meta/classes/populate_sdk_ext.bbclass
@@ -164,6 +164,9 @@ python copy_buildsystem () {
f.write(' $' + '{SDKBASEMETAPATH}/workspace \\\n')
f.write(' "\n')
+ env_whitelist = (d.getVar('BB_ENV_EXTRAWHITE', True) or '').split()
+ env_whitelist_values = {}
+
# Create local.conf
builddir = d.getVar('TOPDIR', True)
if derivative:
@@ -176,6 +179,8 @@ python copy_buildsystem () {
newlines.append('# Removed original setting of %s\n' % varname)
return None, op, 0, True
else:
+ if varname in env_whitelist:
+ env_whitelist_values[varname] = origvalue
return origvalue, op, 0, True
varlist = ['[^#=+ ]*']
with open(builddir + '/conf/local.conf', 'r') as f:
@@ -241,6 +246,21 @@ python copy_buildsystem () {
if line.strip() and not line.startswith('#'):
f.write(line)
+ # Ensure any variables set from the external environment (by way of
+ # BB_ENV_EXTRAWHITE) are set in the SDK's configuration
+ extralines = []
+ for name, value in env_whitelist_values.iteritems():
+ actualvalue = d.getVar(name, True) or ''
+ if value != actualvalue:
+ extralines.append('%s = "%s"\n' % (name, actualvalue))
+ if extralines:
+ with open(baseoutpath + '/conf/local.conf', 'a') as f:
+ f.write('\n')
+ f.write('# Extra settings from environment:\n')
+ for line in extralines:
+ f.write(line)
+ f.write('\n')
+
# Filter the locked signatures file to just the sstate tasks we are interested in
excluded_targets = d.getVar('SDK_TARGETS', True)
sigfile = d.getVar('WORKDIR', True) + '/locked-sigs.inc'
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Openembedded-commits
mailing list