summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/features/qt.prf34
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.")