Message ID | 1315646701-28916-1-git-send-email-eric@eukrea.com |
---|---|
State | New, archived |
Headers | show |
diff --git a/meta/recipes-qt/meta/meta-toolchain-qte.bb b/meta/recipes-qt/meta/meta-toolchain-qte.bb index 72d58db..735ccd1 100644 --- a/meta/recipes-qt/meta/meta-toolchain-qte.bb +++ b/meta/recipes-qt/meta/meta-toolchain-qte.bb @@ -10,6 +10,9 @@ QT_DIR_NAME = "qtopia" QT_TOOLS_PREFIX = "${SDKPATHNATIVE}${bindir_nativesdk}" toolchain_create_sdk_env_script_append() { + echo 'export OE_QMAKE_CFLAGS="$CFLAGS"' >> $script + echo 'export OE_QMAKE_CXXFLAGS="$CXXFLAGS"' >> $script + echo 'export OE_QMAKE_LDFLAGS="$LDFLAGS"' >> $script echo 'export OE_QMAKE_CC=${TARGET_PREFIX}gcc' >> $script echo 'export OE_QMAKE_CXX=${TARGET_PREFIX}g++' >> $script echo 'export OE_QMAKE_LINK=${TARGET_PREFIX}g++' >> $script @@ -24,4 +27,8 @@ toolchain_create_sdk_env_script_append() { echo 'export OE_QMAKE_QDBUSXML2CPP=${QT_TOOLS_PREFIX}/qdbusxml2cpp4' >> $script echo 'export OE_QMAKE_QT_CONFIG=${SDKTARGETSYSROOT}/${datadir}/${QT_DIR_NAME}/mkspecs/qconfig.pri' >> $script echo 'export QMAKESPEC=${SDKTARGETSYSROOT}/${datadir}/${QT_DIR_NAME}/mkspecs/linux-g++' >> $script + + # make a symbolic link to mkspecs for compatibility with Nokia's SDK + # and QTCreator + (cd ${SDK_OUTPUT}/${QT_TOOLS_PREFIX}/..; ln -s ${SDKTARGETSYSROOT}/usr/share/qtopia/mkspecs mkspecs;) } diff --git a/meta/recipes-qt/qt4/qt4-tools-nativesdk.inc b/meta/recipes-qt/qt4/qt4-tools-nativesdk.inc index 068528e..0ae0af6 100644 --- a/meta/recipes-qt/qt4/qt4-tools-nativesdk.inc +++ b/meta/recipes-qt/qt4/qt4-tools-nativesdk.inc @@ -51,10 +51,6 @@ EXTRA_OECONF = "-prefix ${prefix} \ EXTRA_OEMAKE = " " do_configure() { - if [ ! -e bin/qmake ]; then - ln -sf ${STAGING_BINDIR_NATIVE}/qmake2 bin/qmake - fi - if [ ! -e mkspecs/${TARGET_OS}-oe-g++ ]; then ln -sf linux-g++ mkspecs/${TARGET_OS}-oe-g++ fi @@ -62,7 +58,16 @@ do_configure() { cp ../g++.conf mkspecs/common cp ../linux.conf mkspecs/common - (echo o; echo yes) | ./configure ${EXTRA_OECONF} || die "Configuring qt failed. EXTRA_OECONF was ${EXTRA_OECONF}" + # first launch configure to get qmake compiled for the nativesdk + (echo o; echo yes) | CC="${CC}" CXX="${CXX}" ./configure ${EXTRA_OECONF} || true + + # then backup the binary and start again with a qmake which can run on the build host + mv bin/qmake bin/qmake_nativesdk + if [ ! -e bin/qmake ]; then + ln -sf ${STAGING_BINDIR_NATIVE}/qmake2 bin/qmake + fi + + (echo o; echo yes) | CC="${CC}" CXX="${CXX}" ./configure ${EXTRA_OECONF} || die "Configuring qt failed. EXTRA_OECONF was ${EXTRA_OECONF}" } TOBUILD = "\ @@ -91,7 +96,7 @@ do_compile() { do_install() { install -d ${D}${bindir} - install -m 0755 bin/qmake ${D}${bindir}/qmake2 + install -m 0755 bin/qmake_nativesdk ${D}${bindir}/qmake2 for i in moc uic uic3 rcc lrelease lupdate qdbuscpp2xml qdbusxml2cpp; do install -m 0755 bin/${i} ${D}${bindir}/${i}4 done @@ -101,9 +106,4 @@ do_install() { for i in moc uic uic3 rcc lrelease lupdate qdbuscpp2xml qdbusxml2cpp; do \ ln -s ${i}4 ${i}; \ done) - - # make a symbolic link to mkspecs for compatibility with Nokia's SDK - # and QTCreator - (cd ${D}${bindir}/..; ln -s ${TARGET_SYS}/usr/share/qtopia/mkspecs mkspecs;) } -
On Sat, Sep 10, 2011 at 06:25, Eric Bénard <eric@eukrea.com> wrote: > - qt4-tools-nativesdk : actually the qmkae binary which gets installed > comes from the native recipe. This patch fix this problem by laucnhing > configure twice : once to compile qmake using the right toolchain for > nativesdk, and a second time using the native qmake to compile all the > other tools for the nativesdk. Then we install the right qmake. ... > - toolchain_create_sdk_env_script_append : we need to add OE_QMAKE_CFLAGS, > OE_QMAKE_CXXFLAGS and OE_QMAKE_LDFLAGS else the sdk won't find these > variables that are inserted by qmake in the Makefiles. > > - with this patch, oe-core generates a working meta-toolchain-qte which > can compile a small example and is properly recognized by qtcreator (this > brings oe-core's meta-toolchain-qte to oe-dev's functional state). ... In this case we most probably can drop the qt.conf file from the SDK directory, don't we?
Hi Otavio, Le 10/09/2011 11:56, Otavio Salvador a écrit : > On Sat, Sep 10, 2011 at 06:25, Eric Bénard<eric@eukrea.com> wrote: >> - qt4-tools-nativesdk : actually the qmkae binary which gets installed >> comes from the native recipe. This patch fix this problem by laucnhing >> configure twice : once to compile qmake using the right toolchain for >> nativesdk, and a second time using the native qmake to compile all the >> other tools for the nativesdk. Then we install the right qmake. > ... >> - toolchain_create_sdk_env_script_append : we need to add OE_QMAKE_CFLAGS, >> OE_QMAKE_CXXFLAGS and OE_QMAKE_LDFLAGS else the sdk won't find these >> variables that are inserted by qmake in the Makefiles. >> >> - with this patch, oe-core generates a working meta-toolchain-qte which >> can compile a small example and is properly recognized by qtcreator (this >> brings oe-core's meta-toolchain-qte to oe-dev's functional state). > ... > > In this case we most probably can drop the qt.conf file from the SDK > directory, don't we? > no qt.conf gets installed in the sdk. Eric
On Sat, Sep 10, 2011 at 06:59, Eric Bénard <eric@eukrea.com> wrote: > Hi Otavio, > > Le 10/09/2011 11:56, Otavio Salvador a écrit : ... >> In this case we most probably can drop the qt.conf file from the SDK >> directory, don't we? >> > no qt.conf gets installed in the sdk. But as qmake is generated for the sdk it has the proper patches and thus qmake -query will report the right paths AFAIK making qt.conf a duplication of this information. Am I missing something?
On Sat, Sep 10, 2011 at 07:03, Otavio Salvador <otavio@ossystems.com.br> wrote: > But as qmake is generated for the sdk it has the proper patches and > thus qmake -query will report the right paths AFAIK making qt.conf a > duplication of this information. Am I missing something? Just to let the mailing list posted ... As we discussed on #oe I will be working at porting the O.S. Systems qt.conf generation since this is required for CMake to properly work with Qt applications. Will post it next week :-)
Hi Paul, did you have time to test this patch ? http://patches.openembedded.org/patch/11281/ Le 10/09/2011 12:31, Otavio Salvador a écrit : > On Sat, Sep 10, 2011 at 07:03, Otavio Salvador<otavio@ossystems.com.br> wrote: >> But as qmake is generated for the sdk it has the proper patches and >> thus qmake -query will report the right paths AFAIK making qt.conf a >> duplication of this information. Am I missing something? > > Just to let the mailing list posted ... > > As we discussed on #oe I will be working at porting the O.S. Systems > qt.conf generation since this is required for CMake to properly work > with Qt applications. > one more detail : this patch is fine when not using cmake so can be integrated as is as it fix meta-toolchain-qte (the right path are set by both this patch and the environment-setup script on the toolchain. One more question : is there interest in a patch that move "qtopia" paths to more standard "qt4" paths ? Thanks, Eric
On Tue, Sep 13, 2011 at 02:44, Eric Bénard <eric@eukrea.com> wrote: ... >> As we discussed on #oe I will be working at porting the O.S. Systems >> qt.conf generation since this is required for CMake to properly work >> with Qt applications. >> > one more detail : this patch is fine when not using cmake so can be > integrated > as is as it fix meta-toolchain-qte (the right path are set by both this > patch and the environment-setup script on the toolchain. Yes; indeed. This wasn't clear from my message, sorry for that. > One more question : is there interest in a patch that move "qtopia" paths to > more standard "qt4" paths ? I think it would be nice to have. By the way, it seems you have a typo in the commit log; qmake is written wrongly.
Hi Eric, On Tuesday 13 September 2011 06:44:30 Eric Bénard wrote: > Hi Paul, > > did you have time to test this patch ? > http://patches.openembedded.org/patch/11281/ I hadn't because it looked to me as if there was a newer patch coming; I hadn't realised you still wanted it merged. I'll test your v2 patch this evening. Cheers, Paul
- qt4-tools-nativesdk : actually the qmkae binary which gets installed comes from the native recipe. This patch fix this problem by laucnhing configure twice : once to compile qmake using the right toolchain for nativesdk, and a second time using the native qmake to compile all the other tools for the nativesdk. Then we install the right qmake. - mkspec : the link actually created in qt4-tools-nativesdk's do_install point to nowhere so remove it and generate the link in meta-toolchain-qte as it's the only place where we have all the variable to create it. - toolchain_create_sdk_env_script_append : we need to add OE_QMAKE_CFLAGS, OE_QMAKE_CXXFLAGS and OE_QMAKE_LDFLAGS else the sdk won't find these variables that are inserted by qmake in the Makefiles. - with this patch, oe-core generates a working meta-toolchain-qte which can compile a small example and is properly recognized by qtcreator (this brings oe-core's meta-toolchain-qte to oe-dev's functional state). Signed-off-by: Eric Bénard <eric@eukrea.com> --- meta/recipes-qt/meta/meta-toolchain-qte.bb | 7 +++++++ meta/recipes-qt/qt4/qt4-tools-nativesdk.inc | 22 +++++++++++----------- 2 files changed, 18 insertions(+), 11 deletions(-)