make using testlib automatically "promote" all modules to -private
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>
Mon, 25 Jun 2012 15:18:26 +0000 (17:18 +0200)
committerQt by Nokia <qt-info@nokia.com>
Tue, 26 Jun 2012 09:51:34 +0000 (11:51 +0200)
autotests often need private headers (especially with qpa headers now
being private) and have no compatibility requirements, so it makes sense
to just use the privates of requested modules.

this also suppresses the useless warning about using privates, in case
they are still explicitly specified.

Change-Id: I9e499bedcf6ef25777283ff1432cef7254e9093a
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
mkspecs/features/qt.prf
mkspecs/features/qt_functions.prf
src/testlib/testlib.pro

index c65be4c..8af10b1 100644 (file)
@@ -149,6 +149,7 @@ for(QTLIB, QT) {
         NEWQT += $$eval(QT.$${QTLIBRAW}.private_depends)
     }
     NEWQT += $$QTLIBRAW
+    contains(QT.$${QTLIBRAW}.CONFIG, auto_use_privates): CONFIG += auto_use_privates
 }
 # Topological resolution of modules based on their QT.<module>.depends variable
 QT = $$resolve_depends(NEWQT, "QT.")
@@ -170,7 +171,7 @@ for(QTLIB, QT) {
 }
 !isEmpty(BAD_QT):error("Unknown module(s) in QT: $$BAD_QT")
 
-!isEmpty(using_privates):!no_private_qt_headers_warning:if(!debug_and_release|!build_pass) {
+!isEmpty(using_privates):!auto_use_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.")
     message("Running this project against other versions of the Qt modules may crash at any arbitrary point.")
     message("This is not a bug, but a result of using Qt internals. You have been warned!")
index dcd374b..ce6d9e4 100644 (file)
@@ -51,7 +51,7 @@ defineTest(qtAddModule) {
     }
 
     INCLUDEPATH *= $$MODULE_INCLUDES
-    isEqual(2, UsePrivate) { # Tests function parameter 2 ($$2) being equal to 'UsePrivate'
+    auto_use_privates|isEqual(2, UsePrivate) { # Tests function parameter 2 ($$2) being equal to 'UsePrivate'
         # This adds both
         #     <module privates include path>/
         # and <module privates include path>/<module name>
index f77a611..b901717 100644 (file)
@@ -4,7 +4,7 @@ TARGET = QtTest
 QT = core-private
 CONFIG += exceptions
 
-MODULE_CONFIG = console testlib_defines
+MODULE_CONFIG = console testlib_defines auto_use_privates
 
 INCLUDEPATH += .
 unix:!embedded:QMAKE_PKGCONFIG_DESCRIPTION = Qt \