CMake: Shift multiconfig storage from build config to build system

Change-Id: I6f9b6c590975caeea4ad92c61f354d81d4d90431
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
hjk
2022-05-02 16:58:26 +02:00
parent fdf008a37e
commit 33a385c4d6
6 changed files with 25 additions and 26 deletions

View File

@@ -183,6 +183,7 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc)
m_configTextFilterModel(new CategorySortFilterModel(this))
{
QTC_CHECK(bc);
auto buildSystem = static_cast<CMakeBuildSystem *>(bc->buildSystem());
auto vbox = new QVBoxLayout(this);
vbox->setContentsMargins(0, 0, 0, 0);
@@ -200,8 +201,8 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc)
});
auto buildTypeAspect = bc->aspect<BuildTypeAspect>();
connect(buildTypeAspect, &BaseAspect::changed, this, [this, buildTypeAspect]() {
if (!m_buildConfiguration->isMultiConfig()) {
connect(buildTypeAspect, &BaseAspect::changed, this, [this, buildSystem, buildTypeAspect] {
if (!buildSystem->isMultiConfig()) {
CMakeConfig config;
config << CMakeConfigItem("CMAKE_BUILD_TYPE", buildTypeAspect->value().toUtf8());
@@ -355,8 +356,6 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc)
}.setSpacing(0)
}.attachTo(details, false);
auto buildSystem = static_cast<CMakeBuildSystem *>(bc->buildSystem());
updateAdvancedCheckBox();
setError(buildSystem->error());
setWarning(buildSystem->warning());
@@ -1196,7 +1195,7 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Id id)
const Kit *k = target->kit();
CommandLine cmd = defaultInitialCMakeCommand(k, info.typeName);
setIsMultiConfig(CMakeGeneratorKitAspect::isMultiConfigGenerator(k));
m_buildSystem->setIsMultiConfig(CMakeGeneratorKitAspect::isMultiConfigGenerator(k));
// Android magic:
if (DeviceTypeKitAspect::deviceTypeId(k) == Android::Constants::ANDROID_DEVICE_TYPE) {
@@ -1286,8 +1285,6 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Id id)
setInitialCMakeArguments(cmd.splitArguments());
setCMakeBuildType(info.typeName);
});
setIsMultiConfig(CMakeGeneratorKitAspect::isMultiConfigGenerator(target->kit()));
}
CMakeBuildConfiguration::~CMakeBuildConfiguration()
@@ -1660,7 +1657,7 @@ QString CMakeBuildConfiguration::cmakeBuildType() const
->setCMakeBuildType(QString::fromUtf8(it->value));
};
if (!isMultiConfig())
if (!m_buildSystem->isMultiConfig())
setBuildTypeFromConfig(configurationChanges());
QString cmakeBuildType = aspect<BuildTypeAspect>()->value();
@@ -1682,7 +1679,7 @@ QString CMakeBuildConfiguration::cmakeBuildType() const
config = initialCMakeConfiguration();
}
if (!config.isEmpty() && !isMultiConfig())
if (!config.isEmpty() && !m_buildSystem->isMultiConfig())
setBuildTypeFromConfig(config);
return cmakeBuildType;
@@ -1698,16 +1695,6 @@ void CMakeBuildConfiguration::setCMakeBuildType(const QString &cmakeBuildType, b
}
}
bool CMakeBuildConfiguration::isMultiConfig() const
{
return m_isMultiConfig;
}
void CMakeBuildConfiguration::setIsMultiConfig(bool isMultiConfig)
{
m_isMultiConfig = isMultiConfig;
}
namespace Internal {
// ----------------------------------------------------------------------