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

Martin Jansa martin.jansa at gmail.com
Fri May 9 22:25:06 UTC 2014


On Fri, May 09, 2014 at 04:36:22PM +0000, Poole Jr, Donald R. wrote:
> 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?

Signed-off-by

> 
> >
> >> ---
> >>  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)
> 
> -- 
> _______________________________________________
> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20140510/201911ff/attachment-0002.sig>


More information about the Openembedded-devel mailing list