From 346e84d219448bb583dbc4ad71a2850db30e1cc8 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Wed, 5 Feb 2014 16:44:35 +0100 Subject: 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 --- src/plugins/cpptools/cppsnapshotupdater.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/plugins/cpptools/cppsnapshotupdater.cpp') diff --git a/src/plugins/cpptools/cppsnapshotupdater.cpp b/src/plugins/cpptools/cppsnapshotupdater.cpp index 85a282ae34..4d4de1021c 100644 --- a/src/plugins/cpptools/cppsnapshotupdater.cpp +++ b/src/plugins/cpptools/cppsnapshotupdater.cpp @@ -60,6 +60,7 @@ void SnapshotUpdater::update(CppModelManager::WorkingCopy workingCopy) QStringList includePaths; QStringList frameworkPaths; QStringList precompiledHeaders; + QString projectConfigFile; updateProjectPart(); @@ -73,6 +74,7 @@ void SnapshotUpdater::update(CppModelManager::WorkingCopy workingCopy) configFile += m_projectPart->projectDefines; includePaths = m_projectPart->includePaths; frameworkPaths = m_projectPart->frameworkPaths; + projectConfigFile = m_projectPart->projectConfigFile; if (m_usePrecompiledHeaders) precompiledHeaders = m_projectPart->precompiledHeaders; } @@ -99,6 +101,11 @@ void SnapshotUpdater::update(CppModelManager::WorkingCopy workingCopy) invalidateSnapshot = true; } + if (projectConfigFile != m_projectConfigFile) { + m_projectConfigFile = projectConfigFile; + invalidateSnapshot = true; + } + if (precompiledHeaders != m_precompiledHeaders) { m_precompiledHeaders = precompiledHeaders; invalidateSnapshot = true; @@ -160,6 +167,8 @@ void SnapshotUpdater::update(CppModelManager::WorkingCopy workingCopy) preproc.setIncludePaths(m_includePaths); preproc.setFrameworkPaths(m_frameworkPaths); preproc.run(configurationFileName); + if (!m_projectConfigFile.isEmpty()) + preproc.run(m_projectConfigFile); if (m_usePrecompiledHeaders) { foreach (const QString &precompiledHeader, m_precompiledHeaders) preproc.run(precompiledHeader); -- cgit v1.2.1