ProjectExplorer: Move some of the BuildInfo setup code to central places

Change-Id: I8893366acb187ea1a94a8ca272ded2c46cb521d1
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2020-01-09 18:42:28 +01:00
parent 27bbe6462b
commit b4ee6eb3c0
26 changed files with 114 additions and 143 deletions

View File

@@ -409,13 +409,13 @@ CMakeBuildConfigurationFactory::CMakeBuildConfigurationFactory()
setSupportedProjectType(CMakeProjectManager::Constants::CMAKEPROJECT_ID);
setSupportedProjectMimeTypeName(Constants::CMAKEPROJECTMIMETYPE);
setBuildGenerator([this](const Kit *k, const FilePath &projectPath, bool forSetup) {
setBuildGenerator([](const Kit *k, const FilePath &projectPath, bool forSetup) {
QList<BuildInfo> result;
FilePath path = forSetup ? Project::projectDirectory(projectPath) : projectPath;
for (int type = BuildTypeDebug; type != BuildTypeLast; ++type) {
BuildInfo info = createBuildInfo(k, path.toString(), BuildType(type));
BuildInfo info = createBuildInfo(BuildType(type));
if (forSetup) {
info.buildDirectory = CMakeBuildConfiguration::shadowBuildDirectory(projectPath,
k,
@@ -457,12 +457,9 @@ BuildConfiguration::BuildType CMakeBuildConfigurationFactory::cmakeBuildTypeToBu
return BuildConfiguration::Unknown;
}
BuildInfo CMakeBuildConfigurationFactory::createBuildInfo(const Kit *k,
const QString &,
BuildType buildType) const
BuildInfo CMakeBuildConfigurationFactory::createBuildInfo(BuildType buildType)
{
BuildInfo info(this);
info.kitId = k->id();
BuildInfo info;
switch (buildType) {
case BuildTypeNone:

View File

@@ -124,9 +124,7 @@ public:
static ProjectExplorer::BuildConfiguration::BuildType cmakeBuildTypeToBuildType(const BuildType &in);
private:
ProjectExplorer::BuildInfo createBuildInfo(const ProjectExplorer::Kit *k,
const QString &sourceDir,
BuildType buildType) const;
static ProjectExplorer::BuildInfo createBuildInfo(BuildType buildType);
friend class CMakeProjectImporter;
};

View File

@@ -335,17 +335,13 @@ Kit *CMakeProjectImporter::createKit(void *directoryData) const
});
}
const QList<BuildInfo> CMakeProjectImporter::buildInfoListForKit(const Kit *k, void *directoryData) const
const QList<BuildInfo> CMakeProjectImporter::buildInfoList(void *directoryData) const
{
auto data = static_cast<const DirectoryData *>(directoryData);
auto factory = dynamic_cast<CMakeBuildConfigurationFactory *>(
BuildConfigurationFactory::find(k, projectFilePath()));
if (!factory)
return {};
// create info:
BuildInfo info = factory->createBuildInfo(k, projectDirectory().toString(),
CMakeBuildConfigurationFactory::buildTypeFromByteArray(data->cmakeBuildType));
BuildInfo info = CMakeBuildConfigurationFactory::createBuildInfo(
CMakeBuildConfigurationFactory::buildTypeFromByteArray(data->cmakeBuildType));
info.buildDirectory = data->buildDirectory;
info.displayName = info.typeName;

View File

@@ -44,8 +44,7 @@ private:
QList<void *> examineDirectory(const Utils::FilePath &importPath) const final;
bool matchKit(void *directoryData, const ProjectExplorer::Kit *k) const final;
ProjectExplorer::Kit *createKit(void *directoryData) const final;
const QList<ProjectExplorer::BuildInfo> buildInfoListForKit(const ProjectExplorer::Kit *k,
void *directoryData) const final;
const QList<ProjectExplorer::BuildInfo> buildInfoList(void *directoryData) const final;
struct CMakeToolData {
bool isTemporary = false;