CMakePM: Remove support for extra generators

They are marked as obsolete in CMake 3.27 and will be removed in a
future version of CMake.

Fixes: QTCREATORBUG-29603
Change-Id: I6e5d36441d05b87ee4467d13781f53d4269636ad
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Cristian Adam
2023-09-12 16:10:52 +02:00
parent 1f49833ea6
commit 4f26d802ca
5 changed files with 6 additions and 67 deletions

View File

@@ -2101,21 +2101,8 @@ void InitialCMakeArgumentsAspect::setAllValues(const QString &values, QStringLis
QStringList arguments = values.split('\n', Qt::SkipEmptyParts); QStringList arguments = values.split('\n', Qt::SkipEmptyParts);
QString cmakeGenerator; QString cmakeGenerator;
for (QString &arg: arguments) { for (QString &arg: arguments) {
if (arg.startsWith("-G")) { if (arg.startsWith("-G"))
const QString strDash(" - "); arg.replace("-G", "-DCMAKE_GENERATOR:STRING=");
const int idxDash = arg.indexOf(strDash);
if (idxDash > 0) {
// -GCodeBlocks - Ninja
cmakeGenerator = "-DCMAKE_GENERATOR:STRING=" + arg.mid(idxDash + strDash.length());
arg = arg.left(idxDash);
arg.replace("-G", "-DCMAKE_EXTRA_GENERATOR:STRING=");
} else {
// -GNinja
arg.replace("-G", "-DCMAKE_GENERATOR:STRING=");
}
}
if (arg.startsWith("-A")) if (arg.startsWith("-A"))
arg.replace("-A", "-DCMAKE_GENERATOR_PLATFORM:STRING="); arg.replace("-A", "-DCMAKE_GENERATOR_PLATFORM:STRING=");
if (arg.startsWith("-T")) if (arg.startsWith("-T"))

View File

@@ -1732,11 +1732,6 @@ QList<QPair<Id, QString>> CMakeBuildSystem::generators() const
for (const CMakeTool::Generator &generator : generators) { for (const CMakeTool::Generator &generator : generators) {
result << qMakePair(Id::fromSetting(generator.name), result << qMakePair(Id::fromSetting(generator.name),
Tr::tr("%1 (via cmake)").arg(generator.name)); Tr::tr("%1 (via cmake)").arg(generator.name));
for (const QString &extraGenerator : generator.extraGenerators) {
const QString displayName = extraGenerator + " - " + generator.name;
result << qMakePair(Id::fromSetting(displayName),
Tr::tr("%1 (via cmake)").arg(displayName));
}
} }
return result; return result;
} }

View File

@@ -388,14 +388,10 @@ private:
m_changeButton->setEnabled(m_currentTool); m_changeButton->setEnabled(m_currentTool);
const QString generator = CMakeGeneratorKitAspect::generator(kit()); const QString generator = CMakeGeneratorKitAspect::generator(kit());
const QString extraGenerator = CMakeGeneratorKitAspect::extraGenerator(kit());
const QString platform = CMakeGeneratorKitAspect::platform(kit()); const QString platform = CMakeGeneratorKitAspect::platform(kit());
const QString toolset = CMakeGeneratorKitAspect::toolset(kit()); const QString toolset = CMakeGeneratorKitAspect::toolset(kit());
QStringList messageLabel; QStringList messageLabel;
if (!extraGenerator.isEmpty())
messageLabel << extraGenerator << " - ";
messageLabel << generator; messageLabel << generator;
if (!platform.isEmpty()) if (!platform.isEmpty())
@@ -424,7 +420,6 @@ private:
cmakeLabel->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); cmakeLabel->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
auto generatorCombo = new QComboBox; auto generatorCombo = new QComboBox;
auto extraGeneratorCombo = new QComboBox;
auto platformEdit = new QLineEdit; auto platformEdit = new QLineEdit;
auto toolsetEdit = new QLineEdit; auto toolsetEdit = new QLineEdit;
@@ -436,10 +431,6 @@ private:
layout->addWidget(new QLabel(Tr::tr("Generator:")), row, 0); layout->addWidget(new QLabel(Tr::tr("Generator:")), row, 0);
layout->addWidget(generatorCombo, row, 1); layout->addWidget(generatorCombo, row, 1);
++row;
layout->addWidget(new QLabel(Tr::tr("Extra generator:")), row, 0);
layout->addWidget(extraGeneratorCombo, row, 1);
++row; ++row;
layout->addWidget(new QLabel(Tr::tr("Platform:")), row, 0); layout->addWidget(new QLabel(Tr::tr("Platform:")), row, 0);
layout->addWidget(platformEdit, row, 1); layout->addWidget(platformEdit, row, 1);
@@ -463,19 +454,13 @@ private:
for (auto it = generatorList.constBegin(); it != generatorList.constEnd(); ++it) for (auto it = generatorList.constBegin(); it != generatorList.constEnd(); ++it)
generatorCombo->addItem(it->name); generatorCombo->addItem(it->name);
auto updateDialog = [&generatorList, generatorCombo, extraGeneratorCombo, auto updateDialog = [&generatorList, generatorCombo,
platformEdit, toolsetEdit](const QString &name) { platformEdit, toolsetEdit](const QString &name) {
const auto it = std::find_if(generatorList.constBegin(), generatorList.constEnd(), const auto it = std::find_if(generatorList.constBegin(), generatorList.constEnd(),
[name](const CMakeTool::Generator &g) { return g.name == name; }); [name](const CMakeTool::Generator &g) { return g.name == name; });
QTC_ASSERT(it != generatorList.constEnd(), return); QTC_ASSERT(it != generatorList.constEnd(), return);
generatorCombo->setCurrentText(name); generatorCombo->setCurrentText(name);
extraGeneratorCombo->clear();
extraGeneratorCombo->addItem(Tr::tr("<none>"), QString());
for (const QString &eg : std::as_const(it->extraGenerators))
extraGeneratorCombo->addItem(eg, eg);
extraGeneratorCombo->setEnabled(extraGeneratorCombo->count() > 1);
platformEdit->setEnabled(it->supportsPlatform); platformEdit->setEnabled(it->supportsPlatform);
toolsetEdit->setEnabled(it->supportsToolset); toolsetEdit->setEnabled(it->supportsToolset);
}; };
@@ -483,7 +468,6 @@ private:
updateDialog(CMakeGeneratorKitAspect::generator(kit())); updateDialog(CMakeGeneratorKitAspect::generator(kit()));
generatorCombo->setCurrentText(CMakeGeneratorKitAspect::generator(kit())); generatorCombo->setCurrentText(CMakeGeneratorKitAspect::generator(kit()));
extraGeneratorCombo->setCurrentText(CMakeGeneratorKitAspect::extraGenerator(kit()));
platformEdit->setText(platformEdit->isEnabled() ? CMakeGeneratorKitAspect::platform(kit()) : QString()); platformEdit->setText(platformEdit->isEnabled() ? CMakeGeneratorKitAspect::platform(kit()) : QString());
toolsetEdit->setText(toolsetEdit->isEnabled() ? CMakeGeneratorKitAspect::toolset(kit()) : QString()); toolsetEdit->setText(toolsetEdit->isEnabled() ? CMakeGeneratorKitAspect::toolset(kit()) : QString());
@@ -494,7 +478,6 @@ private:
return; return;
CMakeGeneratorKitAspect::set(kit(), generatorCombo->currentText(), CMakeGeneratorKitAspect::set(kit(), generatorCombo->currentText(),
extraGeneratorCombo->currentData().toString(),
platformEdit->isEnabled() ? platformEdit->text() : QString(), platformEdit->isEnabled() ? platformEdit->text() : QString(),
toolsetEdit->isEnabled() ? toolsetEdit->text() : QString()); toolsetEdit->isEnabled() ? toolsetEdit->text() : QString());
@@ -579,11 +562,6 @@ QString CMakeGeneratorKitAspect::generator(const Kit *k)
return generatorInfo(k).generator; return generatorInfo(k).generator;
} }
QString CMakeGeneratorKitAspect::extraGenerator(const Kit *k)
{
return generatorInfo(k).extraGenerator;
}
QString CMakeGeneratorKitAspect::platform(const Kit *k) QString CMakeGeneratorKitAspect::platform(const Kit *k)
{ {
return generatorInfo(k).platform; return generatorInfo(k).platform;
@@ -601,13 +579,6 @@ void CMakeGeneratorKitAspect::setGenerator(Kit *k, const QString &generator)
setGeneratorInfo(k, info); setGeneratorInfo(k, info);
} }
void CMakeGeneratorKitAspect::setExtraGenerator(Kit *k, const QString &extraGenerator)
{
GeneratorInfo info = generatorInfo(k);
info.extraGenerator = extraGenerator;
setGeneratorInfo(k, info);
}
void CMakeGeneratorKitAspect::setPlatform(Kit *k, const QString &platform) void CMakeGeneratorKitAspect::setPlatform(Kit *k, const QString &platform)
{ {
GeneratorInfo info = generatorInfo(k); GeneratorInfo info = generatorInfo(k);
@@ -624,11 +595,10 @@ void CMakeGeneratorKitAspect::setToolset(Kit *k, const QString &toolset)
void CMakeGeneratorKitAspect::set(Kit *k, void CMakeGeneratorKitAspect::set(Kit *k,
const QString &generator, const QString &generator,
const QString &extraGenerator,
const QString &platform, const QString &platform,
const QString &toolset) const QString &toolset)
{ {
GeneratorInfo info(generator, extraGenerator, platform, toolset); GeneratorInfo info(generator, platform, toolset);
setGeneratorInfo(k, info); setGeneratorInfo(k, info);
} }
@@ -639,11 +609,7 @@ QStringList CMakeGeneratorKitAspect::generatorArguments(const Kit *k)
if (info.generator.isEmpty()) if (info.generator.isEmpty())
return result; return result;
if (info.extraGenerator.isEmpty()) { result.append("-G" + info.generator);
result.append("-G" + info.generator);
} else {
result.append("-G" + info.extraGenerator + " - " + info.generator);
}
if (!info.platform.isEmpty()) if (!info.platform.isEmpty())
result.append("-A" + info.platform); result.append("-A" + info.platform);
@@ -664,9 +630,6 @@ CMakeConfig CMakeGeneratorKitAspect::generatorCMakeConfig(const Kit *k)
config << CMakeConfigItem("CMAKE_GENERATOR", info.generator.toUtf8()); config << CMakeConfigItem("CMAKE_GENERATOR", info.generator.toUtf8());
if (!info.extraGenerator.isEmpty())
config << CMakeConfigItem("CMAKE_EXTRA_GENERATOR", info.extraGenerator.toUtf8());
if (!info.platform.isEmpty()) if (!info.platform.isEmpty())
config << CMakeConfigItem("CMAKE_GENERATOR_PLATFORM", info.platform.toUtf8()); config << CMakeConfigItem("CMAKE_GENERATOR_PLATFORM", info.platform.toUtf8());

View File

@@ -34,15 +34,13 @@ class CMAKE_EXPORT CMakeGeneratorKitAspect
{ {
public: public:
static QString generator(const ProjectExplorer::Kit *k); static QString generator(const ProjectExplorer::Kit *k);
static QString extraGenerator(const ProjectExplorer::Kit *k);
static QString platform(const ProjectExplorer::Kit *k); static QString platform(const ProjectExplorer::Kit *k);
static QString toolset(const ProjectExplorer::Kit *k); static QString toolset(const ProjectExplorer::Kit *k);
static void setGenerator(ProjectExplorer::Kit *k, const QString &generator); static void setGenerator(ProjectExplorer::Kit *k, const QString &generator);
static void setExtraGenerator(ProjectExplorer::Kit *k, const QString &extraGenerator);
static void setPlatform(ProjectExplorer::Kit *k, const QString &platform); static void setPlatform(ProjectExplorer::Kit *k, const QString &platform);
static void setToolset(ProjectExplorer::Kit *k, const QString &toolset); static void setToolset(ProjectExplorer::Kit *k, const QString &toolset);
static void set(ProjectExplorer::Kit *k, const QString &generator, static void set(ProjectExplorer::Kit *k, const QString &generator,
const QString &extraGenerator, const QString &platform, const QString &toolset); const QString &platform, const QString &toolset);
static QStringList generatorArguments(const ProjectExplorer::Kit *k); static QStringList generatorArguments(const ProjectExplorer::Kit *k);
static CMakeConfig generatorCMakeConfig(const ProjectExplorer::Kit *k); static CMakeConfig generatorCMakeConfig(const ProjectExplorer::Kit *k);
static bool isMultiConfigGenerator(const ProjectExplorer::Kit *k); static bool isMultiConfigGenerator(const ProjectExplorer::Kit *k);

View File

@@ -52,7 +52,6 @@ struct DirectoryData
// Kit Stuff // Kit Stuff
FilePath cmakeBinary; FilePath cmakeBinary;
QString generator; QString generator;
QString extraGenerator;
QString platform; QString platform;
QString toolset; QString toolset;
FilePath sysroot; FilePath sysroot;
@@ -835,7 +834,6 @@ QList<void *> CMakeProjectImporter::examineDirectory(const FilePath &importPath,
data->cmakeBinary = config.filePathValueOf("CMAKE_COMMAND"); data->cmakeBinary = config.filePathValueOf("CMAKE_COMMAND");
data->generator = config.stringValueOf("CMAKE_GENERATOR"); data->generator = config.stringValueOf("CMAKE_GENERATOR");
data->extraGenerator = config.stringValueOf("CMAKE_EXTRA_GENERATOR");
data->platform = config.stringValueOf("CMAKE_GENERATOR_PLATFORM"); data->platform = config.stringValueOf("CMAKE_GENERATOR_PLATFORM");
if (data->platform.isEmpty()) if (data->platform.isEmpty())
data->platform = extractVisualStudioPlatformFromConfig(config); data->platform = extractVisualStudioPlatformFromConfig(config);
@@ -880,7 +878,6 @@ bool CMakeProjectImporter::matchKit(void *directoryData, const Kit *k) const
return false; return false;
if (CMakeGeneratorKitAspect::generator(k) != data->generator if (CMakeGeneratorKitAspect::generator(k) != data->generator
|| CMakeGeneratorKitAspect::extraGenerator(k) != data->extraGenerator
|| CMakeGeneratorKitAspect::platform(k) != data->platform || CMakeGeneratorKitAspect::platform(k) != data->platform
|| CMakeGeneratorKitAspect::toolset(k) != data->toolset) || CMakeGeneratorKitAspect::toolset(k) != data->toolset)
return false; return false;
@@ -950,7 +947,6 @@ Kit *CMakeProjectImporter::createKit(void *directoryData) const
CMakeKitAspect::setCMakeTool(k, cmtd.cmakeTool->id()); CMakeKitAspect::setCMakeTool(k, cmtd.cmakeTool->id());
CMakeGeneratorKitAspect::setGenerator(k, data->generator); CMakeGeneratorKitAspect::setGenerator(k, data->generator);
CMakeGeneratorKitAspect::setExtraGenerator(k, data->extraGenerator);
CMakeGeneratorKitAspect::setPlatform(k, data->platform); CMakeGeneratorKitAspect::setPlatform(k, data->platform);
CMakeGeneratorKitAspect::setToolset(k, data->toolset); CMakeGeneratorKitAspect::setToolset(k, data->toolset);