aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-qt/qt5/qtbase.inc
diff options
context:
space:
mode:
authorMartin Jansa <Martin.Jansa@gmail.com>2013-04-03 14:13:27 +0200
committerMartin Jansa <Martin.Jansa@gmail.com>2013-04-26 00:04:56 +0200
commitfe65aed3393cf32efe6158c615e72aea407a4bc6 (patch)
treea51b0d621ad910b499a1ea5d84e349c8cbf3e4b7 /recipes-qt/qt5/qtbase.inc
parent97738e9d62b613ea46cf8c5edb6accdff0d0b19a (diff)
qtbase: improve internal build system to support OE way of building qt
* add linux-oe-g++ mkspec directly with patch * add functions to read and eval OE_QMAKE functions from mkspec and also export them with QMakeVar to be available also for config.tests * add external-host-bindir parameter to skip building native tools even when we're in fact cross-compiling (because we have them from qtbase-native build already). * use separated ${B} and ${S} and clean ${B} when reconfiguring stalled qmake cache can be used when configure is reexecuted cleaning ${B} prevents that and provide cleaner separation * OE_QMAKE_AR cqs is added by Makefile, having it here too was causing issues * isEmpty(QT_EXTERNAL_HOST_BINS) doesn't work, so lets use exist() even when it allows to incorrectly set wrong directory and build native tools again (instead of skipping them) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'recipes-qt/qt5/qtbase.inc')
-rw-r--r--recipes-qt/qt5/qtbase.inc78
1 files changed, 38 insertions, 40 deletions
diff --git a/recipes-qt/qt5/qtbase.inc b/recipes-qt/qt5/qtbase.inc
index ad559962..f4462977 100644
--- a/recipes-qt/qt5/qtbase.inc
+++ b/recipes-qt/qt5/qtbase.inc
@@ -1,11 +1,12 @@
require qt5.inc
SRC_URI += " \
- file://0001-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \
- file://0002-qmake-is-already-built-in-qt5-tools-native.patch \
- file://0003-Allow-building-a-separate-qmake-for-the-target.patch \
- file://0004-configure-eval-QMAKE_CXX.patch \
- file://qmake.conf \
+ file://0001-Add-linux-oe-g-platform.patch \
+ file://0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \
+ file://0003-Add-external-hostbindir-option.patch \
+ file://0004-qmake-is-already-built-in-qtbase-native.patch \
+ file://0005-Allow-building-a-separate-qmake-for-the-target.patch \
+ file://0006-qt_functions-temporary-remove-isEmpty-check.patch \
"
DEPENDS += "qtbase-native virtual/libgl freetype jpeg libpng zlib openssl glib-2.0 ${ICU} udev"
@@ -30,44 +31,42 @@ ARM_INSTRUCTION_SET = "arm"
inherit qmake5
-do_generate_qt_config_file() {
- :
- cat > ${WORKDIR}/qt.conf <<EOF
-[Paths]
-Binaries = ${bindir}
-Libraries = ${libdir}
-Prefix = ${prefix}
-Headers = ${includedir}/${QT_DIR_NAME}
-Data = ${datadir}/${QT_DIR_NAME}
-ArchData = ${libdir}/${QT_DIR_NAME}
-Documentation = ${docdir}/${QT_DIR_NAME}
-HostData = ${S}
-HostSpecPath = ${QMAKE_MKSPEC_PATH_NATIVE}
-HostBinaries = ${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}
-EOF
-}
+
+#do_generate_qt_config_file() {
+# cat > ${WORKDIR}/qt.conf <<EOF
+#[Paths]
+#Binaries = ${bindir}
+#Libraries = ${libdir}
+#Prefix = ${prefix}
+#Headers = ${includedir}/${QT_DIR_NAME}
+#Data = ${datadir}/${QT_DIR_NAME}
+#ArchData = ${libdir}/${QT_DIR_NAME}
+#Documentation = ${docdir}/${QT_DIR_NAME}
+#HostSpec = ${QMAKE_MKSPEC_PATH_NATIVE}
+##HostData = ${S}
+#TargetSpec = ${S}
+#ExternalHostBinaries = ${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}
+#EOF
+#}
# qtbase is exception, we need to use mkspecs from ${S}
-QMAKE_MKSPEC_PATH = "${S}/mkspecs"
-OE_XQMAKESPEC="${S}/mkspecs/${TARGET_OS}-oe-g++"
+# QMAKE_MKSPEC_PATH = "${S}/mkspecs"
+QMAKE_MKSPEC_PATH = "${B}"
do_configure_append() {
- if [ ! -e ${OE_XQMAKESPEC} ]; then
- mkdir -p ${OE_XQMAKESPEC}
+ if [ ! -e ${B}/bin/qmake ]; then
+ mkdir ${B}/bin
+ ln -sf ${OE_QMAKE_QMAKE} ${B}/bin/qmake
fi
- # use default qplatformdefs.h from linux-g++
- cp -va ${QMAKE_MKSPEC_PATH}/linux-g++/qplatformdefs.h ${OE_XQMAKESPEC}/
- # use modified qmake.conf which is using OE_QMAKE_* shell variables
- # exported from qmake5_base.bbclass to define toolchain and flags
- cp -va ${WORKDIR}/qmake.conf ${OE_XQMAKESPEC}/
-
- ./configure -v \
- -dont-process \
+
+ ${S}/configure -v \
-opensource -confirm-license \
+ -sysroot ${STAGING_DIR_TARGET} \
+ -no-gcc-sysroot \
-prefix ${prefix} \
- -bindir ${bindir} \
- -libdir ${libdir} \
- -datadir ${S} \
+ -bindir ${bindir}/${QT_DIR_NAME} \
+ -libdir ${libdir}/${QT_DIR_NAME} \
+ -datadir ${datadir}/${QT_DIR_NAME} \
-sysconfdir ${sysconfdir}/${QT_DIR_NAME} \
-docdir ${docdir}/${QT_DIR_NAME} \
-headerdir ${includedir}/${QT_DIR_NAME} \
@@ -75,13 +74,12 @@ do_configure_append() {
-importdir ${libdir}/${QT_DIR_NAME}/imports \
-translationdir ${datadir}/${QT_DIR_NAME}/translations \
-examplesdir ${bindir}/${QT_DIR_NAME}/examples \
- -hostdatadir ${S} \
- -hostbindir ${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME} \
+ -external-hostbindir ${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME} \
-platform ${OE_QMAKESPEC} \
- -xplatform ${OE_XQMAKESPEC} \
+ -xplatform linux-oe-g++ \
${QT_CONFIG_FLAGS}
- ${OE_QMAKE_QMAKE} -r -d
+ ${OE_QMAKE_QMAKE} -r -d ${S}
}
do_compile_append() {