diff options
author | Martin Jansa <Martin.Jansa@gmail.com> | 2013-04-03 14:13:27 +0200 |
---|---|---|
committer | Martin Jansa <Martin.Jansa@gmail.com> | 2013-04-26 00:04:56 +0200 |
commit | fe65aed3393cf32efe6158c615e72aea407a4bc6 (patch) | |
tree | a51b0d621ad910b499a1ea5d84e349c8cbf3e4b7 /recipes-qt/qt5/qtbase.inc | |
parent | 97738e9d62b613ea46cf8c5edb6accdff0d0b19a (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.inc | 78 |
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() { |