diff options
Diffstat (limited to 'poky/meta/classes/populate_sdk_ext.bbclass')
-rw-r--r-- | poky/meta/classes/populate_sdk_ext.bbclass | 55 |
1 files changed, 25 insertions, 30 deletions
diff --git a/poky/meta/classes/populate_sdk_ext.bbclass b/poky/meta/classes/populate_sdk_ext.bbclass index 4aabafa07..35679208b 100644 --- a/poky/meta/classes/populate_sdk_ext.bbclass +++ b/poky/meta/classes/populate_sdk_ext.bbclass @@ -2,19 +2,15 @@ inherit populate_sdk_base -# NOTE: normally you cannot use task overrides for this kind of thing - this -# only works because of get_sdk_ext_rdepends() - -TOOLCHAIN_HOST_TASK_task-populate-sdk-ext = " \ +# Used to override TOOLCHAIN_HOST_TASK in the eSDK case +TOOLCHAIN_HOST_TASK_ESDK = " \ meta-environment-extsdk-${MACHINE} \ " -TOOLCHAIN_TARGET_TASK_task-populate-sdk-ext = "" - -SDK_RELOCATE_AFTER_INSTALL_task-populate-sdk-ext = "0" +SDK_RELOCATE_AFTER_INSTALL:task-populate-sdk-ext = "0" SDK_EXT = "" -SDK_EXT_task-populate-sdk-ext = "-ext" +SDK_EXT:task-populate-sdk-ext = "-ext" # Options are full or minimal SDK_EXT_TYPE ?= "full" @@ -78,10 +74,10 @@ COREBASE_FILES ?= " \ .templateconf \ " -SDK_DIR_task-populate-sdk-ext = "${WORKDIR}/sdk-ext" -B_task-populate-sdk-ext = "${SDK_DIR}" +SDK_DIR:task-populate-sdk-ext = "${WORKDIR}/sdk-ext" +B:task-populate-sdk-ext = "${SDK_DIR}" TOOLCHAINEXT_OUTPUTNAME ?= "${SDK_NAME}-toolchain-ext-${SDK_VERSION}" -TOOLCHAIN_OUTPUTNAME_task-populate-sdk-ext = "${TOOLCHAINEXT_OUTPUTNAME}" +TOOLCHAIN_OUTPUTNAME:task-populate-sdk-ext = "${TOOLCHAINEXT_OUTPUTNAME}" SDK_EXT_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.target.manifest" SDK_EXT_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.host.manifest" @@ -118,9 +114,9 @@ python write_host_sdk_ext_manifest () { f.write("%s %s %s\n" % (info[1], info[2], info[3])) } -SDK_POSTPROCESS_COMMAND_append_task-populate-sdk-ext = "write_target_sdk_ext_manifest; write_host_sdk_ext_manifest; " +SDK_POSTPROCESS_COMMAND:append:task-populate-sdk-ext = "write_target_sdk_ext_manifest; write_host_sdk_ext_manifest; " -SDK_TITLE_task-populate-sdk-ext = "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} Extensible SDK" +SDK_TITLE:task-populate-sdk-ext = "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} Extensible SDK" def clean_esdk_builddir(d, sdkbasepath): """Clean up traces of the fake build for create_filtered_tasklist()""" @@ -147,15 +143,15 @@ def create_filtered_tasklist(d, sdkbasepath, tasklistfile, conf_initpath): try: with open(sdkbasepath + '/conf/local.conf', 'a') as f: # Force the use of sstate from the build system - f.write('\nSSTATE_DIR_forcevariable = "%s"\n' % d.getVar('SSTATE_DIR')) - f.write('SSTATE_MIRRORS_forcevariable = "file://universal/(.*) file://universal-4.9/\\1 file://universal-4.9/(.*) file://universal-4.8/\\1"\n') + f.write('\nSSTATE_DIR:forcevariable = "%s"\n' % d.getVar('SSTATE_DIR')) + f.write('SSTATE_MIRRORS:forcevariable = "file://universal/(.*) file://universal-4.9/\\1 file://universal-4.9/(.*) file://universal-4.8/\\1"\n') # Ensure TMPDIR is the default so that clean_esdk_builddir() can delete it - f.write('TMPDIR_forcevariable = "${TOPDIR}/tmp"\n') - f.write('TCLIBCAPPEND_forcevariable = ""\n') + f.write('TMPDIR:forcevariable = "${TOPDIR}/tmp"\n') + f.write('TCLIBCAPPEND:forcevariable = ""\n') # Drop uninative if the build isn't using it (or else NATIVELSBSTRING will # be different and we won't be able to find our native sstate) if not bb.data.inherits_class('uninative', d): - f.write('INHERIT_remove = "uninative"\n') + f.write('INHERIT:remove = "uninative"\n') # Unfortunately the default SDKPATH (or even a custom value) may contain characters that bitbake # will not allow in its COREBASE path, so we need to rename the directory temporarily @@ -342,7 +338,7 @@ python copy_buildsystem () { f.write('CONF_VERSION = "%s"\n\n' % d.getVar('CONF_VERSION', False)) # Some classes are not suitable for SDK, remove them from INHERIT - f.write('INHERIT_remove = "%s"\n' % d.getVar('SDK_INHERIT_BLACKLIST', False)) + f.write('INHERIT:remove = "%s"\n' % d.getVar('SDK_INHERIT_BLACKLIST', False)) # Bypass the default connectivity check if any f.write('CONNECTIVITY_CHECK_URIS = ""\n\n') @@ -358,7 +354,7 @@ python copy_buildsystem () { f.write('SIGGEN_LOCKEDSIGS_TASKSIG_CHECK = "warn"\n\n') # We want to be able to set this without a full reparse - f.write('BB_HASHCONFIG_WHITELIST_append = " SIGGEN_UNLOCKED_RECIPES"\n\n') + f.write('BB_HASHCONFIG_WHITELIST:append = " SIGGEN_UNLOCKED_RECIPES"\n\n') # Set up whitelist for run on install f.write('BB_SETSCENE_ENFORCE_WHITELIST = "%:* *:do_shared_workdir *:do_rm_work wic-tools:* *:do_addto_recipe_sysroot"\n\n') @@ -688,7 +684,7 @@ sdk_ext_preinst() { EXTRA_TAR_OPTIONS="$EXTRA_TAR_OPTIONS --exclude=sstate-cache" fi } -SDK_PRE_INSTALL_COMMAND_task-populate-sdk-ext = "${sdk_ext_preinst}" +SDK_PRE_INSTALL_COMMAND:task-populate-sdk-ext = "${sdk_ext_preinst}" # FIXME this preparation should be done as part of the SDK construction sdk_ext_postinst() { @@ -739,9 +735,9 @@ sdk_ext_postinst() { echo done } -SDK_POST_INSTALL_COMMAND_task-populate-sdk-ext = "${sdk_ext_postinst}" +SDK_POST_INSTALL_COMMAND:task-populate-sdk-ext = "${sdk_ext_postinst}" -SDK_POSTPROCESS_COMMAND_prepend_task-populate-sdk-ext = "copy_buildsystem; install_tools; " +SDK_POSTPROCESS_COMMAND:prepend:task-populate-sdk-ext = "copy_buildsystem; install_tools; " SDK_INSTALL_TARGETS = "" fakeroot python do_populate_sdk_ext() { @@ -755,6 +751,10 @@ fakeroot python do_populate_sdk_ext() { if d.getVar('BB_CURRENT_MC') != 'default': bb.fatal('The extensible SDK can currently only be built for the default multiconfig. Currently trying to build for %s.' % d.getVar('BB_CURRENT_MC')) + # eSDK dependencies don't use the traditional variables and things don't work properly if they are set + d.setVar("TOOLCHAIN_HOST_TASK", "${TOOLCHAIN_HOST_TASK_ESDK}") + d.setVar("TOOLCHAIN_TARGET_TASK", "") + d.setVar('SDK_INSTALL_TARGETS', get_sdk_install_targets(d)) if d.getVar('SDK_INCLUDE_BUILDTOOLS') == '1': buildtools_fn = get_current_buildtools(d) @@ -800,12 +800,7 @@ do_sdk_depends[dirs] = "${WORKDIR}" do_sdk_depends[depends] = "${@get_ext_sdk_depends(d)} meta-extsdk-toolchain:do_populate_sysroot" do_sdk_depends[recrdeptask] = "${@d.getVarFlag('do_populate_sdk', 'recrdeptask', False)}" do_sdk_depends[recrdeptask] += "do_populate_lic do_package_qa do_populate_sysroot do_deploy ${SDK_RECRDEP_TASKS}" -do_sdk_depends[rdepends] = "${@get_sdk_ext_rdepends(d)}" - -def get_sdk_ext_rdepends(d): - localdata = d.createCopy() - localdata.appendVar('OVERRIDES', ':task-populate-sdk-ext') - return localdata.getVarFlag('do_populate_sdk', 'rdepends') +do_sdk_depends[rdepends] = "${@' '.join([x + ':do_package_write_${IMAGE_PKGTYPE} ' + x + ':do_packagedata' for x in d.getVar('TOOLCHAIN_HOST_TASK_ESDK').split()])}" do_populate_sdk_ext[dirs] = "${@d.getVarFlag('do_populate_sdk', 'dirs', False)}" @@ -833,7 +828,7 @@ do_populate_sdk_ext[nostamp] = "1" SDKEXTDEPLOYDIR = "${WORKDIR}/deploy-${PN}-populate-sdk-ext" SSTATETASKS += "do_populate_sdk_ext" -SSTATE_SKIP_CREATION_task-populate-sdk-ext = '1' +SSTATE_SKIP_CREATION:task-populate-sdk-ext = '1' do_populate_sdk_ext[cleandirs] = "${SDKEXTDEPLOYDIR}" do_populate_sdk_ext[sstate-inputdirs] = "${SDKEXTDEPLOYDIR}" do_populate_sdk_ext[sstate-outputdirs] = "${SDK_DEPLOY}" |