summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2020-03-27 15:51:02 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-03-29 20:02:12 +0100
commit5bd29d448a31c132afd6fc0127029e246759b87b (patch)
treeee98641aeb0a8c634ee9e9ca209d1467c55eeb6f
parent085940c12619549be3fbd4ead9379ab0a97ac5bf (diff)
downloadbitbake-5bd29d448a31c132afd6fc0127029e246759b87b.tar.gz
toaster: fix for import build directory with var refs in BBLAYERS
Update importing a build directory to support where bblayers.conf sets BBLAYERS to a value that includes a variable reference e.g.: BBLAYERS = "${TOPDIR}/../meta \ ${TOPDIR}/../meta-selftest" [YOCTO #13707] Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: David Reyna <David.Reyna@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/toaster/toastermain/management/commands/buildimport.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/toaster/toastermain/management/commands/buildimport.py b/lib/toaster/toastermain/management/commands/buildimport.py
index 7718caa57..59da6ff7a 100644
--- a/lib/toaster/toastermain/management/commands/buildimport.py
+++ b/lib/toaster/toastermain/management/commands/buildimport.py
@@ -114,6 +114,15 @@ class Command(BaseCommand):
help='command (configure,reconfigure,import)',
)
+ def get_var(self, varname):
+ value = self.vars.get(varname, '')
+ if value:
+ varrefs = re.findall('\${([^}]*)}', value)
+ for ref in varrefs:
+ if ref in self.vars:
+ value = value.replace('${%s}' % ref, self.vars[ref])
+ return value
+
# Extract the bb variables from a conf file
def scan_conf(self,fn):
vars = self.vars
@@ -241,7 +250,7 @@ class Command(BaseCommand):
# Apply table of all layer versions
def extract_bblayers(self):
# set up the constants
- bblayer_str = self.vars['BBLAYERS']
+ bblayer_str = self.get_var('BBLAYERS')
TOASTER_DIR = os.environ.get('TOASTER_DIR')
INSTALL_CLONE_PREFIX = os.path.dirname(TOASTER_DIR) + "/"
TOASTER_CLONE_PREFIX = TOASTER_DIR + "/_toaster_clones/"
@@ -421,6 +430,7 @@ class Command(BaseCommand):
# Scan the project's conf files (if any)
def scan_conf_variables(self,project_path):
+ self.vars['TOPDIR'] = project_path
# scan the project's settings, add any new layers or variables
if os.path.isfile("%s/conf/local.conf" % project_path):
self.scan_conf("%s/conf/local.conf" % project_path)