summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qmake/generators/win32/msvc_objectmodel.cpp4
-rw-r--r--qmake/generators/win32/msvc_vcproj.cpp7
-rw-r--r--qmake/generators/win32/msvc_vcproj.h1
3 files changed, 11 insertions, 1 deletions
diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp
index 98d60f4f04..70a722ba23 100644
--- a/qmake/generators/win32/msvc_objectmodel.cpp
+++ b/qmake/generators/win32/msvc_objectmodel.cpp
@@ -2264,6 +2264,10 @@ bool VCFilter::addExtraCompiler(const VCFilterFile &info)
bool hasBuiltIn = false;
if (!objectMappedFile.isEmpty()) {
hasBuiltIn = Project->hasBuiltinCompiler(objectMappedFile);
+
+ // Remove the fake file suffix we've added initially to generate correct command lines.
+ inFile.chop(Project->customBuildToolFilterFileSuffix.length());
+
// qDebug("*** Extra compiler file has object mapped file '%s' => '%s'", qPrintable(inFile), qPrintable(objectMappedFile.join(' ')));
}
diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp
index 38e7e96b98..21bdad1bbf 100644
--- a/qmake/generators/win32/msvc_vcproj.cpp
+++ b/qmake/generators/win32/msvc_vcproj.cpp
@@ -198,7 +198,8 @@ const char _slnExtSections[] = "\n\tGlobalSection(ExtensibilityGlobals) = pos
VcprojGenerator::VcprojGenerator()
: Win32MakefileGenerator(),
is64Bit(false),
- projectWriter(0)
+ projectWriter(0),
+ customBuildToolFilterFileSuffix(QStringLiteral(".cbt"))
{
}
@@ -886,8 +887,12 @@ void VcprojGenerator::init()
if (!hasBuiltinCompiler(file)) {
extraCompilerSources[file] += quc.toQString();
} else {
+ // Use a fake file name foo.moc.cbt for the project view.
+ // This prevents VS from complaining about a circular
+ // dependency from foo.moc -> foo.moc.
QString out = Option::fixPathToTargetOS(replaceExtraCompilerVariables(
compiler_out, file, QString(), NoShell), false);
+ out += customBuildToolFilterFileSuffix;
extraCompilerSources[out] += quc.toQString();
extraCompilerOutputs[out] = file;
}
diff --git a/qmake/generators/win32/msvc_vcproj.h b/qmake/generators/win32/msvc_vcproj.h
index 39ba2f0900..e3e67d64b9 100644
--- a/qmake/generators/win32/msvc_vcproj.h
+++ b/qmake/generators/win32/msvc_vcproj.h
@@ -64,6 +64,7 @@ public:
QHash<QString, QStringList> extraCompilerSources;
QHash<QString, QString> extraCompilerOutputs;
+ const QString customBuildToolFilterFileSuffix;
bool usePCH;
VCProjectWriter *projectWriter;