qtAddModule(): define PRE_TARGETDEPS for static modules
authorJ-P Nurmi <jpnurmi@digia.com>
Tue, 13 Nov 2012 13:17:32 +0000 (14:17 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Wed, 14 Nov 2012 11:29:01 +0000 (12:29 +0100)
This ensures that for example the platform plugins get properly
re-linked when the static platform-support lib changes.

Change-Id: Iad493d4de30d6f6977f80aa56d0b27d05e9e3770
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
mkspecs/features/qt_functions.prf

index a89f083..2998bb9 100644 (file)
@@ -103,14 +103,17 @@ defineTest(qtAddModule) {
        !isEmpty(MODULE_LIBS): LINKAGE = -L$$MODULE_LIBS
        lib =
        if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {
-           win32: lib = -l$${MODULE_NAME}$${QT_LIBINFIX}d
-           mac: lib = -l$${MODULE_NAME}$${QT_LIBINFIX}_debug
+           win32: lib = $${MODULE_NAME}$${QT_LIBINFIX}d
+           mac: lib = $${MODULE_NAME}$${QT_LIBINFIX}_debug
        }
-       isEmpty(lib): lib = -l$${MODULE_NAME}$${QT_LIBINFIX}
-       LINKAGE += $$lib
+       isEmpty(lib): lib = $${MODULE_NAME}$${QT_LIBINFIX}
+       LINKAGE += -l$$lib
 
        contains(QT_CONFIG, rpath): QMAKE_RPATHDIR *= $$eval(QT.$${1}.rpath)
 
+       contains(MODULE_CONFIG, staticlib): \
+           PRE_TARGETDEPS *= $$MODULE_LIBS/$${QMAKE_PREFIX_STATICLIB}$${lib}.$${QMAKE_EXTENSION_STATICLIB}
+
        # Make sure we can link to uninstalled libraries
        unix:!mac:!isEmpty(QT.$${1}.libs) { # Use unmodified path, so /usr/lib also works
             for(rpl, QT.$${1}.rpath_link): \
@@ -136,6 +139,7 @@ defineTest(qtAddModule) {
     export(QMAKE_LFLAGS)
     export(QMAKE_LIBDIR)
     export(QMAKE_RPATHDIR)
+    export(PRE_TARGETDEPS)
     return(true)
 }