summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppmodelmanager.cpp
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@digia.com>2014-02-05 16:44:35 +0100
committerErik Verbruggen <erik.verbruggen@digia.com>2014-02-27 15:58:17 +0100
commit346e84d219448bb583dbc4ad71a2850db30e1cc8 (patch)
treed0090198a6aa61c33e6c05226916658a04cfc2bc /src/plugins/cpptools/cppmodelmanager.cpp
parent36dccb42faf256756d94b4ad797bfb40bb449f07 (diff)
downloadqt-creator-346e84d219448bb583dbc4ad71a2850db30e1cc8.tar.gz
C++: introduce a project config file field in the projectPart.
This field is used by the generic project manager which passes the ".config" file in it. The advantage is that both the SnapshotUpdater and the clang code model do not need to do anything smart, but can pass it directly to the preprocessor. Task-number: QTCREATORBUG-11390 Change-Id: I44fc7b20afd28fb59608412f2cce86af6f7e7d6b Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Diffstat (limited to 'src/plugins/cpptools/cppmodelmanager.cpp')
-rw-r--r--src/plugins/cpptools/cppmodelmanager.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index 5a0e96a369..1363bef7b6 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -65,7 +65,7 @@ namespace CppTools {
uint qHash(const ProjectPart &p)
{
uint h = qHash(p.toolchainDefines) ^ qHash(p.projectDefines) ^ p.cVersion ^ p.cxxVersion
- ^ p.cxxExtensions ^ p.qtVersion;
+ ^ p.cxxExtensions ^ p.qtVersion ^ qHash(p.projectConfigFile);
foreach (const QString &i, p.includePaths)
h ^= qHash(i);
@@ -83,6 +83,8 @@ bool operator==(const ProjectPart &p1,
return false;
if (p1.projectDefines != p2.projectDefines)
return false;
+ if (p1.projectConfigFile != p2.projectConfigFile)
+ return false;
if (p1.cVersion != p2.cVersion)
return false;
if (p1.cxxVersion != p2.cxxVersion)
@@ -393,6 +395,8 @@ QByteArray CppModelManager::internalDefinedMacros() const
foreach (const ProjectPart::Ptr &part, pinfo.projectParts()) {
addUnique(part->toolchainDefines.split('\n'), &macros, &alreadyIn);
addUnique(part->projectDefines.split('\n'), &macros, &alreadyIn);
+ if (!part->projectConfigFile.isEmpty())
+ macros += readProjectConfigFile(part);
}
}
return macros;
@@ -434,6 +438,7 @@ void CppModelManager::dumpModelManagerConfiguration()
qDebug() << "cxxVersion:" << cxxVersion;
qDebug() << "cxxExtensions:" << cxxExtensions;
qDebug() << "Qt version:" << part->qtVersion;
+ qDebug() << "project config file:" << part->projectConfigFile;
qDebug() << "precompiled header:" << part->precompiledHeaders;
qDebug() << "toolchain defines:" << part->toolchainDefines;
qDebug() << "project defines:" << part->projectDefines;