diff --git a/src/plugins/cpptools/builtinindexingsupport.cpp b/src/plugins/cpptools/builtinindexingsupport.cpp index 0e7542a2d77..51c3bde5563 100644 --- a/src/plugins/cpptools/builtinindexingsupport.cpp +++ b/src/plugins/cpptools/builtinindexingsupport.cpp @@ -47,6 +47,8 @@ static void parse(QFutureInterface &future, const QString conf = CppModelManagerInterface::configurationFileName(); bool processingHeaders = false; + CppModelManager *cmm = CppModelManager::instance(); + const QStringList fallbackIncludePaths = cmm->includePaths(); for (int i = 0; i < files.size(); ++i) { if (future.isPaused()) future.waitForResume(); @@ -65,6 +67,11 @@ static void parse(QFutureInterface &future, processingHeaders = true; } + QList parts = cmm->projectPart(fileName); + QStringList includePaths = parts.isEmpty() + ? fallbackIncludePaths + : parts.first()->includePaths; + preproc->setIncludePaths(includePaths); preproc->run(fileName); future.setProgressValue(files.size() - preproc->todo().size()); diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index cec5b6772c0..640e8bfa075 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -802,6 +802,7 @@ ProjectPart::Ptr CppModelManager::projectPartForProjectFile(const QString &proje QList CppModelManager::projectPart(const QString &fileName) const { + QMutexLocker locker(&m_projectMutex); return m_fileToProjectParts.value(fileName); }