},
"rev": "05b25605fb8b2399e4706d7323828676bf0da0b5"
},
- "layers": {
- "meta-alex": {
- "subpath": ""
- }
- },
"path": "meta-alex"
},
"meta-intel": {
},
"rev": "0a96edae609a3f48befac36af82cf1eed6786b4a"
},
- "layers": {
- "meta-intel": {
- "subpath": ""
- }
- },
"path": "meta-intel"
},
"poky": {
},
"rev": "9dda719b2a4727a4d43a6ab8d9e23f8ca68790ec"
},
- "layers": {
- "meta": {
- "subpath": "meta"
- },
- "meta-poky": {
- "subpath": "meta-poky"
- },
- "meta-selftest": {
- "subpath": "meta-selftest"
- },
- "meta-yocto-bsp": {
- "subpath": "meta-yocto-bsp"
- }
- },
"path": "poky"
}
},
"description": "Whether the directory with the layer source also contains this json description. Tools may want to skip the checkout of the source then.",
"type": "boolean"
},
- "layers": {
- "description": "The dict of layers to be used from this upstream source",
- "type": "object",
- "patternProperties": { ".*" : {
- "description": "A layer from the upstream source",
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "subpath": {
- "description": "The subpath (relative to the source root) for this layer. Omit if the source root is the layer path",
- "type": "string"
- }
- }
- }}
- },
"git-remote": {
"description": "A remote git source from which to fetch",
"type": "object",
return
repo_path = self._get_repo_path(l_path)
if repo_path not in repos.keys():
- repos[repo_path] = {'path':os.path.basename(repo_path),'layers':{},'git-remote':{'rev':l_rev, 'branch':l_branch, 'remotes':self._get_remotes(repo_path), 'describe':self._get_describe(repo_path)}}
+ repos[repo_path] = {'path':os.path.basename(repo_path),'git-remote':{'rev':l_rev, 'branch':l_branch, 'remotes':self._get_remotes(repo_path), 'describe':self._get_describe(repo_path)}}
if repo_path == destdir_repo:
repos[repo_path]['contains_this_file'] = True
if not repos[repo_path]['git-remote']['remotes'] and not repos[repo_path]['contains_this_file']:
logger.error("Layer repository in {path} does not have any remotes configured. Please add at least one with 'git remote add'.".format(path=repo_path))
return
- repos[repo_path]['layers'][l_name] = {'subpath':l_path.replace(repo_path,'')[1:]}
top_path = os.path.commonpath([os.path.dirname(r) for r in repos.keys()])
def _do_checkout(args, json):
layers = json['sources']
- buildconfs = []
- oecorepath = ""
for l_name in layers:
l_data = layers[l_name]
layerdir = os.path.abspath(os.path.join(args['destdir'], l_data['path']))
- for ll_name in l_data['layers']:
- if ll_name == 'meta':
- oecorepath = layerdir
- ll_data = l_data['layers'][ll_name]
- if 'buildconfigs' in ll_data:
- for c in ll_data['buildconfigs']:
- buildconfs.append(os.path.join(layerdir, ll_data['subpath'], c))
-
if 'contains_this_file' in l_data.keys():
force_arg = 'force_bootstraplayer_checkout'
if not args[force_arg]: