diff --git a/classes/qmake5_base.bbclass b/classes/qmake5_base.bbclass index 5f83d12d7d..dd58dacf93 100644 --- a/classes/qmake5_base.bbclass +++ b/classes/qmake5_base.bbclass @@ -91,3 +91,26 @@ EOF # HostSpec The location where to install host mkspec addtask generate_qt_config_file after do_patch before do_configure + +qmake5_base_do_configure () { + if [ -z "${QMAKE_PROFILES}" ]; then + PROFILES="`ls ${S}/*.pro`" + else + PROFILES="${QMAKE_PROFILES}" + bbnote "qmake using profiles: '${QMAKE_PROFILES}'" + fi + + if [ ! -z "${EXTRA_QMAKEVARS_POST}" ]; then + AFTER="-after" + QMAKE_VARSUBST_POST="${EXTRA_QMAKEVARS_POST}" + bbnote "qmake postvar substitution: '${EXTRA_QMAKEVARS_POST}'" + fi + + if [ ! -z "${EXTRA_QMAKEVARS_PRE}" ]; then + QMAKE_VARSUBST_PRE="${EXTRA_QMAKEVARS_PRE}" + bbnote "qmake prevar substitution: '${EXTRA_QMAKEVARS_PRE}'" + fi + + CMD="${OE_QMAKE_QMAKE} -makefile -o Makefile ${OE_QMAKE_DEBUG_OUTPUT} -r $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST" + $CMD || die "Error calling $CMD" +} diff --git a/recipes-qt/qt5/qt5.inc b/recipes-qt/qt5/qt5.inc index a4ac90b6ed..4e78577a1f 100644 --- a/recipes-qt/qt5/qt5.inc +++ b/recipes-qt/qt5/qt5.inc @@ -1,6 +1,6 @@ # Copyright (C) 2012 O.S. Systems Software LTDA. -inherit qmake5_base +inherit qmake5 # Qt5 is dependent on icu for localization ICU = "icu " @@ -71,6 +71,8 @@ do_configure() { # Existing separate build directory, exists, remove rm -rf "${B}/*" fi + + qmake5_base_do_configure } do_compile() { diff --git a/recipes-qt/qt5/qt5module.inc b/recipes-qt/qt5/qt5module.inc index 45053f0b52..bbb05a6557 100644 --- a/recipes-qt/qt5/qt5module.inc +++ b/recipes-qt/qt5/qt5module.inc @@ -1,9 +1,3 @@ require qt5.inc DEPENDS += "qtbase" - -inherit qmake5 - -do_configure_append () { - ${OE_QMAKE_QMAKE} ${OE_QMAKE_DEBUG_OUTPUT} -r ${S} -} diff --git a/recipes-qt/qt5/qtbase.inc b/recipes-qt/qt5/qtbase.inc index 0a8b739781..531c88fe83 100644 --- a/recipes-qt/qt5/qtbase.inc +++ b/recipes-qt/qt5/qtbase.inc @@ -49,12 +49,28 @@ EXTRA_ENV = 'QMAKE="bin/qmake ${OE_QMAKE_DEBUG_OUTPUT} -after \ # qtbase is exception, we need to use mkspecs from ${S} QMAKE_MKSPEC_PATH = "${B}" -do_configure_append() { +# another exception is that we need to run bin/qmake, because EffectivePaths are relative to qmake location +OE_QMAKE_QMAKE_ORIG := "${OE_QMAKE_QMAKE}" +OE_QMAKE_QMAKE = "bin/qmake" + +do_configure() { + set_arch + set_endian + + # Avoid problems with the linkers, since we want the linker to be g++ + unset LD + + # Similar logic is in autotools.bbclass + if [ -d ${B} -a "${S}" != "${B}" ] ; then + # Existing separate build directory, exists, remove + rm -rf "${B}/*" + fi + # we need symlink in path relative to source, because # EffectivePaths:Prefix is relative to qmake location if [ ! -e ${B}/bin/qmake ]; then mkdir ${B}/bin - ln -sf ${OE_QMAKE_QMAKE} ${B}/bin/qmake + ln -sf ${OE_QMAKE_QMAKE_ORIG} ${B}/bin/qmake fi ${S}/configure -v \ @@ -83,8 +99,8 @@ do_configure_append() { -platform ${OE_QMAKESPEC} \ -xplatform linux-oe-g++ \ ${QT_CONFIG_FLAGS} - - bin/qmake -r ${OE_QMAKE_DEBUG_OUTPUT} ${S} + + qmake5_base_do_configure } do_compile_append() {