summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppmodelmanager.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2021-05-06 12:56:21 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2021-05-07 11:03:47 +0000
commit9c3420120ea9b477a8677de667e0b3dc5375159b (patch)
tree11bd9716f5920faba2b981dbf5b77fdf3c02f1d0 /src/plugins/cpptools/cppmodelmanager.cpp
parent448446bd7ed40e1adbd1b66cdf92e50a125da5f3 (diff)
downloadqt-creator-9c3420120ea9b477a8677de667e0b3dc5375159b.tar.gz
CppTools: Parse non-project sources with default kit
This makes more sense than using the clang defaults. Task-number: QTCREATORBUG-25562 Change-Id: I796d29bb4e81e5e257efea998dcab037efd8a717 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/cpptools/cppmodelmanager.cpp')
-rw-r--r--src/plugins/cpptools/cppmodelmanager.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index 971276f70a..d4f8c96f81 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -61,6 +61,8 @@
#include <cplusplus/ASTPath.h>
#include <cplusplus/TypeOfExpression.h>
#include <extensionsystem/pluginmanager.h>
+#include <projectexplorer/kitinformation.h>
+#include <projectexplorer/kitmanager.h>
#include <projectexplorer/project.h>
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/projectmacro.h>
@@ -90,6 +92,7 @@ static const bool DumpProjectInfo = qgetenv("QTC_DUMP_PROJECT_INFO") == "1";
using namespace CppTools;
using namespace CppTools::Internal;
using namespace CPlusPlus;
+using namespace ProjectExplorer;
#ifdef QTCREATOR_WITH_DUMP_AST
@@ -1276,6 +1279,19 @@ ProjectPart::Ptr CppModelManager::fallbackProjectPart()
Utils::LanguageExtension::ObjectiveC);
part->qtVersion = Utils::QtVersion::Qt5;
+
+ // TODO: Use different fallback toolchain for different kinds of files
+ const auto * const defaultKit = KitManager::defaultKit();
+ const ToolChain * const defaultTc = ToolChainKitAspect::cxxToolChain(defaultKit);
+ if (defaultKit && defaultTc) {
+ Utils::FilePath sysroot = SysRootKitAspect::sysRoot(defaultKit);
+ if (sysroot.isEmpty())
+ sysroot = Utils::FilePath::fromString(defaultTc->sysRoot());
+ Utils::Environment env = Utils::Environment::systemEnvironment();
+ defaultKit->addToEnvironment(env);
+ ToolChainInfo tcInfo(defaultTc, sysroot.toString(), env);
+ part->setupToolchainProperties(tcInfo, {});
+ }
part->updateLanguageFeatures();
return part;