forked from qt-creator/qt-creator
CMake: Move some functions from build system to build config
Less indirection. Change-Id: I3a0a41c360b051cf0a3021d57d437fbde8f0736e Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
@@ -41,7 +41,7 @@ BuildDirParameters::BuildDirParameters(CMakeBuildSystem *buildSystem)
|
|||||||
[this](const QString &s) {
|
[this](const QString &s) {
|
||||||
return expander->expand(s);
|
return expander->expand(s);
|
||||||
});
|
});
|
||||||
additionalCMakeArguments = Utils::transform(buildSystem->additionalCMakeArguments(),
|
additionalCMakeArguments = Utils::transform(bc->additionalCMakeArguments(),
|
||||||
[this](const QString &s) {
|
[this](const QString &s) {
|
||||||
return expander->expand(s);
|
return expander->expand(s);
|
||||||
});
|
});
|
||||||
|
@@ -630,7 +630,7 @@ void CMakeBuildSettingsWidget::updateInitialCMakeArguments()
|
|||||||
// value() will contain only the unknown arguments (the non -D/-U arguments)
|
// value() will contain only the unknown arguments (the non -D/-U arguments)
|
||||||
// As the user would expect to have e.g. "--preset" from "Initial Configuration"
|
// As the user would expect to have e.g. "--preset" from "Initial Configuration"
|
||||||
// to "Current Configuration" as additional parameters
|
// to "Current Configuration" as additional parameters
|
||||||
m_buildConfig->cmakeBuildSystem()->setAdditionalCMakeArguments(ProcessArgs::splitArgs(
|
m_buildConfig->setAdditionalCMakeArguments(ProcessArgs::splitArgs(
|
||||||
m_buildConfig->initialCMakeArguments(), HostOsInfo::hostOs()));
|
m_buildConfig->initialCMakeArguments(), HostOsInfo::hostOs()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1550,8 +1550,8 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Id id)
|
|||||||
k,
|
k,
|
||||||
configureEnvironment(),
|
configureEnvironment(),
|
||||||
info.buildDirectory);
|
info.buildDirectory);
|
||||||
m_buildSystem->setInitialCMakeArguments(initialCMakeArguments);
|
setInitialCMakeArguments(initialCMakeArguments);
|
||||||
m_buildSystem->setCMakeBuildType(buildType);
|
setCMakeBuildType(buildType);
|
||||||
|
|
||||||
setBuildPresetToBuildSteps(target);
|
setBuildPresetToBuildSteps(target);
|
||||||
});
|
});
|
||||||
@@ -1686,32 +1686,30 @@ void CMakeBuildSystem::clearError(ForceEnabledChanged fec)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMakeBuildSystem::setInitialCMakeArguments(const QStringList &args)
|
void CMakeBuildConfiguration::setInitialCMakeArguments(const QStringList &args)
|
||||||
{
|
{
|
||||||
QStringList additionalArguments;
|
QStringList additionalArguments;
|
||||||
cmakeBuildConfiguration()->initialCMakeArguments.setAllValues(args.join('\n'), additionalArguments);
|
initialCMakeArguments.setAllValues(args.join('\n'), additionalArguments);
|
||||||
|
|
||||||
// Set the unknown additional arguments also for the "Current Configuration"
|
// Set the unknown additional arguments also for the "Current Configuration"
|
||||||
setAdditionalCMakeArguments(additionalArguments);
|
setAdditionalCMakeArguments(additionalArguments);
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList CMakeBuildSystem::additionalCMakeArguments() const
|
QStringList CMakeBuildConfiguration::additionalCMakeArguments() const
|
||||||
{
|
{
|
||||||
return ProcessArgs::splitArgs(cmakeBuildConfiguration()->additionalCMakeOptions(),
|
return ProcessArgs::splitArgs(additionalCMakeOptions(), HostOsInfo::hostOs());
|
||||||
HostOsInfo::hostOs());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMakeBuildSystem::setAdditionalCMakeArguments(const QStringList &args)
|
void CMakeBuildConfiguration::setAdditionalCMakeArguments(const QStringList &args)
|
||||||
{
|
{
|
||||||
const QStringList expandedAdditionalArguments = Utils::transform(args, [this](const QString &s) {
|
const QStringList expandedAdditionalArguments = Utils::transform(args, [this](const QString &s) {
|
||||||
return buildConfiguration()->macroExpander()->expand(s);
|
return macroExpander()->expand(s);
|
||||||
});
|
});
|
||||||
const QStringList nonEmptyAdditionalArguments = Utils::filtered(expandedAdditionalArguments,
|
const QStringList nonEmptyAdditionalArguments = Utils::filtered(expandedAdditionalArguments,
|
||||||
[](const QString &s) {
|
[](const QString &s) {
|
||||||
return !s.isEmpty();
|
return !s.isEmpty();
|
||||||
});
|
});
|
||||||
cmakeBuildConfiguration()->additionalCMakeOptions
|
additionalCMakeOptions.setValue(ProcessArgs::joinArgs(nonEmptyAdditionalArguments));
|
||||||
.setValue(ProcessArgs::joinArgs(nonEmptyAdditionalArguments));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMakeBuildConfiguration::filterConfigArgumentsFromAdditionalCMakeArguments()
|
void CMakeBuildConfiguration::filterConfigArgumentsFromAdditionalCMakeArguments()
|
||||||
@@ -2052,8 +2050,7 @@ QString CMakeBuildSystem::cmakeBuildType() const
|
|||||||
return item.key == "CMAKE_BUILD_TYPE" && !item.isInitial;
|
return item.key == "CMAKE_BUILD_TYPE" && !item.isInitial;
|
||||||
});
|
});
|
||||||
if (it != config.end())
|
if (it != config.end())
|
||||||
const_cast<CMakeBuildSystem*>(this)
|
cmakeBuildConfiguration()->setCMakeBuildType(QString::fromUtf8(it->value));
|
||||||
->setCMakeBuildType(QString::fromUtf8(it->value));
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!isMultiConfig())
|
if (!isMultiConfig())
|
||||||
@@ -2084,13 +2081,12 @@ QString CMakeBuildSystem::cmakeBuildType() const
|
|||||||
return cmakeBuildType;
|
return cmakeBuildType;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMakeBuildSystem::setCMakeBuildType(const QString &cmakeBuildType, bool quiet)
|
void CMakeBuildConfiguration::setCMakeBuildType(const QString &cmakeBuildType, bool quiet)
|
||||||
{
|
{
|
||||||
auto aspect = &cmakeBuildConfiguration()->buildTypeAspect;
|
|
||||||
if (quiet)
|
if (quiet)
|
||||||
aspect->setValueQuietly(cmakeBuildType);
|
buildTypeAspect.setValueQuietly(cmakeBuildType);
|
||||||
else
|
else
|
||||||
aspect->setValue(cmakeBuildType);
|
buildTypeAspect.setValue(cmakeBuildType);
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
@@ -73,6 +73,12 @@ public:
|
|||||||
Utils::Environment configureEnvironment() const;
|
Utils::Environment configureEnvironment() const;
|
||||||
Internal::CMakeBuildSystem *cmakeBuildSystem() const;
|
Internal::CMakeBuildSystem *cmakeBuildSystem() const;
|
||||||
|
|
||||||
|
QStringList additionalCMakeArguments() const;
|
||||||
|
void setAdditionalCMakeArguments(const QStringList &args);
|
||||||
|
|
||||||
|
void setInitialCMakeArguments(const QStringList &args);
|
||||||
|
void setCMakeBuildType(const QString &cmakeBuildType, bool quiet = false);
|
||||||
|
|
||||||
ProjectExplorer::BuildDirectoryAspect buildDir{this};
|
ProjectExplorer::BuildDirectoryAspect buildDir{this};
|
||||||
Internal::InitialCMakeArgumentsAspect initialCMakeArguments{this};
|
Internal::InitialCMakeArgumentsAspect initialCMakeArguments{this};
|
||||||
Utils::StringAspect additionalCMakeOptions{this};
|
Utils::StringAspect additionalCMakeOptions{this};
|
||||||
|
@@ -1182,7 +1182,7 @@ void CMakeBuildSystem::wireUpConnections()
|
|||||||
const CMakeConfig config = CMakeConfig::fromFile(cmakeCacheTxt, &errorMessage);
|
const CMakeConfig config = CMakeConfig::fromFile(cmakeCacheTxt, &errorMessage);
|
||||||
if (!config.isEmpty() && errorMessage.isEmpty()) {
|
if (!config.isEmpty() && errorMessage.isEmpty()) {
|
||||||
QString cmakeBuildTypeName = config.stringValueOf("CMAKE_BUILD_TYPE");
|
QString cmakeBuildTypeName = config.stringValueOf("CMAKE_BUILD_TYPE");
|
||||||
setCMakeBuildType(cmakeBuildTypeName, true);
|
cmakeBuildConfiguration()->setCMakeBuildType(cmakeBuildTypeName, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
reparse(options);
|
reparse(options);
|
||||||
|
@@ -101,7 +101,6 @@ public:
|
|||||||
CMakeProject *project() const;
|
CMakeProject *project() const;
|
||||||
|
|
||||||
QString cmakeBuildType() const;
|
QString cmakeBuildType() const;
|
||||||
void setCMakeBuildType(const QString &cmakeBuildType, bool quiet = false);
|
|
||||||
ProjectExplorer::BuildConfiguration::BuildType buildType() const;
|
ProjectExplorer::BuildConfiguration::BuildType buildType() const;
|
||||||
|
|
||||||
CMakeConfig configurationFromCMake() const;
|
CMakeConfig configurationFromCMake() const;
|
||||||
@@ -109,14 +108,9 @@ public:
|
|||||||
|
|
||||||
QStringList configurationChangesArguments(bool initialParameters = false) const;
|
QStringList configurationChangesArguments(bool initialParameters = false) const;
|
||||||
|
|
||||||
QStringList additionalCMakeArguments() const;
|
|
||||||
void setAdditionalCMakeArguments(const QStringList &args);
|
|
||||||
|
|
||||||
void setConfigurationFromCMake(const CMakeConfig &config);
|
void setConfigurationFromCMake(const CMakeConfig &config);
|
||||||
void setConfigurationChanges(const CMakeConfig &config);
|
void setConfigurationChanges(const CMakeConfig &config);
|
||||||
|
|
||||||
void setInitialCMakeArguments(const QStringList &args);
|
|
||||||
|
|
||||||
QString error() const;
|
QString error() const;
|
||||||
QString warning() const;
|
QString warning() const;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user