Changeset View
Changeset View
Standalone View
Standalone View
plugins/clang/clangparsejob.cpp
Show First 20 Lines • Show All 166 Lines • ▼ Show 20 Line(s) | |||||
167 | { | 167 | { | ||
168 | const auto tuUrl = clang()->index()->translationUnitForUrl(url); | 168 | const auto tuUrl = clang()->index()->translationUnitForUrl(url); | ||
169 | bool hasBuildSystemInfo; | 169 | bool hasBuildSystemInfo; | ||
170 | if (auto file = findProjectFileItem(tuUrl, &hasBuildSystemInfo)) { | 170 | if (auto file = findProjectFileItem(tuUrl, &hasBuildSystemInfo)) { | ||
171 | m_environment.addIncludes(IDefinesAndIncludesManager::manager()->includes(file)); | 171 | m_environment.addIncludes(IDefinesAndIncludesManager::manager()->includes(file)); | ||
172 | m_environment.addFrameworkDirectories(IDefinesAndIncludesManager::manager()->frameworkDirectories(file)); | 172 | m_environment.addFrameworkDirectories(IDefinesAndIncludesManager::manager()->frameworkDirectories(file)); | ||
173 | m_environment.addDefines(IDefinesAndIncludesManager::manager()->defines(file)); | 173 | m_environment.addDefines(IDefinesAndIncludesManager::manager()->defines(file)); | ||
174 | m_environment.setParserSettings(ClangSettingsManager::self()->parserSettings(file)); | 174 | m_environment.setParserSettings(ClangSettingsManager::self()->parserSettings(file)); | ||
175 | if (hasBuildSystemInfo) { | ||||
176 | // Assume the builder invokes the compiler in the build directory. | ||||
177 | m_environment.setWorkingDirectory(file->project()->buildSystemManager()->buildDirectory(file)); | ||||
178 | } | ||||
175 | } else { | 179 | } else { | ||
176 | m_environment.addIncludes(IDefinesAndIncludesManager::manager()->includes(tuUrl.str())); | 180 | m_environment.addIncludes(IDefinesAndIncludesManager::manager()->includes(tuUrl.str())); | ||
177 | m_environment.addFrameworkDirectories(IDefinesAndIncludesManager::manager()->frameworkDirectories(tuUrl.str())); | 181 | m_environment.addFrameworkDirectories(IDefinesAndIncludesManager::manager()->frameworkDirectories(tuUrl.str())); | ||
178 | m_environment.addDefines(IDefinesAndIncludesManager::manager()->defines(tuUrl.str())); | 182 | m_environment.addDefines(IDefinesAndIncludesManager::manager()->defines(tuUrl.str())); | ||
179 | m_environment.setParserSettings(ClangSettingsManager::self()->parserSettings(tuUrl.str())); | 183 | m_environment.setParserSettings(ClangSettingsManager::self()->parserSettings(tuUrl.str())); | ||
180 | } | 184 | } | ||
181 | const bool isSource = ClangHelpers::isSource(tuUrl.str()); | 185 | const bool isSource = ClangHelpers::isSource(tuUrl.str()); | ||
182 | m_environment.setQuality( | 186 | m_environment.setQuality( | ||
▲ Show 20 Lines • Show All 206 Lines • Show Last 20 Lines |