diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/populate_sdk_ext.bbclass | 19 | ||||
-rw-r--r-- | meta/lib/oe/copy_buildsystem.py | 5 | ||||
-rw-r--r-- | meta/recipes-core/meta/meta-extsdk-toolchain.bb | 15 |
3 files changed, 36 insertions, 3 deletions
diff --git a/meta/classes/populate_sdk_ext.bbclass b/meta/classes/populate_sdk_ext.bbclass index 720142f822..211a02286e 100644 --- a/meta/classes/populate_sdk_ext.bbclass +++ b/meta/classes/populate_sdk_ext.bbclass @@ -21,6 +21,7 @@ SDK_EXT_task-populate-sdk-ext = "-ext" # Options are full or minimal SDK_EXT_TYPE ?= "full" SDK_INCLUDE_PKGDATA ?= "0" +SDK_INCLUDE_TOOLCHAIN ?= "0" SDK_RECRDEP_TASKS ?= "" @@ -54,6 +55,8 @@ def get_sdk_install_targets(d, images_only=False): if not images_only: if d.getVar('SDK_INCLUDE_PKGDATA', True) == '1': sdk_install_targets += ' meta-world-pkgdata:do_allpackagedata' + if d.getVar('SDK_INCLUDE_TOOLCHAIN', True) == '1': + sdk_install_targets += ' meta-extsdk-toolchain:do_populate_sysroot' return sdk_install_targets @@ -309,6 +312,19 @@ python copy_buildsystem () { lockedsigs_pruned, lockedsigs_copy) + if d.getVar('SDK_INCLUDE_TOOLCHAIN', True) == '1': + lockedsigs_base = d.getVar('WORKDIR', True) + '/locked-sigs-base2.inc' + lockedsigs_toolchain = d.getVar('STAGING_DIR_HOST', True) + '/locked-sigs/locked-sigs-extsdk-toolchain.inc' + shutil.move(lockedsigs_pruned, lockedsigs_base) + oe.copy_buildsystem.merge_lockedsigs(['do_populate_sysroot'], + lockedsigs_base, + lockedsigs_toolchain, + lockedsigs_pruned) + oe.copy_buildsystem.create_locked_sstate_cache(lockedsigs_toolchain, + d.getVar('SSTATE_DIR', True), + sstate_out, d, + fixedlsbstring) + if d.getVar('SDK_EXT_TYPE', True) == 'minimal': if derivative: # Assume the user is not going to set up an additional sstate @@ -486,7 +502,8 @@ do_populate_sdk_ext[dirs] = "${@d.getVarFlag('do_populate_sdk', 'dirs', False)}" do_populate_sdk_ext[depends] = "${@d.getVarFlag('do_populate_sdk', 'depends', False)} \ buildtools-tarball:do_populate_sdk uninative-tarball:do_populate_sdk \ - ${@'meta-world-pkgdata:do_collect_packagedata' if d.getVar('SDK_INCLUDE_PKGDATA', True) == '1' else ''}" + ${@'meta-world-pkgdata:do_collect_packagedata' if d.getVar('SDK_INCLUDE_PKGDATA', True) == '1' else ''} \ + ${@'meta-extsdk-toolchain:do_locked_sigs' if d.getVar('SDK_INCLUDE_TOOLCHAIN', True) == '1' else ''}" do_populate_sdk_ext[rdepends] += "${@' '.join([x + ':do_build' for x in d.getVar('SDK_TARGETS', True).split()])}" diff --git a/meta/lib/oe/copy_buildsystem.py b/meta/lib/oe/copy_buildsystem.py index eddf5bb2da..b5f546f99f 100644 --- a/meta/lib/oe/copy_buildsystem.py +++ b/meta/lib/oe/copy_buildsystem.py @@ -145,7 +145,7 @@ def prune_lockedsigs(excluded_tasks, excluded_targets, lockedsigs, pruned_output invalue = True f.write(line) -def merge_lockedsigs(copy_tasks, lockedsigs_main, lockedsigs_extra, merged_output, copy_output): +def merge_lockedsigs(copy_tasks, lockedsigs_main, lockedsigs_extra, merged_output, copy_output=None): merged = {} arch_order = [] with open(lockedsigs_main, 'r') as f: @@ -195,7 +195,8 @@ def merge_lockedsigs(copy_tasks, lockedsigs_main, lockedsigs_extra, merged_outpu fulltypes.append(typename) f.write('SIGGEN_LOCKEDSIGS_TYPES = "%s"\n' % ' '.join(fulltypes)) - write_sigs_file(copy_output, list(tocopy.keys()), tocopy) + if copy_output: + write_sigs_file(copy_output, list(tocopy.keys()), tocopy) if merged_output: write_sigs_file(merged_output, arch_order, merged) diff --git a/meta/recipes-core/meta/meta-extsdk-toolchain.bb b/meta/recipes-core/meta/meta-extsdk-toolchain.bb index 9bff22053c..886ff076dc 100644 --- a/meta/recipes-core/meta/meta-extsdk-toolchain.bb +++ b/meta/recipes-core/meta/meta-extsdk-toolchain.bb @@ -11,3 +11,18 @@ do_populate_sysroot[deptask] = "do_populate_sysroot" # NOTE: There is logic specific to this recipe in setscene_depvalid() # within sstate.bbclass, so if you copy or rename this and expect the same # functionality you'll need to modify that as well. + +LOCKED_SIGS_INDIR = "${D}/locked-sigs" + +addtask do_locked_sigs after do_populate_sysroot +SSTATETASKS += "do_locked_sigs" +do_locked_sigs[sstate-inputdirs] = "${LOCKED_SIGS_INDIR}" +do_locked_sigs[sstate-outputdirs] = "${STAGING_DIR_HOST}/locked-sigs" + +python do_locked_sigs() { + import oe.copy_buildsystem + outdir = os.path.join(d.getVar('LOCKED_SIGS_INDIR', True)) + bb.utils.mkdirhier(outdir) + sigfile = os.path.join(outdir, 'locked-sigs-extsdk-toolchain.inc') + oe.copy_buildsystem.generate_locked_sigs(sigfile, d) +} |