diff options
Diffstat (limited to 'import-layers/yocto-poky/scripts/devtool')
-rwxr-xr-x | import-layers/yocto-poky/scripts/devtool | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/import-layers/yocto-poky/scripts/devtool b/import-layers/yocto-poky/scripts/devtool index 5292f187e5..d681a1929a 100755 --- a/import-layers/yocto-poky/scripts/devtool +++ b/import-layers/yocto-poky/scripts/devtool @@ -113,22 +113,30 @@ def read_workspace(): externalsrc_re = re.compile(r'^EXTERNALSRC(_pn-([^ =]+))? *= *"([^"]*)"$') for fn in glob.glob(os.path.join(config.workspace_path, 'appends', '*.bbappend')): with open(fn, 'r') as f: + pnvalues = {} for line in f: res = externalsrc_re.match(line.rstrip()) if res: - pn = res.group(2) or os.path.splitext(os.path.basename(fn))[0].split('_')[0] + recipepn = os.path.splitext(os.path.basename(fn))[0].split('_')[0] + pn = res.group(2) or recipepn # Find the recipe file within the workspace, if any bbfile = os.path.basename(fn).replace('.bbappend', '.bb').replace('%', '*') recipefile = glob.glob(os.path.join(config.workspace_path, 'recipes', - pn, + recipepn, bbfile)) if recipefile: recipefile = recipefile[0] - workspace[pn] = {'srctree': res.group(3), - 'bbappend': fn, - 'recipefile': recipefile} - logger.debug('Found recipe %s' % workspace[pn]) + pnvalues['srctree'] = res.group(3) + pnvalues['bbappend'] = fn + pnvalues['recipefile'] = recipefile + elif line.startswith('# srctreebase: '): + pnvalues['srctreebase'] = line.split(':', 1)[1].strip() + if pnvalues: + if not pnvalues.get('srctreebase', None): + pnvalues['srctreebase'] = pnvalues['srctree'] + logger.debug('Found recipe %s' % pnvalues) + workspace[pn] = pnvalues def create_workspace(args, config, basepath, workspace): if args.layerpath: @@ -157,6 +165,7 @@ def _create_workspace(workspacedir, config, basepath): f.write('BBFILE_PATTERN_workspacelayer = "^$' + '{LAYERDIR}/"\n') f.write('BBFILE_PATTERN_IGNORE_EMPTY_workspacelayer = "1"\n') f.write('BBFILE_PRIORITY_workspacelayer = "99"\n') + f.write('LAYERSERIES_COMPAT_workspacelayer = "${LAYERSERIES_COMPAT_core}"\n') # Add a README file with open(os.path.join(workspacedir, 'README'), 'w') as f: f.write('This layer was created by the OpenEmbedded devtool utility in order to\n') @@ -182,7 +191,11 @@ def _enable_workspace_layer(workspacedir, config, basepath): if not os.path.exists(bblayers_conf): logger.error('Unable to find bblayers.conf') return - _, added = bb.utils.edit_bblayers_conf(bblayers_conf, workspacedir, config.workspace_path) + if os.path.abspath(workspacedir) != os.path.abspath(config.workspace_path): + removedir = config.workspace_path + else: + removedir = None + _, added = bb.utils.edit_bblayers_conf(bblayers_conf, workspacedir, removedir) if added: logger.info('Enabling workspace layer in bblayers.conf') if config.workspace_path != workspacedir: |