From: "Eric Bénard" <eric@eukrea.com>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH v2] qt4: fix generated sdk
Date: Tue, 13 Sep 2011 16:44:59 +0200 [thread overview]
Message-ID: <1315925099-9259-1-git-send-email-eric@eukrea.com> (raw)
In-Reply-To: <CAP9ODKqCg-GOR-HLcuXzrgCVM2tt0anUCTeAEVoqGVFVG4YkEQ@mail.gmail.com>
- qt4-tools-nativesdk : actually the qmake 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>
---
v2: fix typo in comment
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(-)
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;)
}
-
--
1.7.6
next prev parent reply other threads:[~2011-09-13 15:09 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-10 9:25 [PATCH] qt4: fix generated sdk Eric Bénard
2011-09-10 9:56 ` Otavio Salvador
2011-09-10 9:59 ` Eric Bénard
2011-09-10 10:03 ` Otavio Salvador
2011-09-10 10:31 ` Otavio Salvador
2011-09-13 5:44 ` Eric Bénard
2011-09-13 14:12 ` Otavio Salvador
2011-09-13 14:44 ` Eric Bénard [this message]
2011-09-16 16:57 ` [PATCH v2] " Richard Purdie
2011-09-16 17:09 ` Otavio Salvador
2011-09-16 19:52 ` Eric Bénard
2011-09-13 17:25 ` [PATCH] " Paul Eggleton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1315925099-9259-1-git-send-email-eric@eukrea.com \
--to=eric@eukrea.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox