qmake: vcproj ignores subdirs that do "no_default_target".
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>
Tue, 1 Nov 2011 09:40:31 +0000 (10:40 +0100)
committerQt by Nokia <qt-info@nokia.com>
Fri, 4 Nov 2011 16:46:49 +0000 (17:46 +0100)
It's nicer to do:
    SUBDIRS += foo
    foo.CONFIG = no_default_target no_default_install
then to omit foo from SUBDIRS because a Makefile is still produced
but "make" and "make install" don't descend automatically.

The vcproj generator doesn't know about this. This patch gets it to
check for no_default_target and then it simply ignores the directory.

Change-Id: I127bea79143c101612afb0e9c6603d3b065c7c56
Reviewed-by: Oliver Wolff <oliver.wolff@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
qmake/generators/win32/msvc_vcproj.cpp

index 9427970..0a3f5fb 100644 (file)
@@ -367,6 +367,12 @@ QStringList VcprojGenerator::collectSubDirs(QMakeProject *proj)
     QStringList tmp_proj_subdirs = proj->variables()["SUBDIRS"];
     for(int x = 0; x < tmp_proj_subdirs.size(); ++x) {
         QString tmpdir = tmp_proj_subdirs.at(x);
+        const QString tmpdirConfig = tmpdir + QStringLiteral(".CONFIG");
+        if (!proj->isEmpty(tmpdirConfig)) {
+            const QStringList config = proj->variables().value(tmpdirConfig);
+            if (config.contains(QStringLiteral("no_default_target")))
+                continue; // Ignore this sub-dir
+        }
         if(!proj->isEmpty(tmpdir + ".file")) {
             if(!proj->isEmpty(tmpdir + ".subdir"))
                 warn_msg(WarnLogic, "Cannot assign both file and subdir for subdir %s",