diff options
author | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2019-01-08 12:33:18 +0100 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2019-01-10 07:13:49 +0000 |
commit | 7b494c068eaa4012471b5f80be1ecfd964448cab (patch) | |
tree | 98cae2b91d00cdd501dee7650459376c9f13e659 | |
parent | 4ce9ec5d63e5690d4402ec56a46ed99a60eaa6d3 (diff) | |
download | qt-creator-7b494c068eaa4012471b5f80be1ecfd964448cab.tar.gz |
CppTools: Simplify ProjectUpdateInfo
...by using KitInfo.
Change-Id: I17b4dd6c368ba8b10b765f12a4663c041c9be7e5
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r-- | src/plugins/autotoolsprojectmanager/autotoolsproject.cpp | 3 | ||||
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmakeproject.cpp | 3 | ||||
-rw-r--r-- | src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp | 11 | ||||
-rw-r--r-- | src/plugins/cpptools/cppkitinfo.cpp | 3 | ||||
-rw-r--r-- | src/plugins/cpptools/cppkitinfo.h | 2 | ||||
-rw-r--r-- | src/plugins/cpptools/projectinfo.cpp | 31 | ||||
-rw-r--r-- | src/plugins/cpptools/projectinfo.h | 12 | ||||
-rw-r--r-- | src/plugins/genericprojectmanager/genericproject.cpp | 3 | ||||
-rw-r--r-- | src/plugins/qbsprojectmanager/qbsproject.cpp | 3 | ||||
-rw-r--r-- | src/plugins/qmakeprojectmanager/qmakeproject.cpp | 3 |
10 files changed, 29 insertions, 45 deletions
diff --git a/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp b/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp index 95dc6e5cd0..99c62b7497 100644 --- a/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp +++ b/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp @@ -280,6 +280,5 @@ void AutotoolsProject::updateCppCodeModel() rpp.setMacros(m_makefileParserThread->macros()); rpp.setFiles(m_files); - m_cppCodeModelUpdater->update( - {this, kitInfo.cToolChain, kitInfo.cxxToolChain, kitInfo.kit, {rpp}}); + m_cppCodeModelUpdater->update({this, kitInfo, {rpp}}); } diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index 398fe84440..bb07c99f23 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -296,8 +296,7 @@ void CMakeProject::updateProjectData(CMakeBuildConfiguration *bc) rpp.setFlagsForC({kitInfo.cToolChain, rpp.flagsForC.commandLineFlags}); } - m_cppCodeModelUpdater->update( - {this, kitInfo.cToolChain, kitInfo.cxxToolChain, kitInfo.kit, rpps}); + m_cppCodeModelUpdater->update({this, kitInfo, rpps}); updateQmlJSCodeModel(); diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp index cc01b1fd47..f4865d7edf 100644 --- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp +++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp @@ -30,6 +30,7 @@ #include <coreplugin/icontext.h> #include <cpptools/projectinfo.h> +#include <cpptools/cppkitinfo.h> #include <cpptools/cppprojectupdater.h> #include <projectexplorer/gcctoolchain.h> #include <projectexplorer/headerpath.h> @@ -358,10 +359,10 @@ void CompilationDatabaseProject::buildTreeAndProjectParts(const Utils::FileName auto root = std::make_unique<DBProjectNode>(projectDirectory()); + CppTools::KitInfo kitInfo(this); + QTC_ASSERT(kitInfo.isValid(), return); CppTools::RawProjectParts rpps; Utils::FileName commonPath; - ToolChain *cToolchain = nullptr; - ToolChain *cxxToolchain = nullptr; std::sort(array.begin(), array.end(), [](const Entry &lhs, const Entry &rhs) { return std::lexicographical_compare(lhs.flags.begin(), lhs.flags.end(), @@ -383,8 +384,8 @@ void CompilationDatabaseProject::buildTreeAndProjectParts(const Utils::FileName CppTools::RawProjectPart rpp = makeRawProjectPart(projectFile, m_kit.get(), - cToolchain, - cxxToolchain, + kitInfo.cToolChain, + kitInfo.cxxToolChain, entry.workingDir, entry.fileName, entry.flags); @@ -401,7 +402,7 @@ void CompilationDatabaseProject::buildTreeAndProjectParts(const Utils::FileName setRootProjectNode(std::move(root)); - m_cppCodeModelUpdater->update({this, cToolchain, cxxToolchain, m_kit.get(), rpps}); + m_cppCodeModelUpdater->update({this, kitInfo, rpps}); emitParsingFinished(true); } diff --git a/src/plugins/cpptools/cppkitinfo.cpp b/src/plugins/cpptools/cppkitinfo.cpp index d7bfcdebda..6cdf7d52df 100644 --- a/src/plugins/cpptools/cppkitinfo.cpp +++ b/src/plugins/cpptools/cppkitinfo.cpp @@ -51,6 +51,9 @@ KitInfo::KitInfo(Project *project) cToolChain = ToolChainKitInformation::toolChain(kit, Constants::C_LANGUAGE_ID); cxxToolChain = ToolChainKitInformation::toolChain(kit, Constants::CXX_LANGUAGE_ID); } + + // Sysroot + sysRootPath = ProjectExplorer::SysRootKitInformation::sysRoot(kit).toString(); } bool KitInfo::isValid() const diff --git a/src/plugins/cpptools/cppkitinfo.h b/src/plugins/cpptools/cppkitinfo.h index d9b01a3e7c..30ff300859 100644 --- a/src/plugins/cpptools/cppkitinfo.h +++ b/src/plugins/cpptools/cppkitinfo.h @@ -49,6 +49,8 @@ public: ProjectExplorer::ToolChain *cxxToolChain = nullptr; ProjectPart::QtVersion projectPartQtVersion = ProjectPart::NoQt; + + QString sysRootPath; }; } // namespace CppTools diff --git a/src/plugins/cpptools/projectinfo.cpp b/src/plugins/cpptools/projectinfo.cpp index c39449fef7..1cc5515eb9 100644 --- a/src/plugins/cpptools/projectinfo.cpp +++ b/src/plugins/cpptools/projectinfo.cpp @@ -25,6 +25,8 @@ #include "projectinfo.h" +#include "cppkitinfo.h" + #include <projectexplorer/abi.h> #include <projectexplorer/toolchain.h> #include <projectexplorer/kitinformation.h> @@ -33,7 +35,7 @@ namespace CppTools { ToolChainInfo::ToolChainInfo(const ProjectExplorer::ToolChain *toolChain, - const ProjectExplorer::Kit *kit) + const QString &sysRootPath) { if (toolChain) { // Keep the following cheap/non-blocking for the ui thread... @@ -46,36 +48,21 @@ ToolChainInfo::ToolChainInfo(const ProjectExplorer::ToolChain *toolChain, // ...and save the potentially expensive operations for later so that // they can be run from a worker thread. - sysRootPath = ProjectExplorer::SysRootKitInformation::sysRoot(kit).toString(); + this->sysRootPath = sysRootPath; headerPathsRunner = toolChain->createBuiltInHeaderPathsRunner(); macroInspectionRunner = toolChain->createMacroInspectionRunner(); } } ProjectUpdateInfo::ProjectUpdateInfo(ProjectExplorer::Project *project, - const ProjectExplorer::ToolChain *cToolChain, - const ProjectExplorer::ToolChain *cxxToolChain, - const ProjectExplorer::Kit *kit, + const KitInfo &kitInfo, const RawProjectParts &rawProjectParts) : project(project) , rawProjectParts(rawProjectParts) - , cToolChain(cToolChain) - , cxxToolChain(cxxToolChain) - , cToolChainInfo(ToolChainInfo(cToolChain, kit)) - , cxxToolChainInfo(ToolChainInfo(cxxToolChain, kit)) -{ -} - -ProjectUpdateInfo::ProjectUpdateInfo(ProjectExplorer::Project *project, - const ToolChainInfo &cToolChainInfo, - const ToolChainInfo &cxxToolChainInfo, - const RawProjectParts &rawProjectParts) - : project(project) - , rawProjectParts(rawProjectParts) - , cToolChain(nullptr) - , cxxToolChain(nullptr) - , cToolChainInfo(cToolChainInfo) - , cxxToolChainInfo(cxxToolChainInfo) + , cToolChain(kitInfo.cToolChain) + , cxxToolChain(kitInfo.cxxToolChain) + , cToolChainInfo(ToolChainInfo(cToolChain, kitInfo.sysRootPath)) + , cxxToolChainInfo(ToolChainInfo(cxxToolChain, kitInfo.sysRootPath)) { } diff --git a/src/plugins/cpptools/projectinfo.h b/src/plugins/cpptools/projectinfo.h index a69ffd8fdf..4cf43d0ff6 100644 --- a/src/plugins/cpptools/projectinfo.h +++ b/src/plugins/cpptools/projectinfo.h @@ -40,12 +40,14 @@ namespace CppTools { +class KitInfo; + class ToolChainInfo { public: ToolChainInfo() = default; ToolChainInfo(const ProjectExplorer::ToolChain *toolChain, - const ProjectExplorer::Kit *kit); + const QString &sysRootPath); bool isValid() const { return type.isValid(); } @@ -66,13 +68,7 @@ class CPPTOOLS_EXPORT ProjectUpdateInfo public: ProjectUpdateInfo() = default; ProjectUpdateInfo(ProjectExplorer::Project *project, - const ProjectExplorer::ToolChain *cToolChain, - const ProjectExplorer::ToolChain *cxxToolChain, - const ProjectExplorer::Kit *kit, - const RawProjectParts &rawProjectParts); - ProjectUpdateInfo(ProjectExplorer::Project *project, - const ToolChainInfo &cToolChainInfo, - const ToolChainInfo &cxxToolChainInfo, + const KitInfo &kitInfo, const RawProjectParts &rawProjectParts); bool isValid() const { return project && !rawProjectParts.isEmpty(); } diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp index 9f6e384716..16b544fd91 100644 --- a/src/plugins/genericprojectmanager/genericproject.cpp +++ b/src/plugins/genericprojectmanager/genericproject.cpp @@ -438,8 +438,7 @@ void GenericProject::refreshCppCodeModel() rpp.setConfigFileName(m_configFileName); rpp.setFiles(m_files); - m_cppCodeModelUpdater->update( - {this, kitInfo.cToolChain, kitInfo.cxxToolChain, kitInfo.kit, {rpp}}); + m_cppCodeModelUpdater->update({this, kitInfo, {rpp}}); } void GenericProject::updateDeploymentData() diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index 614cd3ff18..6759059902 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -1052,8 +1052,7 @@ void QbsProject::updateCppCodeModel() } CppTools::GeneratedCodeModelSupport::update(m_extraCompilers); - m_cppCodeModelUpdater->update( - {this, kitInfo.cToolChain, kitInfo.cxxToolChain, kitInfo.kit, rpps}); + m_cppCodeModelUpdater->update({this, kitInfo, rpps}); } void QbsProject::updateQmlJsCodeModel() diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index 3eee562176..a3fa4b3fc0 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -323,8 +323,7 @@ void QmakeProject::updateCppCodeModel() } CppTools::GeneratedCodeModelSupport::update(generators); - m_cppCodeModelUpdater->update( - {this, kitInfo.cToolChain, kitInfo.cxxToolChain, kitInfo.kit, rpps}); + m_cppCodeModelUpdater->update({this, kitInfo, rpps}); } void QmakeProject::updateQmlJSCodeModel() |