aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/coreplugin/icore.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/coreplugin/icore.cpp')
-rw-r--r--src/plugins/coreplugin/icore.cpp31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/plugins/coreplugin/icore.cpp b/src/plugins/coreplugin/icore.cpp
index 359cb7012e8..f88f0f8df44 100644
--- a/src/plugins/coreplugin/icore.cpp
+++ b/src/plugins/coreplugin/icore.cpp
@@ -337,8 +337,8 @@ ICore::ICore(MainWindow *mainwindow)
ICore::~ICore()
{
- m_instance = 0;
- m_mainwindow = 0;
+ m_instance = nullptr;
+ m_mainwindow = nullptr;
}
void ICore::showNewItemDialog(const QString &title,
@@ -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
@@ -509,6 +531,11 @@ QWidget *ICore::currentContextWidget()
return context ? context->widget() : nullptr;
}
+IContext *ICore::contextObject(QWidget *widget)
+{
+ return m_mainwindow->contextObject(widget);
+}
+
QMainWindow *ICore::mainWindow()
{