CMake: Use generator arguments, not generator

Generator is only part of the picture now that the extraGenerator
is separate. Use CMakeGeneratorKitInformation::generatorArguments
instead, that is always the complete thing.

Change-Id: Ifb6238397e70b36e2dc1b145d3dfad1afa2caa3f
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Tobias Hunger
2016-09-27 14:53:51 +02:00
parent e21df69354
commit 4bce0d7c36
3 changed files with 15 additions and 17 deletions

View File

@@ -170,12 +170,9 @@ void BuildDirManager::forceReparse()
stopProcess(); stopProcess();
CMakeTool *tool = CMakeKitInformation::cmakeTool(kit()); CMakeTool *tool = CMakeKitInformation::cmakeTool(kit());
const QString generator = CMakeGeneratorKitInformation::generator(kit());
QTC_ASSERT(tool, return); QTC_ASSERT(tool, return);
QTC_ASSERT(!generator.isEmpty(), return);
startCMake(tool, generator, intendedConfiguration()); startCMake(tool, CMakeGeneratorKitInformation::generatorArguments(kit()), intendedConfiguration());
} }
void BuildDirManager::resetData() void BuildDirManager::resetData()
@@ -210,16 +207,15 @@ void BuildDirManager::parse()
checkConfiguration(); checkConfiguration();
CMakeTool *tool = CMakeKitInformation::cmakeTool(kit()); CMakeTool *tool = CMakeKitInformation::cmakeTool(kit());
const QString generator = CMakeGeneratorKitInformation::generator(kit()); const QStringList generatorArgs = CMakeGeneratorKitInformation::generatorArguments(kit());
QTC_ASSERT(tool, return); QTC_ASSERT(tool, return);
QTC_ASSERT(!generator.isEmpty(), return);
const QString cbpFile = CMakeManager::findCbpFile(QDir(workDirectory().toString())); const QString cbpFile = CMakeManager::findCbpFile(QDir(workDirectory().toString()));
const QFileInfo cbpFileFi = cbpFile.isEmpty() ? QFileInfo() : QFileInfo(cbpFile); const QFileInfo cbpFileFi = cbpFile.isEmpty() ? QFileInfo() : QFileInfo(cbpFile);
if (!cbpFileFi.exists()) { if (!cbpFileFi.exists()) {
// Initial create: // Initial create:
startCMake(tool, generator, intendedConfiguration()); startCMake(tool, generatorArgs, intendedConfiguration());
return; return;
} }
@@ -228,7 +224,7 @@ void BuildDirManager::parse()
return f.toFileInfo().lastModified() > cbpFileFi.lastModified(); return f.toFileInfo().lastModified() > cbpFileFi.lastModified();
}); });
if (mustUpdate) { if (mustUpdate) {
startCMake(tool, generator, CMakeConfig()); startCMake(tool, generatorArgs, CMakeConfig());
} else { } else {
extractData(); extractData();
m_hasData = true; m_hasData = true;
@@ -392,7 +388,7 @@ void BuildDirManager::extractData()
m_buildTargets = cbpparser.buildTargets(); m_buildTargets = cbpparser.buildTargets();
} }
void BuildDirManager::startCMake(CMakeTool *tool, const QString &generator, void BuildDirManager::startCMake(CMakeTool *tool, const QStringList &generatorArgs,
const CMakeConfig &config) const CMakeConfig &config)
{ {
QTC_ASSERT(tool && tool->isValid(), return); QTC_ASSERT(tool && tool->isValid(), return);
@@ -441,8 +437,7 @@ void BuildDirManager::startCMake(CMakeTool *tool, const QString &generator,
QString args; QString args;
Utils::QtcProcess::addArg(&args, srcDir); Utils::QtcProcess::addArg(&args, srcDir);
if (!generator.isEmpty()) Utils::QtcProcess::addArgs(&args, generatorArgs);
Utils::QtcProcess::addArg(&args, QString::fromLatin1("-G%1").arg(generator));
Utils::QtcProcess::addArgs(&args, toArguments(config, kit())); Utils::QtcProcess::addArgs(&args, toArguments(config, kit()));
ProjectExplorer::TaskHub::clearTasks(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM); ProjectExplorer::TaskHub::clearTasks(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM);
@@ -689,10 +684,8 @@ void BuildDirManager::maybeForceReparse()
const CMakeTool *tool = CMakeKitInformation::cmakeTool(kit()); const CMakeTool *tool = CMakeKitInformation::cmakeTool(kit());
QTC_ASSERT(tool, return); // No cmake... we should not have ended up here in the first place QTC_ASSERT(tool, return); // No cmake... we should not have ended up here in the first place
const QString kitGenerator = CMakeGeneratorKitInformation::generator(kit()); const QString extraKitGenerator = CMakeGeneratorKitInformation::extraGenerator(kit());
int pos = kitGenerator.lastIndexOf(QLatin1String(" - ")); const QString mainKitGenerator = CMakeGeneratorKitInformation::generator(kit());
const QString extraKitGenerator = (pos > 0) ? kitGenerator.left(pos) : QString();
const QString mainKitGenerator = (pos > 0) ? kitGenerator.mid(pos + 3) : kitGenerator;
CMakeConfig targetConfig = m_buildConfiguration->cmakeConfiguration(); CMakeConfig targetConfig = m_buildConfiguration->cmakeConfiguration();
targetConfig.append(CMakeConfigItem(GENERATOR_KEY, CMakeConfigItem::INTERNAL, targetConfig.append(CMakeConfigItem(GENERATOR_KEY, CMakeConfigItem::INTERNAL,
QByteArray(), mainKitGenerator.toUtf8())); QByteArray(), mainKitGenerator.toUtf8()));

View File

@@ -104,7 +104,7 @@ private:
void cleanUpProcess(); void cleanUpProcess();
void extractData(); void extractData();
void startCMake(CMakeTool *tool, const QString &generator, const CMakeConfig &config); void startCMake(CMakeTool *tool, const QStringList &generatorArgs, const CMakeConfig &config);
void cmakeFinished(int code, QProcess::ExitStatus status); void cmakeFinished(int code, QProcess::ExitStatus status);
void processCMakeOutput(); void processCMakeOutput();

View File

@@ -253,7 +253,12 @@ void CMakeGeneratorKitConfigWidget::refresh()
} }
const QString generator = CMakeGeneratorKitInformation::generator(m_kit); const QString generator = CMakeGeneratorKitInformation::generator(m_kit);
m_comboBox->setCurrentIndex(m_comboBox->findData(generator)); const QString extraGenerator = CMakeGeneratorKitInformation::extraGenerator(m_kit);
QString fullName = extraGenerator;
if (!fullName.isEmpty())
fullName += " - ";
fullName += generator;
m_comboBox->setCurrentIndex(m_comboBox->findData(fullName));
} }
QWidget *CMakeGeneratorKitConfigWidget::mainWidget() const QWidget *CMakeGeneratorKitConfigWidget::mainWidget() const