aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/coreplugin/icore.cpp
diff options
context:
space:
mode:
authorIvan Donchevskii <ivan.donchevskii@qt.io>2018-08-06 11:32:32 +0200
committerIvan Donchevskii <ivan.donchevskii@qt.io>2018-08-06 12:38:52 +0000
commit344cbb3a1b0fe5dd04dca8181d51148c0e9f3d75 (patch)
treea750e2178edf13d27014dd6779abf26ea513e366 /src/plugins/coreplugin/icore.cpp
parent960fccc7638880f1fa6dccc978c390828be9fa91 (diff)
Clang: Move clang paths helper functions to Core plugin
These functions require core plugin so they can't go to utils library. At the same time to use them in ProjectExplorer plugin there are not too many choices where to put them without introducing new dependencies. Change-Id: I3cccccffaae8ac4bbce924fd809b5423da5dc503 Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Diffstat (limited to 'src/plugins/coreplugin/icore.cpp')
-rw-r--r--src/plugins/coreplugin/icore.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/plugins/coreplugin/icore.cpp b/src/plugins/coreplugin/icore.cpp
index 359cb7012e..9e34890430 100644
--- a/src/plugins/coreplugin/icore.cpp
+++ b/src/plugins/coreplugin/icore.cpp
@@ -459,6 +459,28 @@ QString ICore::libexecPath()
return QDir::cleanPath(QApplication::applicationDirPath() + '/' + RELATIVE_LIBEXEC_PATH);
}
+static QString clangIncludePath(const QString &clangVersion)
+{
+ return "/lib/clang/" + clangVersion + "/include";
+}
+
+QString ICore::clangIncludeDirectory(const QString &clangVersion, const QString &clangResourceDirectory)
+{
+ QDir dir(libexecPath() + "/clang" + clangIncludePath(clangVersion));
+ if (!dir.exists() || !QFileInfo(dir, "stdint.h").exists())
+ dir = QDir(clangResourceDirectory);
+ return QDir::toNativeSeparators(dir.canonicalPath());
+}
+
+QString ICore::clangExecutable(const QString &clangBinDirectory)
+{
+ const QString hostExeSuffix(QTC_HOST_EXE_SUFFIX);
+ QFileInfo executable(libexecPath() + "/clang/bin/clang" + hostExeSuffix);
+ if (!executable.exists())
+ executable = QFileInfo(clangBinDirectory + "/clang" + hostExeSuffix);
+ return QDir::toNativeSeparators(executable.canonicalFilePath());
+}
+
static QString compilerString()
{
#if defined(Q_CC_CLANG) // must be before GNU, because clang claims to be GNU too