CppTools: Simplify ProjectUpdateInfo

...by using KitInfo.

Change-Id: I17b4dd6c368ba8b10b765f12a4663c041c9be7e5
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Nikolai Kosjar
2019-01-08 12:33:18 +01:00
parent 4ce9ec5d63
commit 7b494c068e
10 changed files with 29 additions and 45 deletions

View File

@@ -280,6 +280,5 @@ void AutotoolsProject::updateCppCodeModel()
rpp.setMacros(m_makefileParserThread->macros()); rpp.setMacros(m_makefileParserThread->macros());
rpp.setFiles(m_files); rpp.setFiles(m_files);
m_cppCodeModelUpdater->update( m_cppCodeModelUpdater->update({this, kitInfo, {rpp}});
{this, kitInfo.cToolChain, kitInfo.cxxToolChain, kitInfo.kit, {rpp}});
} }

View File

@@ -296,8 +296,7 @@ void CMakeProject::updateProjectData(CMakeBuildConfiguration *bc)
rpp.setFlagsForC({kitInfo.cToolChain, rpp.flagsForC.commandLineFlags}); rpp.setFlagsForC({kitInfo.cToolChain, rpp.flagsForC.commandLineFlags});
} }
m_cppCodeModelUpdater->update( m_cppCodeModelUpdater->update({this, kitInfo, rpps});
{this, kitInfo.cToolChain, kitInfo.cxxToolChain, kitInfo.kit, rpps});
updateQmlJSCodeModel(); updateQmlJSCodeModel();

View File

@@ -30,6 +30,7 @@
#include <coreplugin/icontext.h> #include <coreplugin/icontext.h>
#include <cpptools/projectinfo.h> #include <cpptools/projectinfo.h>
#include <cpptools/cppkitinfo.h>
#include <cpptools/cppprojectupdater.h> #include <cpptools/cppprojectupdater.h>
#include <projectexplorer/gcctoolchain.h> #include <projectexplorer/gcctoolchain.h>
#include <projectexplorer/headerpath.h> #include <projectexplorer/headerpath.h>
@@ -358,10 +359,10 @@ void CompilationDatabaseProject::buildTreeAndProjectParts(const Utils::FileName
auto root = std::make_unique<DBProjectNode>(projectDirectory()); auto root = std::make_unique<DBProjectNode>(projectDirectory());
CppTools::KitInfo kitInfo(this);
QTC_ASSERT(kitInfo.isValid(), return);
CppTools::RawProjectParts rpps; CppTools::RawProjectParts rpps;
Utils::FileName commonPath; Utils::FileName commonPath;
ToolChain *cToolchain = nullptr;
ToolChain *cxxToolchain = nullptr;
std::sort(array.begin(), array.end(), [](const Entry &lhs, const Entry &rhs) { std::sort(array.begin(), array.end(), [](const Entry &lhs, const Entry &rhs) {
return std::lexicographical_compare(lhs.flags.begin(), lhs.flags.end(), 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, CppTools::RawProjectPart rpp = makeRawProjectPart(projectFile,
m_kit.get(), m_kit.get(),
cToolchain, kitInfo.cToolChain,
cxxToolchain, kitInfo.cxxToolChain,
entry.workingDir, entry.workingDir,
entry.fileName, entry.fileName,
entry.flags); entry.flags);
@@ -401,7 +402,7 @@ void CompilationDatabaseProject::buildTreeAndProjectParts(const Utils::FileName
setRootProjectNode(std::move(root)); setRootProjectNode(std::move(root));
m_cppCodeModelUpdater->update({this, cToolchain, cxxToolchain, m_kit.get(), rpps}); m_cppCodeModelUpdater->update({this, kitInfo, rpps});
emitParsingFinished(true); emitParsingFinished(true);
} }

View File

@@ -51,6 +51,9 @@ KitInfo::KitInfo(Project *project)
cToolChain = ToolChainKitInformation::toolChain(kit, Constants::C_LANGUAGE_ID); cToolChain = ToolChainKitInformation::toolChain(kit, Constants::C_LANGUAGE_ID);
cxxToolChain = ToolChainKitInformation::toolChain(kit, Constants::CXX_LANGUAGE_ID); cxxToolChain = ToolChainKitInformation::toolChain(kit, Constants::CXX_LANGUAGE_ID);
} }
// Sysroot
sysRootPath = ProjectExplorer::SysRootKitInformation::sysRoot(kit).toString();
} }
bool KitInfo::isValid() const bool KitInfo::isValid() const

View File

@@ -49,6 +49,8 @@ public:
ProjectExplorer::ToolChain *cxxToolChain = nullptr; ProjectExplorer::ToolChain *cxxToolChain = nullptr;
ProjectPart::QtVersion projectPartQtVersion = ProjectPart::NoQt; ProjectPart::QtVersion projectPartQtVersion = ProjectPart::NoQt;
QString sysRootPath;
}; };
} // namespace CppTools } // namespace CppTools

View File

