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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.