summaryrefslogtreecommitdiffstats
path: root/meta/recipes-qt
diff options
context:
space:
mode:
authorEric Bénard <eric@eukrea.com>2011-09-10 11:17:57 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-10-04 13:46:25 +0100
commit8575c864d4a15180fb9aeac6a4000c8a3548e05f (patch)
treeb9de8f5b2d3d33783a761b2f5ec87c9bc3fe8d52 /meta/recipes-qt
parent0ee37ea71aacc9bed944d048a408bc6c047a444e (diff)
downloadpoky-8575c864d4a15180fb9aeac6a4000c8a3548e05f.tar.gz
qt4: fix generated sdk
- qt4-tools-nativesdk : actually the qmake binary which gets installed comes from the native recipe. This patch fix this problem by launching 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). (From OE-Core rev: 5f6fb92b939147d2d6aa7790a378d4b7cce3ada5) Signed-off-by: Eric Bénard <eric@eukrea.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-qt')
-rw-r--r--meta/recipes-qt/meta/meta-toolchain-qte.bb7
-rw-r--r--meta/recipes-qt/qt4/qt4-tools-nativesdk.inc22
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 72d58db5e6..735ccd10ab 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"
10QT_TOOLS_PREFIX = "${SDKPATHNATIVE}${bindir_nativesdk}" 10QT_TOOLS_PREFIX = "${SDKPATHNATIVE}${bindir_nativesdk}"
11 11
12toolchain_create_sdk_env_script_append() { 12toolchain_create_sdk_env_script_append() {
13 echo 'export OE_QMAKE_CFLAGS="$CFLAGS"' >> $script
14 echo 'export OE_QMAKE_CXXFLAGS="$CXXFLAGS"' >> $script
15 echo 'export OE_QMAKE_LDFLAGS="$LDFLAGS"' >> $script
13 echo 'export OE_QMAKE_CC=${TARGET_PREFIX}gcc' >> $script 16 echo 'export OE_QMAKE_CC=${TARGET_PREFIX}gcc' >> $script
14 echo 'export OE_QMAKE_CXX=${TARGET_PREFIX}g++' >> $script 17 echo 'export OE_QMAKE_CXX=${TARGET_PREFIX}g++' >> $script
15 echo 'export OE_QMAKE_LINK=${TARGET_PREFIX}g++' >> $script 18 echo 'export OE_QMAKE_LINK=${TARGET_PREFIX}g++' >> $script
@@ -24,4 +27,8 @@ toolchain_create_sdk_env_script_append() {
24 echo 'export OE_QMAKE_QDBUSXML2CPP=${QT_TOOLS_PREFIX}/qdbusxml2cpp4' >> $script 27 echo 'export OE_QMAKE_QDBUSXML2CPP=${QT_TOOLS_PREFIX}/qdbusxml2cpp4' >> $script
25 echo 'export OE_QMAKE_QT_CONFIG=${SDKTARGETSYSROOT}/${datadir}/${QT_DIR_NAME}/mkspecs/qconfig.pri' >> $script 28 echo 'export OE_QMAKE_QT_CONFIG=${SDKTARGETSYSROOT}/${datadir}/${QT_DIR_NAME}/mkspecs/qconfig.pri' >> $script
26 echo 'export QMAKESPEC=${SDKTARGETSYSROOT}/${datadir}/${QT_DIR_NAME}/mkspecs/linux-g++' >> $script 29 echo 'export QMAKESPEC=${SDKTARGETSYSROOT}/${datadir}/${QT_DIR_NAME}/mkspecs/linux-g++' >> $script
30
31 # make a symbolic link to mkspecs for compatibility with Nokia's SDK
32 # and QTCreator
33 (cd ${SDK_OUTPUT}/${QT_TOOLS_PREFIX}/..; ln -s ${SDKTARGETSYSROOT}/usr/share/qtopia/mkspecs mkspecs;)
27} 34}
diff --git a/meta/recipes-qt/qt4/qt4-tools-nativesdk.inc b/meta/recipes-qt/qt4/qt4-tools-nativesdk.inc
index 6c396a5ae4..097fadc980 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} \
51EXTRA_OEMAKE = " " 51EXTRA_OEMAKE = " "
52 52
53do_configure() { 53do_configure() {
54 if [ ! -e bin/qmake ]; then
55 ln -sf ${STAGING_BINDIR_NATIVE}/qmake2 bin/qmake
56 fi
57
58 if [ ! -e mkspecs/${TARGET_OS}-oe-g++ ]; then 54 if [ ! -e mkspecs/${TARGET_OS}-oe-g++ ]; then
59 ln -sf linux-g++ mkspecs/${TARGET_OS}-oe-g++ 55 ln -sf linux-g++ mkspecs/${TARGET_OS}-oe-g++
60 fi 56 fi
@@ -62,7 +58,16 @@ do_configure() {
62 cp ../g++.conf mkspecs/common 58 cp ../g++.conf mkspecs/common
63 cp ../linux.conf mkspecs/common 59 cp ../linux.conf mkspecs/common
64 60
65 (echo o; echo yes) | ./configure ${EXTRA_OECONF} || die "Configuring qt failed. EXTRA_OECONF was ${EXTRA_OECONF}" 61 # first launch configure to get qmake compiled for the nativesdk
62 (echo o; echo yes) | CC="${CC}" CXX="${CXX}" ./configure ${EXTRA_OECONF} || true
63
64 # then backup the binary and start again with a qmake which can run on the build host
65 mv bin/qmake bin/qmake_nativesdk
66 if [ ! -e bin/qmake ]; then
67 ln -sf ${STAGING_BINDIR_NATIVE}/qmake2 bin/qmake
68 fi
69
70 (echo o; echo yes) | CC="${CC}" CXX="${CXX}" ./configure ${EXTRA_OECONF} || die "Configuring qt failed. EXTRA_OECONF was ${EXTRA_OECONF}"
66} 71}
67 72
68TOBUILD = "\ 73TOBUILD = "\
@@ -91,7 +96,7 @@ do_compile() {
91 96
92do_install() { 97do_install() {
93 install -d ${D}${bindir} 98 install -d ${D}${bindir}
94 install -m 0755 bin/qmake ${D}${bindir}/qmake2 99 install -m 0755 bin/qmake_nativesdk ${D}${bindir}/qmake2
95 for i in moc uic uic3 rcc lrelease lupdate qdbuscpp2xml qdbusxml2cpp; do 100 for i in moc uic uic3 rcc lrelease lupdate qdbuscpp2xml qdbusxml2cpp; do
96 install -m 0755 bin/${i} ${D}${bindir}/${i}4 101 install -m 0755 bin/${i} ${D}${bindir}/${i}4
97 done 102 done
@@ -101,9 +106,4 @@ do_install() {
101 for i in moc uic uic3 rcc lrelease lupdate qdbuscpp2xml qdbusxml2cpp; do \ 106 for i in moc uic uic3 rcc lrelease lupdate qdbuscpp2xml qdbusxml2cpp; do \
102 ln -s ${i}4 ${i}; \ 107 ln -s ${i}4 ${i}; \
103 done) 108 done)
104
105 # make a symbolic link to mkspecs for compatibility with Nokia's SDK
106 # and QTCreator
107 (cd ${D}${bindir}/..; ln -s ${TARGET_SYS}/usr/share/qtopia/mkspecs mkspecs;)
108} 109}
109