qmake: vcproj ignores subdirs that do "no_default_target".

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>
This commit is contained in:
Friedemann Kleint 2011-11-01 10:40:31 +01:00 committed by Qt by Nokia
parent c46747df04
commit 456236b8c8

View File

@ -367,6 +367,12 @@ QStringList VcprojGenerator::collectSubDirs(QMakeProject *proj)
QStringList tmp_proj_subdirs = proj->variables()["SUBDIRS"]; QStringList tmp_proj_subdirs = proj->variables()["SUBDIRS"];
for(int x = 0; x < tmp_proj_subdirs.size(); ++x) { for(int x = 0; x < tmp_proj_subdirs.size(); ++x) {
QString tmpdir = tmp_proj_subdirs.at(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 + ".file")) {
if(!proj->isEmpty(tmpdir + ".subdir")) if(!proj->isEmpty(tmpdir + ".subdir"))
warn_msg(WarnLogic, "Cannot assign both file and subdir for subdir %s", warn_msg(WarnLogic, "Cannot assign both file and subdir for subdir %s",