[OE-core] [PATCH V3] populate_sdk_base: provide options to set sdk type

Changqing Li changqing.li at windriver.com
Wed Feb 27 06:44:37 UTC 2019


ping

On 2/11/19 3:12 PM, Changqing Li wrote:
> ping
>
> On 1/21/19 1:35 PM, changqing.li at windriver.com wrote:
>> From: Changqing Li <changqing.li at windriver.com>
>>
>> Current sdk type is tar.xz, but for mingw sdk, since we
>> have symlink under the sdk folder, 7zip which used to
>> extract tar.xz cannot handle it, refer 7zip upstream bug:
>> https://sourceforge.net/p/sevenzip/discussion/45797/thread/c71d6b96/
>> so add option for usr can select the sdk type.
>>
>> default type is tar.xz, and also support type zip.
>> user want to use zip type can set SDK_ARCHIVE_TYPE to zip.
>>
>> Signed-off-by: Changqing Li <changqing.li at windriver.com>
>> ---
>>   meta/classes/populate_sdk_base.bbclass | 28 
>> +++++++++++++++++++++-------
>>   1 file changed, 21 insertions(+), 7 deletions(-)
>>
>> diff --git a/meta/classes/populate_sdk_base.bbclass 
>> b/meta/classes/populate_sdk_base.bbclass
>> index 677ba3c..3e7aec8 100644
>> --- a/meta/classes/populate_sdk_base.bbclass
>> +++ b/meta/classes/populate_sdk_base.bbclass
>> @@ -44,8 +44,23 @@ TOOLCHAIN_TARGET_TASK ?= 
>> "${@multilib_pkg_extend(d, 'packagegroup-core-standalon
>>   TOOLCHAIN_TARGET_TASK_ATTEMPTONLY ?= ""
>>   TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
>>   +# Default archived SDK's suffix
>> +SDK_ARCHIVE_TYPE ?= "tar.xz"
>> +
>> +# To support different sdk type according to SDK_ARCHIVE_TYPE, now 
>> support zip and tar.xz
>> +python () {
>> +    if d.getVar('SDK_ARCHIVE_TYPE') == 'zip':
>> +       d.setVar('SDK_ARCHIVE_DEPENDS', 'zip-native')
>> +       # SDK_ARCHIVE_CMD used to generate archived sdk 
>> ${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE} from input dir 
>> ${SDK_OUTPUT}/${SDKPATH} to output dir ${SDKDEPLOYDIR}
>> +       # recommand to cd into input dir first to avoid archive with 
>> buildpath
>> +       d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; zip 
>> -r ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE} .')
>> +    else:
>> +       d.setVar('SDK_ARCHIVE_DEPENDS', 'xz-native')
>> +       d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; tar 
>> ${SDKTAROPTS} -cf - . | xz -T 0 > 
>> ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE}')
>> +}
>> +
>>   SDK_RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
>> -SDK_DEPENDS = "virtual/fakeroot-native xz-native 
>> cross-localedef-native nativesdk-qemuwrapper-cross ${@' 
>> '.join(["%s-qemuwrapper-cross" % m for m in 
>> d.getVar("MULTILIB_VARIANTS").split()])} qemuwrapper-cross"
>> +SDK_DEPENDS = "virtual/fakeroot-native ${SDK_ARCHIVE_DEPENDS} 
>> cross-localedef-native nativesdk-qemuwrapper-cross ${@' 
>> '.join(["%s-qemuwrapper-cross" % m for m in 
>> d.getVar("MULTILIB_VARIANTS").split()])} qemuwrapper-cross"
>>   PATH_prepend = 
>> "${STAGING_DIR_HOST}${SDKPATHNATIVE}${bindir}/crossscripts:${@":".join(all_multilib_tune_values(d, 
>> 'STAGING_BINDIR_CROSS').split())}:"
>>   SDK_DEPENDS_append_libc-glibc = " nativesdk-glibc-locale"
>>   @@ -103,7 +118,7 @@ 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; 
>> archive_sdk; ${SDK_PACKAGING_COMMAND} "
>>     def populate_sdk_common(d):
>>       from oe.sdk import populate_sdk
>> @@ -221,11 +236,10 @@ python check_sdk_sysroots() {
>>     SDKTAROPTS = "--owner=root --group=root"
>>   -fakeroot tar_sdk() {
>> +fakeroot archive_sdk() {
>>       # Package it up
>>       mkdir -p ${SDKDEPLOYDIR}
>> -    cd ${SDK_OUTPUT}/${SDKPATH}
>> -    tar ${SDKTAROPTS} -cf - . | xz -T 0 > 
>> ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.tar.xz
>> +    ${SDK_ARCHIVE_CMD}
>>   }
>>     TOOLCHAIN_SHAR_EXT_TMPL ?= 
>> "${COREBASE}/meta/files/toolchain-shar-extract.sh"
>> @@ -268,10 +282,10 @@ EOF
>>       chmod +x ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.sh
>>         # append the SDK tarball
>> -    cat ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.tar.xz >> 
>> ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.sh
>> +    cat ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE} 
>> >> ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.sh
>>         # delete the old tarball, we don't need it anymore
>> -    rm ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.tar.xz
>> +    rm ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE}
>>   }
>>     populate_sdk_log_check() {
>
-- 
BRs

Sandy(Li Changqing)



More information about the Openembedded-core mailing list