diff options
Diffstat (limited to 'src/plugins/cpptools/compileroptionsbuilder.cpp')
-rw-r--r-- | src/plugins/cpptools/compileroptionsbuilder.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp index 93e6ed3c10..57f937fb18 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.cpp +++ b/src/plugins/cpptools/compileroptionsbuilder.cpp @@ -528,7 +528,7 @@ void CompilerOptionsBuilder::addClangIncludeFolder() { QTC_CHECK(!m_clangVersion.isEmpty()); add(SYSTEM_INCLUDE_PREFIX); - add(clangIncludeDirectory()); + add(clangIncludeDirectory(m_clangVersion, m_clangResourceDirectory)); } void CompilerOptionsBuilder::addProjectConfigFileInclude() @@ -548,14 +548,23 @@ static QString creatorLibexecPath() #endif } -QString CompilerOptionsBuilder::clangIncludeDirectory() const +QString clangIncludeDirectory(const QString &clangVersion, const QString &clangResourceDirectory) { - QDir dir(creatorLibexecPath() + "/clang" + clangIncludePath(m_clangVersion)); + QDir dir(creatorLibexecPath() + "/clang" + clangIncludePath(clangVersion)); if (!dir.exists() || !QFileInfo(dir, "stdint.h").exists()) - dir = QDir(m_clangResourceDirectory); + dir = QDir(clangResourceDirectory); return QDir::toNativeSeparators(dir.canonicalPath()); } +QString clangExecutable(const QString &clangBinDirectory) +{ + const QString hostExeSuffix(QTC_HOST_EXE_SUFFIX); + QDir executable(creatorLibexecPath() + "/clang/bin/clang" + hostExeSuffix); + if (!executable.exists()) + executable = QDir(clangBinDirectory + "/clang" + hostExeSuffix); + return QDir::toNativeSeparators(executable.canonicalPath()); +} + void CompilerOptionsBuilder::undefineClangVersionMacrosForMsvc() { if (m_projectPart.toolchainType == ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID) { |