diff options
-rw-r--r-- | meta/classes/buildhistory.bbclass | 1 | ||||
-rw-r--r-- | meta/classes/populate_sdk_base.bbclass | 44 | ||||
-rw-r--r-- | meta/classes/populate_sdk_ext.bbclass | 33 |
3 files changed, 58 insertions, 20 deletions
diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass index 779a1a67e0..601b29f5a1 100644 --- a/meta/classes/buildhistory.bbclass +++ b/meta/classes/buildhistory.bbclass @@ -589,7 +589,6 @@ END python buildhistory_get_extra_sdkinfo() { import operator - import math from oe.sdk import get_extra_sdkinfo sstate_dir = d.expand('${SDK_OUTPUT}/${SDKPATH}/sstate-cache') diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass index 563582e0a0..01960ee4cb 100644 --- a/meta/classes/populate_sdk_base.bbclass +++ b/meta/classes/populate_sdk_base.bbclass @@ -59,15 +59,19 @@ SDK_TITLE ?= "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK" SDK_TARGET_MANIFEST = "${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.target.manifest" SDK_HOST_MANIFEST = "${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.host.manifest" +SDK_EXT_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.target.manifest" +SDK_EXT_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.host.manifest" + python write_target_sdk_manifest () { - from oe.sdk import sdk_list_installed_packages - from oe.utils import format_pkg_list - sdkmanifestdir = os.path.dirname(d.getVar("SDK_TARGET_MANIFEST")) - pkgs = sdk_list_installed_packages(d, True) - if not os.path.exists(sdkmanifestdir): - bb.utils.mkdirhier(sdkmanifestdir) - with open(d.getVar('SDK_TARGET_MANIFEST'), 'w') as output: - output.write(format_pkg_list(pkgs, 'ver')) + if d.getVar('BB_CURRENTTASK') == 'populate_sdk': + from oe.sdk import sdk_list_installed_packages + from oe.utils import format_pkg_list + sdkmanifestdir = os.path.dirname(d.getVar("SDK_TARGET_MANIFEST")) + pkgs = sdk_list_installed_packages(d, True) + if not os.path.exists(sdkmanifestdir): + bb.utils.mkdirhier(sdkmanifestdir) + with open(d.getVar('SDK_TARGET_MANIFEST'), 'w') as output: + output.write(format_pkg_list(pkgs, 'ver')) } python write_sdk_test_data() { @@ -78,20 +82,22 @@ python write_sdk_test_data() { } python write_host_sdk_manifest () { - from oe.sdk import sdk_list_installed_packages - from oe.utils import format_pkg_list - sdkmanifestdir = os.path.dirname(d.getVar("SDK_HOST_MANIFEST")) - pkgs = sdk_list_installed_packages(d, False) - if not os.path.exists(sdkmanifestdir): - bb.utils.mkdirhier(sdkmanifestdir) - with open(d.getVar('SDK_HOST_MANIFEST'), 'w') as output: - output.write(format_pkg_list(pkgs, 'ver')) + if d.getVar('BB_CURRENTTASK') == 'populate_sdk': + from oe.sdk import sdk_list_installed_packages + from oe.utils import format_pkg_list + sdkmanifestdir = os.path.dirname(d.getVar("SDK_HOST_MANIFEST")) + pkgs = sdk_list_installed_packages(d, False) + if not os.path.exists(sdkmanifestdir): + bb.utils.mkdirhier(sdkmanifestdir) + with open(d.getVar('SDK_HOST_MANIFEST'), 'w') as output: + output.write(format_pkg_list(pkgs, 'ver')) } -POPULATE_SDK_POST_TARGET_COMMAND_append = " write_target_sdk_manifest ; write_sdk_test_data ; " -POPULATE_SDK_POST_HOST_COMMAND_append = " write_host_sdk_manifest; " +POPULATE_SDK_POST_TARGET_COMMAND_append = " write_sdk_test_data ; " +POPULATE_SDK_POST_TARGET_COMMAND_append_task-populate-sdk = " write_target_sdk_manifest ; " +POPULATE_SDK_POST_HOST_COMMAND_append_task-populate-sdk = " write_host_sdk_manifest; " SDK_PACKAGING_COMMAND = "${@'${SDK_PACKAGING_FUNC};' if '${SDK_PACKAGING_FUNC}' else ''}" -SDK_POSTPROCESS_COMMAND = " create_sdk_files; check_sdk_sysroots; tar_sdk; ${SDK_PACKAGING_COMMAND} " +SDK_POSTPROCESS_COMMAND = " create_sdk_files; check_sdk_sysroots; tar_sdk; write_target_sdk_manifest; write_host_sdk_manifest; ${SDK_PACKAGING_COMMAND} " def populate_sdk_common(d): from oe.sdk import populate_sdk diff --git a/meta/classes/populate_sdk_ext.bbclass b/meta/classes/populate_sdk_ext.bbclass index 69bc1d91dd..4791d74431 100644 --- a/meta/classes/populate_sdk_ext.bbclass +++ b/meta/classes/populate_sdk_ext.bbclass @@ -83,6 +83,39 @@ 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" +python write_target_sdk_ext_manifest () { + from oe.sdk import get_extra_sdkinfo + sstate_dir = d.expand('${SDK_OUTPUT}/${SDKPATH}/sstate-cache') + extra_info = get_extra_sdkinfo(sstate_dir) + + target = d.getVar('TARGET_SYS') + target_multimach = d.getVar('MULTIMACH_TARGET_SYS') + real_target_multimach = d.getVar('REAL_MULTIMACH_TARGET_SYS') + + pkgs = {} + with open(d.getVar('SDK_EXT_TARGET_MANIFEST'), 'w') as f: + for fn in extra_info['filesizes']: + info = fn.split(':') + if info[2] in (target, target_multimach, real_target_multimach) \ + or info[5] == 'allarch': + if not info[1] in pkgs: + f.write("%s %s %s\n" % (info[1], info[2], info[3])) + pkgs[info[1]] = {} +} +python write_host_sdk_ext_manifest () { + from oe.sdk import get_extra_sdkinfo + sstate_dir = d.expand('${SDK_OUTPUT}/${SDKPATH}/sstate-cache') + extra_info = get_extra_sdkinfo(sstate_dir) + host = d.getVar('BUILD_SYS') + with open(d.getVar('SDK_EXT_HOST_MANIFEST'), 'w') as f: + for fn in extra_info['filesizes']: + info = fn.split(':') + if info[2] == host: + 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_TITLE_task-populate-sdk-ext = "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} Extensible SDK" def clean_esdk_builddir(d, sdkbasepath): |