summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cpppreprocessor.h
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@digia.com>2013-08-19 16:05:29 +0200
committerErik Verbruggen <erik.verbruggen@digia.com>2013-10-01 10:33:51 +0200
commitba2d7a4fa7c29ea2d62da3d6f6835a091f604656 (patch)
tree240f8484a13829478d3b7c586eec0598c45d0872 /src/plugins/cpptools/cpppreprocessor.h
parent447c4ed37f8904ca733d6e6253ad19bb0388f209 (diff)
downloadqt-creator-ba2d7a4fa7c29ea2d62da3d6f6835a091f604656.tar.gz
C++: Only parse with appropriate defines for open editors.
If two files from different (sub-)projects include the same header file, and the defined macros differ for both files, the header file will be parsed with only the appropriate macros for the including file. Task-number: QTCREATORBUG-9802 Task-number: QTCREATORBUG-1249 Change-Id: I560490afa287b3bb1e863bce1bb4f57af36ad56e Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Diffstat (limited to 'src/plugins/cpptools/cpppreprocessor.h')
-rw-r--r--src/plugins/cpptools/cpppreprocessor.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cpppreprocessor.h b/src/plugins/cpptools/cpppreprocessor.h
index e1e3f228d1..d0d84ac8e3 100644
--- a/src/plugins/cpptools/cpppreprocessor.h
+++ b/src/plugins/cpptools/cpppreprocessor.h
@@ -23,6 +23,8 @@ public:
static QString cleanPath(const QString &path);
CppPreprocessor(QPointer<CppModelManager> modelManager, bool dumpFileNameWhileParsing = false);
+ CppPreprocessor(QPointer<CppModelManager> modelManager, const CPlusPlus::Snapshot &snapshot,
+ bool dumpFileNameWhileParsing = false);
virtual ~CppPreprocessor();
void setRevision(unsigned revision);
@@ -35,12 +37,17 @@ public:
void removeFromCache(const QString &fileName);
void resetEnvironment();
+ CPlusPlus::Snapshot snapshot() const
+ { return m_snapshot; }
+
const QSet<QString> &todo() const
{ return m_todo; }
CppModelManager *modelManager() const
{ return m_modelManager.data(); }
+ void setGlobalSnapshot(const CPlusPlus::Snapshot &snapshot) { m_globalSnapshot = snapshot; }
+
protected:
CPlusPlus::Document::Ptr switchDocument(CPlusPlus::Document::Ptr doc);
@@ -71,6 +78,7 @@ private:
void addFrameworkPath(const QString &frameworkPath);
CPlusPlus::Snapshot m_snapshot;
+ CPlusPlus::Snapshot m_globalSnapshot;
QPointer<CppModelManager> m_modelManager;
bool m_dumpFileNameWhileParsing;
CPlusPlus::Environment m_env;