[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