@@ -25,6 +25,8 @@
#include "projectinfo.h" #include "projectinfo.h"
#include "cppkitinfo.h"
#include <projectexplorer/abi.h> #include <projectexplorer/abi.h>
#include <projectexplorer/toolchain.h> #include <projectexplorer/toolchain.h>
#include <projectexplorer/kitinformation.h> #include <projectexplorer/kitinformation.h>
@@ -33,7 +35,7 @@
namespace CppTools { namespace CppTools {
ToolChainInfo::ToolChainInfo(const ProjectExplorer::ToolChain *toolChain, ToolChainInfo::ToolChainInfo(const ProjectExplorer::ToolChain *toolChain,
const ProjectExplorer::Kit *kit) const QString &sysRootPath)
{ {
if (toolChain) { if (toolChain) {
// Keep the following cheap/non-blocking for the ui thread... // 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 // ...and save the potentially expensive operations for later so that
// they can be run from a worker thread. // they can be run from a worker thread.
sysRootPath = ProjectExplorer::SysRootKitInformation::sysRoot(kit).toString(); this->sysRootPath = sysRootPath;
headerPathsRunner = toolChain->createBuiltInHeaderPathsRunner(); headerPathsRunner = toolChain->createBuiltInHeaderPathsRunner();
macroInspectionRunner = toolChain->createMacroInspectionRunner(); macroInspectionRunner = toolChain->createMacroInspectionRunner();
} }
} }
ProjectUpdateInfo::ProjectUpdateInfo(ProjectExplorer::Project *project, ProjectUpdateInfo::ProjectUpdateInfo(ProjectExplorer::Project *project,
const ProjectExplorer::ToolChain *cToolChain, const KitInfo &kitInfo,
const ProjectExplorer::ToolChain *cxxToolChain,
const ProjectExplorer::Kit *kit,
const RawProjectParts &rawProjectParts) const RawProjectParts &rawProjectParts)
: project(project) : project(project)
, rawProjectParts(rawProjectParts) , rawProjectParts(rawProjectParts)
, cToolChain(cToolChain) , cToolChain(kitInfo.cToolChain)
, cxxToolChain(cxxToolChain) , cxxToolChain(kitInfo.cxxToolChain)
, cToolChainInfo(ToolChainInfo(cToolChain, kit)) , cToolChainInfo(ToolChainInfo(cToolChain, kitInfo.sysRootPath))
, cxxToolChainInfo(ToolChainInfo(cxxToolChain, kit)) , cxxToolChainInfo(ToolChainInfo(cxxToolChain, kitInfo.sysRootPath))
{
}
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)
{ {
} }

View File

@@ -40,12 +40,14 @@
namespace CppTools { namespace CppTools {
class KitInfo;
class ToolChainInfo class ToolChainInfo
{ {
public: public:
ToolChainInfo() = default; ToolChainInfo() = default;
ToolChainInfo(const ProjectExplorer::ToolChain *toolChain, ToolChainInfo(const ProjectExplorer::ToolChain *toolChain,
const ProjectExplorer::Kit *kit); const QString &sysRootPath);
bool isValid() const { return type.isValid(); } bool isValid() const { return type.isValid(); }
@@ -66,13 +68,7 @@ class CPPTOOLS_EXPORT ProjectUpdateInfo
public: public:
ProjectUpdateInfo() = default; ProjectUpdateInfo() = default;
ProjectUpdateInfo(ProjectExplorer::Project *project, ProjectUpdateInfo(ProjectExplorer::Project *project,
const ProjectExplorer::ToolChain *cToolChain, const KitInfo &kitInfo,
const ProjectExplorer::ToolChain *cxxToolChain,
const ProjectExplorer::Kit *kit,
const RawProjectParts &rawProjectParts);
ProjectUpdateInfo(ProjectExplorer::Project *project,
const ToolChainInfo &cToolChainInfo,
const ToolChainInfo &cxxToolChainInfo,
const RawProjectParts &rawProjectParts); const RawProjectParts &rawProjectParts);
bool isValid() const { return project && !rawProjectParts.isEmpty(); } bool isValid() const { return project && !rawProjectParts.isEmpty(); }

View File

@@ -438,8 +438,7 @@ void GenericProject::refreshCppCodeModel()
rpp.setConfigFileName(m_configFileName); rpp.setConfigFileName(m_configFileName);
rpp.setFiles(m_files); rpp.setFiles(m_files);
m_cppCodeModelUpdater->update( m_cppCodeModelUpdater->update({this, kitInfo, {rpp}});
{this, kitInfo.cToolChain, kitInfo.cxxToolChain, kitInfo.kit, {rpp}});
} }
void GenericProject::updateDeploymentData() void GenericProject::updateDeploymentData()

View File

@@ -1052,8 +1052,7 @@ void QbsProject::updateCppCodeModel()
} }
CppTools::GeneratedCodeModelSupport::update(m_extraCompilers); CppTools::GeneratedCodeModelSupport::update(m_extraCompilers);
m_cppCodeModelUpdater->update( m_cppCodeModelUpdater->update({this, kitInfo, rpps});
{this, kitInfo.cToolChain, kitInfo.cxxToolChain, kitInfo.kit, rpps});
} }
void QbsProject::updateQmlJsCodeModel() void QbsProject::updateQmlJsCodeModel()

View File

@@ -323,8 +323,7 @@ void QmakeProject::updateCppCodeModel()
} }
CppTools::GeneratedCodeModelSupport::update(generators); CppTools::GeneratedCodeModelSupport::update(generators);
m_cppCodeModelUpdater->update( m_cppCodeModelUpdater->update({this, kitInfo, rpps});
{this, kitInfo.cToolChain, kitInfo.cxxToolChain, kitInfo.kit, rpps});
} }
void QmakeProject::updateQmlJSCodeModel() void QmakeProject::updateQmlJSCodeModel()