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) (From OE-Core rev: d86d55aea57966e1aaffe913c745a648c21f6c24) Signed-off-by: Eric Bénard <eric@eukrea.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
8620d997d4
commit
f1369ae9fe
|
@ -10,6 +10,9 @@ QT_DIR_NAME = "qtopia"
|
||||||
QT_TOOLS_PREFIX = "${SDKPATHNATIVE}${bindir_nativesdk}"
|
QT_TOOLS_PREFIX = "${SDKPATHNATIVE}${bindir_nativesdk}"
|
||||||
|
|
||||||
toolchain_create_sdk_env_script_append() {
|
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_CC=${TARGET_PREFIX}gcc' >> $script
|
||||||
echo 'export OE_QMAKE_CXX=${TARGET_PREFIX}g++' >> $script
|
echo 'export OE_QMAKE_CXX=${TARGET_PREFIX}g++' >> $script
|
||||||
echo 'export OE_QMAKE_LINK=${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_QDBUSXML2CPP=${QT_TOOLS_PREFIX}/qdbusxml2cpp4' >> $script
|
||||||
echo 'export OE_QMAKE_QT_CONFIG=${SDKTARGETSYSROOT}/${datadir}/${QT_DIR_NAME}/mkspecs/qconfig.pri' >> $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
|
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;)
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,10 +51,6 @@ EXTRA_OECONF = "-prefix ${prefix} \
|
||||||
EXTRA_OEMAKE = " "
|
EXTRA_OEMAKE = " "
|
||||||
|
|
||||||
do_configure() {
|
do_configure() {
|
||||||
if [ ! -e bin/qmake ]; then
|
|
||||||
ln -sf ${STAGING_BINDIR_NATIVE}/qmake2 bin/qmake
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -e mkspecs/${TARGET_OS}-oe-g++ ]; then
|
if [ ! -e mkspecs/${TARGET_OS}-oe-g++ ]; then
|
||||||
ln -sf linux-g++ mkspecs/${TARGET_OS}-oe-g++
|
ln -sf linux-g++ mkspecs/${TARGET_OS}-oe-g++
|
||||||
fi
|
fi
|
||||||
|
@ -62,7 +58,16 @@ do_configure() {
|
||||||
cp ../g++.conf mkspecs/common
|
cp ../g++.conf mkspecs/common
|
||||||
cp ../linux.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 = "\
|
TOBUILD = "\
|
||||||
|
@ -91,7 +96,7 @@ do_compile() {
|
||||||
|
|
||||||
do_install() {
|
do_install() {
|
||||||
install -d ${D}${bindir}
|
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
|
for i in moc uic uic3 rcc lrelease lupdate qdbuscpp2xml qdbusxml2cpp; do
|
||||||
install -m 0755 bin/${i} ${D}${bindir}/${i}4
|
install -m 0755 bin/${i} ${D}${bindir}/${i}4
|
||||||
done
|
done
|
||||||
|
@ -101,9 +106,4 @@ do_install() {
|
||||||
for i in moc uic uic3 rcc lrelease lupdate qdbuscpp2xml qdbusxml2cpp; do \
|
for i in moc uic uic3 rcc lrelease lupdate qdbuscpp2xml qdbusxml2cpp; do \
|
||||||
ln -s ${i}4 ${i}; \
|
ln -s ${i}4 ${i}; \
|
||||||
done)
|
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;)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue