summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2019-01-08 12:33:18 +0100
committerNikolai Kosjar <nikolai.kosjar@qt.io>2019-01-10 07:13:49 +0000
commit7b494c068eaa4012471b5f80be1ecfd964448cab (patch)
tree98cae2b91d00cdd501dee7650459376c9f13e659
parent4ce9ec5d63e5690d4402ec56a46ed99a60eaa6d3 (diff)
downloadqt-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.cpp3
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeproject.cpp3
-rw-r--r--src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp11
-rw-r--r--src/plugins/cpptools/cppkitinfo.cpp3
-rw-r--r--src/plugins/cpptools/cppkitinfo.h2
-rw-r--r--src/plugins/cpptools/projectinfo.cpp31
-rw-r--r--src/plugins/cpptools/projectinfo.h12
-rw-r--r--src/plugins/genericprojectmanager/genericproject.cpp3
-rw-r--r--src/plugins/qbsprojectmanager/qbsproject.cpp3
-rw-r--r--src/plugins/qmakeprojectmanager/qmakeproject.cpp3
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()