diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2021-05-06 12:56:21 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2021-05-07 11:03:47 +0000 |
commit | 9c3420120ea9b477a8677de667e0b3dc5375159b (patch) | |
tree | 11bd9716f5920faba2b981dbf5b77fdf3c02f1d0 /src/plugins/cpptools/cppmodelmanager.cpp | |
parent | 448446bd7ed40e1adbd1b66cdf92e50a125da5f3 (diff) | |
download | qt-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.cpp | 16 |
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; |