forked from qt-creator/qt-creator
CppTools: Simplify ProjectUpdateInfo
...by using KitInfo. Change-Id: I17b4dd6c368ba8b10b765f12a4663c041c9be7e5 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -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}});
|
|
||||||
}
|
}
|
||||||
|
@@ -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();
|
||||||
|
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
@@ -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
|
||||||
|
@@ -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)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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(); }
|
||||||
|
|
||||||
|
@@ -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()
|
||||||
|
@@ -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()
|
||||||
|
@@ -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()
|
||||||
|
Reference in New Issue
Block a user