diff options
author | Randy Witt <randy.e.witt@linux.intel.com> | 2015-02-23 17:00:38 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-02-23 18:00:11 +0000 |
commit | f704b0ad26bbca868c4ac40addb92dcd212f586f (patch) | |
tree | b0ba57c5fded8a3cd12ef9946599b1d0cbed4f7e /meta/lib | |
parent | 3dc52164fb560ccbe5c203a4587f6286c8fc0389 (diff) | |
download | openembedded-core-f704b0ad26bbca868c4ac40addb92dcd212f586f.tar.gz openembedded-core-f704b0ad26bbca868c4ac40addb92dcd212f586f.tar.bz2 openembedded-core-f704b0ad26bbca868c4ac40addb92dcd212f586f.zip |
copy_buildsystem.py: Add methods to copy shared state.
Added the helper functions necessary to copy the sstate from the
current build, and generate the file to "lock" it.
Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r-- | meta/lib/oe/copy_buildsystem.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/meta/lib/oe/copy_buildsystem.py b/meta/lib/oe/copy_buildsystem.py index 5a4d8c332e..cf7fada7f0 100644 --- a/meta/lib/oe/copy_buildsystem.py +++ b/meta/lib/oe/copy_buildsystem.py @@ -68,3 +68,35 @@ class BuildSystem(object): _smart_copy(layer, layerdestpath) return layers_copied + +def generate_locked_sigs(sigfile, d): + bb.utils.mkdirhier(os.path.dirname(sigfile)) + depd = d.getVar('BB_TASKDEPDATA', True) + tasks = ['%s.%s' % (v[2], v[1]) for v in depd.itervalues()] + bb.parse.siggen.dump_lockedsigs(sigfile, tasks) + +def prune_lockedsigs(allowed_tasks, excluded_targets, lockedsigs, pruned_output): + with open(lockedsigs, 'r') as infile: + bb.utils.mkdirhier(os.path.dirname(pruned_output)) + with open(pruned_output, 'w') as f: + invalue = False + for line in infile: + if invalue: + if line.endswith('\\\n'): + splitval = line.strip().split(':') + if splitval[1] in allowed_tasks and not splitval[0] in excluded_targets: + f.write(line) + else: + f.write(line) + invalue = False + elif line.startswith('SIGGEN_LOCKEDSIGS'): + invalue = True + f.write(line) + +def create_locked_sstate_cache(lockedsigs, input_sstate_cache, output_sstate_cache, d, fixedlsbstring=""): + bb.note('Generating sstate-cache...') + + bb.process.run("gen-lockedsig-cache %s %s %s" % (lockedsigs, input_sstate_cache, output_sstate_cache)) + if fixedlsbstring: + os.rename(output_sstate_cache + '/' + d.getVar('NATIVELSBSTRING', True), + output_sstate_cache + '/' + fixedlsbstring) |