diff options
author | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2012-02-24 19:18:02 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-06 17:40:44 +0100 |
commit | 1fc0e27b17e6d88cd38c72ce38277d810009e0fe (patch) | |
tree | bb642b6b9ed1a7e2e8d3970b3e0d77781394fde0 /mkspecs/features/qt.prf | |
parent | 8bf6d6a6caadd4db36bb36d7de7ccb76dd031452 (diff) |
transitively resolve module dependencies
otherwise we need the nasty hack for includes, and CONFIGs and DEFINES
from dependencies are not included at all.
Change-Id: I7eaee761161a6e8fbac8e9237d26559aa11a88a1
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
Diffstat (limited to 'mkspecs/features/qt.prf')
-rw-r--r-- | mkspecs/features/qt.prf | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index 5328e6ccff..21443aa5b5 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -152,21 +152,22 @@ for(QT_CURRENT_VERIFY, $$list($$QT_PLUGIN_VERIFY)) { !isEmpty(QT_BUILD_TREE):QMAKE_LIBDIR = $$QT_BUILD_TREE/lib $$QMAKE_LIBDIR #as above, prepending prevents us from picking up "stale" libs QMAKE_LIBDIR += $$QMAKE_LIBDIR_QT -# Topological ordering of modules based on their QT.<module>.depends variable -QT = $$sort_depends(QT, "QT.") - -QT_DEPENDS= - +# Figure out from which modules we're wanting to use the private headers unset(using_privates) +NEWQT = for(QTLIB, QT) { - # Figure out if we're wanting to use the private headers of a module - contains(QTLIB, .*-private) { - QTLIB ~= s/-private// - use_private = UsePrivate - } else { - use_private = NoPrivate + QTLIBRAW = $$replace(QTLIB, -private$, ) + !isEqual(QTLIBRAW, $$QTLIB) { + want_var = QT.$${QTLIBRAW}.want_private + $$want_var = UsePrivate + using_privates = true } - + NEWQT += $$QTLIBRAW +} +# Topological resolution of modules based on their QT.<module>.depends variable +QT = $$resolve_depends(NEWQT, "QT.") +# Finally actually add the modules +for(QTLIB, QT) { isEmpty(QT.$${QTLIB}.name) { message("Warning: unknown QT module: $$QTLIB") next() @@ -176,14 +177,9 @@ for(QTLIB, QT) { warning($$TARGET cannot have a QT of $$QTLIB) next() } - qtAddModule($$QTLIB, $$use_private) - QT_DEPENDS += $$eval(QT.$${QTLIB}.depends) - isEqual(use_private, UsePrivate):using_privates = true -} -# add include paths for all .depends, since module/application might need f.ex. template specializations etc. -QT_DEPENDS -= $$QT -for(QTLIB, $$list($$lower($$unique(QT_DEPENDS)))):INCLUDEPATH *= $$INCLUDEPATH $$eval(QT.$${QTLIB}.includes) + qtAddModule($$QTLIB, $$eval(QT.$${QTLIB}.want_private)) +} !isEmpty(using_privates):!no_private_qt_headers_warning:if(!debug_and_release|!build_pass) { message("This project is using private headers and will therefore be tied to this specific Qt module build version.") |