[oe] [meta-qt5][PATCH] qmake5_base.bbclass: Add install support for native builds

Poole Jr, Donald R. donald.poole at swri.org
Fri May 9 16:36:22 UTC 2014


On 5/9/14, 7:50 AM, "Martin Jansa" <martin.jansa at gmail.com> wrote:


>On Tue, May 06, 2014 at 01:34:24PM -0500, Donald R. Poole, Jr. wrote:
>> From: "Donald R. Poole, Jr" <donald (dot) poole (at) swri (dot) org>
>> 
>> Currently, if you are building native applications with Qt5, the
>>current qmake5_base_do_install() method assumes an install into the
>>image folder for the target. Since the native builds handle this a
>>little differently, this patch should account for the native install
>>scenario.
>
>Add SOB line.

I¹m not familiar with the acronym SOB (I¹m still learning about this
process). Is that State of Bitbake? If so, what does State of Bitbake mean?

>
>> ---
>>  classes/qmake5.bbclass      |    8 ++++++--
>>  classes/qmake5_base.bbclass |   46
>>+++++++++++++++++++++----------------------
>>  2 files changed, 29 insertions(+), 25 deletions(-)
>> 
>> diff --git a/classes/qmake5.bbclass b/classes/qmake5.bbclass
>> index e1dda0d..01454f3 100644
>> --- a/classes/qmake5.bbclass
>> +++ b/classes/qmake5.bbclass
>> @@ -19,6 +19,10 @@ do_configure() {
>>      qmake5_base_do_configure
>>  }
>>  
>> -do_install() {
>> -    qmake5_base_do_install
>> +do_install_class-target() {
>> +    qmake5_base_do_install_target
>> +}
>> +
>> +do_install_class-native() {
>> +    qmake5_base_do_install_native
>>  }
>> diff --git a/classes/qmake5_base.bbclass b/classes/qmake5_base.bbclass
>> index df8a59a..5a380d0 100644
>> --- a/classes/qmake5_base.bbclass
>> +++ b/classes/qmake5_base.bbclass
>> @@ -161,32 +161,32 @@ qmake5_base_do_configure () {
>>      ${OE_QMAKE_QMAKE} -makefile -o Makefile ${OE_QMAKE_DEBUG_OUTPUT}
>>-r $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST || die
>>"Error calling $CMD"
>>  }
>>  
>> -qmake5_base_do_install() {
>> +qmake5_base_do_install_target() {
>>      # Fix install paths for all
>> -    if [ "${BUILD_SYS}" = "${HOST_SYS}" ] ; then
>> -        find -name "Makefile*" | xargs sed -i
>>"s,(INSTALL_ROOT),(INSTALL_ROOT)${STAGING_DIR_NATIVE},g"
>> -    else
>> -        find -name "Makefile*" | xargs sed -i
>>"s,(INSTALL_ROOT)${STAGING_DIR_TARGET},(INSTALL_ROOT),g"
>> -    fi
>> +    find -name "Makefile*" | xargs sed -i
>>"s,(INSTALL_ROOT)${STAGING_DIR_TARGET},(INSTALL_ROOT),g"
>
>This looks like incremental patch from your v1, please rebase and send
>v3.

Will do.

>
>>  
>>      oe_runmake install INSTALL_ROOT=${D}
>>  
>> -    # Only do this for target builds. Native install work a little
>>differently
>> -    if [ "${BUILD_SYS}" != "${HOST_SYS}" ] ; then
>> -        # everything except HostData and HostBinaries is prefixed with
>>sysroot value,
>> -        # but we cannot remove sysroot override, because that's useful
>>for pkg-config etc
>> -        # In some cases like QtQmlDevTools in qtdeclarative, the sed
>>above does not work,
>> -        # fix them manually
>> -        if [ -d ${D}${STAGING_DIR_TARGET} ] && [ -n
>>"${STAGING_DIR_TARGET}" ] ; then
>> -            echo "Some files are installed in wrong directory
>>${D}${STAGING_DIR_TARGET}"
>> -            cp -ra ${D}${STAGING_DIR_TARGET}/* ${D}
>> -            rm -rf ${D}${STAGING_DIR_TARGET}
>> -            # remove empty dirs
>> -            TMP=`dirname ${D}/${STAGING_DIR_TARGET}`
>> -            while test ${TMP} != ${D}; do
>> -                rmdir ${TMP}
>> -                TMP=`dirname ${TMP}`;
>> -            done
>> -        fi
>> +    # everything except HostData and HostBinaries is prefixed with
>>sysroot value,
>> +    # but we cannot remove sysroot override, because that's useful for
>>pkg-config etc
>> +    # In some cases like QtQmlDevTools in qtdeclarative, the sed above
>>does not work,
>> +    # fix them manually
>> +    if [ -d ${D}${STAGING_DIR_TARGET} ] ; then
>> +        echo "Some files are installed in wrong directory
>>${D}${STAGING_DIR_TARGET}"
>> +        cp -ra ${D}${STAGING_DIR_TARGET}/* ${D}
>> +        rm -rf ${D}${STAGING_DIR_TARGET}
>> +        # remove empty dirs
>> +        TMP=`dirname ${D}/${STAGING_DIR_TARGET}`
>> +        while test ${TMP} != ${D}; do
>> +            rmdir ${TMP}
>> +            TMP=`dirname ${TMP}`;
>> +        done
>>      fi
>>  }
>> +
>> +qmake5_base_do_install_native() {
>
>Why don't you use
>
>qmake5_base_do_install_class-native() {
>
>here and leave qmake5.bbclass and qmake5_base_do_install as it is?

The reason I didn¹t use qmake5_base_do_install_class-native() is because
the system couldn¹t find the native/target overrides in the
qmake5_base.bbclass. So, I put them in the qmake5.bbclass.

>
>> +    # Fix install paths for all
>> +    find -name "Makefile*" | xargs sed -i
>>"s,(INSTALL_ROOT),(INSTALL_ROOT)${STAGING_DIR_NATIVE},g"
>> +
>> +    oe_runmake install INSTALL_ROOT=${D}
>> +}
>> -- 
>> 1.7.9.5
>> 
>> -- 
>> _______________________________________________
>> Openembedded-devel mailing list
>> Openembedded-devel at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>
>-- 
>Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com

Donald R. Poole, Jr.
Research Engineer
Voice: 210.522.3131 | Fax: 210.522.4931
Tactical Networks & Communications (tacticalnetworks.swri.org)
Southwest Research Institute (SwRI)




More information about the Openembedded-devel mailing list