|
|
@@ -101,7 +101,7 @@ namespace Internal {
|
|
|
|
class CMakeBuildSettingsWidget : public NamedWidget
|
|
|
|
class CMakeBuildSettingsWidget : public NamedWidget
|
|
|
|
{
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
public:
|
|
|
|
CMakeBuildSettingsWidget(CMakeBuildSystem *bc);
|
|
|
|
explicit CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc);
|
|
|
|
|
|
|
|
|
|
|
|
void setError(const QString &message);
|
|
|
|
void setError(const QString &message);
|
|
|
|
void setWarning(const QString &message);
|
|
|
|
void setWarning(const QString &message);
|
|
|
@@ -129,7 +129,7 @@ private:
|
|
|
|
void updateConfigureDetailsWidgetsSummary(
|
|
|
|
void updateConfigureDetailsWidgetsSummary(
|
|
|
|
const QStringList &configurationArguments = QStringList());
|
|
|
|
const QStringList &configurationArguments = QStringList());
|
|
|
|
|
|
|
|
|
|
|
|
CMakeBuildSystem *m_buildSystem;
|
|
|
|
CMakeBuildConfiguration *m_buildConfig;
|
|
|
|
QTreeView *m_configView;
|
|
|
|
QTreeView *m_configView;
|
|
|
|
ConfigModel *m_configModel;
|
|
|
|
ConfigModel *m_configModel;
|
|
|
|
CategorySortFilterModel *m_configFilterModel;
|
|
|
|
CategorySortFilterModel *m_configFilterModel;
|
|
|
@@ -166,15 +166,14 @@ static QModelIndex mapToSource(const QAbstractItemView *view, const QModelIndex
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildSystem *bs) :
|
|
|
|
CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc) :
|
|
|
|
NamedWidget(Tr::tr("CMake")),
|
|
|
|
NamedWidget(Tr::tr("CMake")),
|
|
|
|
m_buildSystem(bs),
|
|
|
|
m_buildConfig(bc),
|
|
|
|
m_configModel(new ConfigModel(this)),
|
|
|
|
m_configModel(new ConfigModel(this)),
|
|
|
|
m_configFilterModel(new CategorySortFilterModel(this)),
|
|
|
|
m_configFilterModel(new CategorySortFilterModel(this)),
|
|
|
|
m_configTextFilterModel(new CategorySortFilterModel(this))
|
|
|
|
m_configTextFilterModel(new CategorySortFilterModel(this))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
QTC_ASSERT(bs, return);
|
|
|
|
QTC_ASSERT(m_buildConfig, return);
|
|
|
|
CMakeBuildConfiguration *bc = bs->cmakeBuildConfiguration();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m_configureDetailsWidget = new DetailsWidget;
|
|
|
|
m_configureDetailsWidget = new DetailsWidget;
|
|
|
|
|
|
|
|
|
|
|
@@ -189,10 +188,11 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildSystem *bs) :
|
|
|
|
m_configModel->flush(); // clear out config cache...;
|
|
|
|
m_configModel->flush(); // clear out config cache...;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
connect(&bc->buildTypeAspect, &BaseAspect::changed, this, [this, bc] {
|
|
|
|
connect(&m_buildConfig->buildTypeAspect, &BaseAspect::changed, this, [this] {
|
|
|
|
if (!m_buildSystem->isMultiConfig()) {
|
|
|
|
if (!m_buildConfig->cmakeBuildSystem()->isMultiConfig()) {
|
|
|
|
CMakeConfig config;
|
|
|
|
CMakeConfig config;
|
|
|
|
config << CMakeConfigItem("CMAKE_BUILD_TYPE", bc->buildTypeAspect().toUtf8());
|
|
|
|
config << CMakeConfigItem("CMAKE_BUILD_TYPE",
|
|
|
|
|
|
|
|
m_buildConfig->buildTypeAspect().toUtf8());
|
|
|
|
|
|
|
|
|
|
|
|
m_configModel->setBatchEditConfiguration(config);
|
|
|
|
m_configModel->setBatchEditConfiguration(config);
|
|
|
|
}
|
|
|
|
}
|
|
|
@@ -360,10 +360,12 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildSystem *bs) :
|
|
|
|
}.attachTo(this);
|
|
|
|
}.attachTo(this);
|
|
|
|
|
|
|
|
|
|
|
|
updateAdvancedCheckBox();
|
|
|
|
updateAdvancedCheckBox();
|
|
|
|
setError(m_buildSystem->error());
|
|
|
|
|
|
|
|
setWarning(m_buildSystem->warning());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
connect(m_buildSystem, &BuildSystem::parsingStarted, this, [this] {
|
|
|
|
CMakeBuildSystem *bs = m_buildConfig->cmakeBuildSystem();
|
|
|
|
|
|
|
|
setError(bs->error());
|
|
|
|
|
|
|
|
setWarning(bs->warning());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
connect(bs, &BuildSystem::parsingStarted, this, [this] {
|
|
|
|
updateButtonState();
|
|
|
|
updateButtonState();
|
|
|
|
m_configView->setEnabled(false);
|
|
|
|
m_configView->setEnabled(false);
|
|
|
|
m_showProgressTimer.start();
|
|
|
|
m_showProgressTimer.start();
|
|
|
@@ -371,28 +373,26 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildSystem *bs) :
|
|
|
|
|
|
|
|
|
|
|
|
m_configModel->setMacroExpander(bc->macroExpander());
|
|
|
|
m_configModel->setMacroExpander(bc->macroExpander());
|
|
|
|
|
|
|
|
|
|
|
|
if (m_buildSystem->isParsing())
|
|
|
|
if (bs->isParsing())
|
|
|
|
m_showProgressTimer.start();
|
|
|
|
m_showProgressTimer.start();
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
m_configModel->setConfiguration(m_buildSystem->configurationFromCMake());
|
|
|
|
m_configModel->setConfiguration(bs->configurationFromCMake());
|
|
|
|
m_configModel->setInitialParametersConfiguration(
|
|
|
|
m_configModel->setInitialParametersConfiguration(
|
|
|
|
m_buildSystem->initialCMakeConfiguration());
|
|
|
|
m_buildConfig->initialCMakeArguments.cmakeConfiguration());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
connect(m_buildSystem, &BuildSystem::parsingFinished, this, [this] {
|
|
|
|
connect(bs, &BuildSystem::parsingFinished, this, [this, bs] {
|
|
|
|
const CMakeConfig config = m_buildSystem->configurationFromCMake();
|
|
|
|
const CMakeConfig config = bs->configurationFromCMake();
|
|
|
|
auto qmlDebugAspect = m_buildSystem->buildConfiguration()
|
|
|
|
const TriState qmlDebugSetting = m_buildConfig->qmlDebugging.value();
|
|
|
|
->aspect<QtSupport::QmlDebuggingAspect>();
|
|
|
|
|
|
|
|
const TriState qmlDebugSetting = qmlDebugAspect->value();
|
|
|
|
|
|
|
|
bool qmlDebugConfig = CMakeBuildConfiguration::hasQmlDebugging(config);
|
|
|
|
bool qmlDebugConfig = CMakeBuildConfiguration::hasQmlDebugging(config);
|
|
|
|
if ((qmlDebugSetting == TriState::Enabled && !qmlDebugConfig)
|
|
|
|
if ((qmlDebugSetting == TriState::Enabled && !qmlDebugConfig)
|
|
|
|
|| (qmlDebugSetting == TriState::Disabled && qmlDebugConfig)) {
|
|
|
|
|| (qmlDebugSetting == TriState::Disabled && qmlDebugConfig)) {
|
|
|
|
qmlDebugAspect->setValue(TriState::Default);
|
|
|
|
m_buildConfig->qmlDebugging.setValue(TriState::Default);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
m_configModel->setConfiguration(config);
|
|
|
|
m_configModel->setConfiguration(config);
|
|
|
|
m_configModel->setInitialParametersConfiguration(
|
|
|
|
m_configModel->setInitialParametersConfiguration(
|
|
|
|
m_buildSystem->initialCMakeConfiguration());
|
|
|
|
m_buildConfig->initialCMakeArguments.cmakeConfiguration());
|
|
|
|
m_buildSystem->filterConfigArgumentsFromAdditionalCMakeArguments();
|
|
|
|
m_buildConfig->filterConfigArgumentsFromAdditionalCMakeArguments();
|
|
|
|
updateFromKit();
|
|
|
|
updateFromKit();
|
|
|
|
m_configView->setEnabled(true);
|
|
|
|
m_configView->setEnabled(true);
|
|
|
|
updateButtonState();
|
|
|
|
updateButtonState();
|
|
|
@@ -401,11 +401,11 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildSystem *bs) :
|
|
|
|
updateConfigurationStateSelection();
|
|
|
|
updateConfigurationStateSelection();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
connect(m_buildSystem, &CMakeBuildSystem::configurationCleared, this, [this] {
|
|
|
|
connect(bs, &CMakeBuildSystem::configurationCleared, this, [this] {
|
|
|
|
updateConfigurationStateSelection();
|
|
|
|
updateConfigurationStateSelection();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
connect(m_buildSystem, &CMakeBuildSystem::errorOccurred, this, [this] {
|
|
|
|
connect(bs, &CMakeBuildSystem::errorOccurred, this, [this] {
|
|
|
|
m_showProgressTimer.stop();
|
|
|
|
m_showProgressTimer.stop();
|
|
|
|
m_progressIndicator->hide();
|
|
|
|
m_progressIndicator->hide();
|
|
|
|
updateConfigurationStateSelection();
|
|
|
|
updateConfigurationStateSelection();
|
|
|
@@ -416,10 +416,8 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildSystem *bs) :
|
|
|
|
connect(m_configModel, &QAbstractItemModel::modelReset,
|
|
|
|
connect(m_configModel, &QAbstractItemModel::modelReset,
|
|
|
|
this, &CMakeBuildSettingsWidget::updateButtonState);
|
|
|
|
this, &CMakeBuildSettingsWidget::updateButtonState);
|
|
|
|
|
|
|
|
|
|
|
|
connect(m_buildSystem->cmakeBuildConfiguration(),
|
|
|
|
connect(m_buildConfig, &CMakeBuildConfiguration::signingFlagsChanged,
|
|
|
|
&CMakeBuildConfiguration::signingFlagsChanged,
|
|
|
|
this, &CMakeBuildSettingsWidget::updateButtonState);
|
|
|
|
this,
|
|
|
|
|
|
|
|
&CMakeBuildSettingsWidget::updateButtonState);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
connect(m_showAdvancedCheckBox, &QCheckBox::stateChanged,
|
|
|
|
connect(m_showAdvancedCheckBox, &QCheckBox::stateChanged,
|
|
|
|
this, &CMakeBuildSettingsWidget::updateAdvancedCheckBox);
|
|
|
|
this, &CMakeBuildSettingsWidget::updateAdvancedCheckBox);
|
|
|
@@ -436,15 +434,15 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildSystem *bs) :
|
|
|
|
connect(m_resetButton, &QPushButton::clicked, this, [this] {
|
|
|
|
connect(m_resetButton, &QPushButton::clicked, this, [this] {
|
|
|
|
m_configModel->resetAllChanges(isInitialConfiguration());
|
|
|
|
m_configModel->resetAllChanges(isInitialConfiguration());
|
|
|
|
});
|
|
|
|
});
|
|
|
|
connect(m_reconfigureButton, &QPushButton::clicked, this, [this] {
|
|
|
|
connect(m_reconfigureButton, &QPushButton::clicked, this, [this, bs] {
|
|
|
|
if (!m_buildSystem->isParsing()) {
|
|
|
|
if (!bs->isParsing()) {
|
|
|
|
if (isInitialConfiguration()) {
|
|
|
|
if (isInitialConfiguration()) {
|
|
|
|
reconfigureWithInitialParameters();
|
|
|
|
reconfigureWithInitialParameters();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
m_buildSystem->runCMakeWithExtraArguments();
|
|
|
|
bs->runCMakeWithExtraArguments();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
m_buildSystem->stopCMakeRun();
|
|
|
|
bs->stopCMakeRun();
|
|
|
|
m_reconfigureButton->setEnabled(false);
|
|
|
|
m_reconfigureButton->setEnabled(false);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
@@ -481,16 +479,16 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildSystem *bs) :
|
|
|
|
connect(m_batchEditButton, &QAbstractButton::clicked,
|
|
|
|
connect(m_batchEditButton, &QAbstractButton::clicked,
|
|
|
|
this, &CMakeBuildSettingsWidget::batchEditConfiguration);
|
|
|
|
this, &CMakeBuildSettingsWidget::batchEditConfiguration);
|
|
|
|
|
|
|
|
|
|
|
|
connect(m_buildSystem, &CMakeBuildSystem::errorOccurred,
|
|
|
|
connect(bs, &CMakeBuildSystem::errorOccurred,
|
|
|
|
this, &CMakeBuildSettingsWidget::setError);
|
|
|
|
this, &CMakeBuildSettingsWidget::setError);
|
|
|
|
connect(m_buildSystem, &CMakeBuildSystem::warningOccurred,
|
|
|
|
connect(bs, &CMakeBuildSystem::warningOccurred,
|
|
|
|
this, &CMakeBuildSettingsWidget::setWarning);
|
|
|
|
this, &CMakeBuildSettingsWidget::setWarning);
|
|
|
|
|
|
|
|
|
|
|
|
connect(m_buildSystem, &CMakeBuildSystem::configurationChanged,
|
|
|
|
connect(bs, &CMakeBuildSystem::configurationChanged,
|
|
|
|
m_configModel, &ConfigModel::setBatchEditConfiguration);
|
|
|
|
m_configModel, &ConfigModel::setBatchEditConfiguration);
|
|
|
|
|
|
|
|
|
|
|
|
updateFromKit();
|
|
|
|
updateFromKit();
|
|
|
|
connect(m_buildSystem->target(), &Target::kitChanged,
|
|
|
|
connect(m_buildConfig->target(), &Target::kitChanged,
|
|
|
|
this, &CMakeBuildSettingsWidget::updateFromKit);
|
|
|
|
this, &CMakeBuildSettingsWidget::updateFromKit);
|
|
|
|
connect(bc, &CMakeBuildConfiguration::enabledChanged, this, [this, bc] {
|
|
|
|
connect(bc, &CMakeBuildConfiguration::enabledChanged, this, [this, bc] {
|
|
|
|
if (bc->isEnabled())
|
|
|
|
if (bc->isEnabled())
|
|
|
@@ -500,7 +498,7 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildSystem *bs) :
|
|
|
|
updateInitialCMakeArguments();
|
|
|
|
updateInitialCMakeArguments();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
connect(m_buildSystem->target()->project(), &Project::aboutToSaveSettings, this, [this] {
|
|
|
|
connect(m_buildConfig->target()->project(), &Project::aboutToSaveSettings, this, [this] {
|
|
|
|
updateInitialCMakeArguments();
|
|
|
|
updateInitialCMakeArguments();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
@@ -508,12 +506,12 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildSystem *bs) :
|
|
|
|
&Utils::BaseAspect::labelLinkActivated,
|
|
|
|
&Utils::BaseAspect::labelLinkActivated,
|
|
|
|
this,
|
|
|
|
this,
|
|
|
|
[this](const QString &) {
|
|
|
|
[this](const QString &) {
|
|
|
|
const CMakeTool *tool = CMakeKitAspect::cmakeTool(m_buildSystem->kit());
|
|
|
|
const CMakeTool *tool = CMakeKitAspect::cmakeTool(m_buildConfig->kit());
|
|
|
|
CMakeTool::openCMakeHelpUrl(tool, "%1/manual/cmake.1.html#options");
|
|
|
|
CMakeTool::openCMakeHelpUrl(tool, "%1/manual/cmake.1.html#options");
|
|
|
|
});
|
|
|
|
});
|
|
|
|
connect(&bc->additionalCMakeOptions,
|
|
|
|
connect(&bc->additionalCMakeOptions,
|
|
|
|
&Utils::BaseAspect::labelLinkActivated, this, [this](const QString &) {
|
|
|
|
&Utils::BaseAspect::labelLinkActivated, this, [this](const QString &) {
|
|
|
|
const CMakeTool *tool = CMakeKitAspect::cmakeTool(m_buildSystem->kit());
|
|
|
|
const CMakeTool *tool = CMakeKitAspect::cmakeTool(m_buildConfig->kit());
|
|
|
|
CMakeTool::openCMakeHelpUrl(tool, "%1/manual/cmake.1.html#options");
|
|
|
|
CMakeTool::openCMakeHelpUrl(tool, "%1/manual/cmake.1.html#options");
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
@@ -541,14 +539,14 @@ void CMakeBuildSettingsWidget::batchEditConfiguration()
|
|
|
|
"<type> can have one of the following values: FILEPATH, PATH, BOOL, INTERNAL, or STRING.<br/>"
|
|
|
|
"<type> can have one of the following values: FILEPATH, PATH, BOOL, INTERNAL, or STRING.<br/>"
|
|
|
|
"To unset a variable, use -U<variable>.<br/>"));
|
|
|
|
"To unset a variable, use -U<variable>.<br/>"));
|
|
|
|
connect(label, &QLabel::linkActivated, this, [this](const QString &) {
|
|
|
|
connect(label, &QLabel::linkActivated, this, [this](const QString &) {
|
|
|
|
const CMakeTool *tool = CMakeKitAspect::cmakeTool(m_buildSystem->target()->kit());
|
|
|
|
const CMakeTool *tool = CMakeKitAspect::cmakeTool(m_buildConfig->target()->kit());
|
|
|
|
CMakeTool::openCMakeHelpUrl(tool, "%1/manual/cmake-variables.7.html");
|
|
|
|
CMakeTool::openCMakeHelpUrl(tool, "%1/manual/cmake-variables.7.html");
|
|
|
|
});
|
|
|
|
});
|
|
|
|
editor->setMinimumSize(800, 200);
|
|
|
|
editor->setMinimumSize(800, 200);
|
|
|
|
|
|
|
|
|
|
|
|
auto chooser = new Utils::VariableChooser(dialog);
|
|
|
|
auto chooser = new Utils::VariableChooser(dialog);
|
|
|
|
chooser->addSupportedWidget(editor);
|
|
|
|
chooser->addSupportedWidget(editor);
|
|
|
|
chooser->addMacroExpanderProvider([this] { return m_buildSystem->buildConfiguration()->macroExpander(); });
|
|
|
|
chooser->addMacroExpanderProvider([this] { return m_buildConfig->macroExpander(); });
|
|
|
|
|
|
|
|
|
|
|
|
auto buttons = new QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Cancel);
|
|
|
|
auto buttons = new QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Cancel);
|
|
|
|
|
|
|
|
|
|
|
@@ -559,7 +557,7 @@ void CMakeBuildSettingsWidget::batchEditConfiguration()
|
|
|
|
connect(buttons, &QDialogButtonBox::accepted, dialog, &QDialog::accept);
|
|
|
|
connect(buttons, &QDialogButtonBox::accepted, dialog, &QDialog::accept);
|
|
|
|
connect(buttons, &QDialogButtonBox::rejected, dialog, &QDialog::reject);
|
|
|
|
connect(buttons, &QDialogButtonBox::rejected, dialog, &QDialog::reject);
|
|
|
|
connect(dialog, &QDialog::accepted, this, [=]{
|
|
|
|
connect(dialog, &QDialog::accepted, this, [=]{
|
|
|
|
const auto expander = m_buildSystem->buildConfiguration()->macroExpander();
|
|
|
|
const auto expander = m_buildConfig->macroExpander();
|
|
|
|
|
|
|
|
|
|
|
|
const QStringList lines = editor->toPlainText().split('\n', Qt::SkipEmptyParts);
|
|
|
|
const QStringList lines = editor->toPlainText().split('\n', Qt::SkipEmptyParts);
|
|
|
|
const QStringList expandedLines = Utils::transform(lines,
|
|
|
|
const QStringList expandedLines = Utils::transform(lines,
|
|
|
@@ -577,7 +575,7 @@ void CMakeBuildSettingsWidget::batchEditConfiguration()
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
editor->setPlainText(
|
|
|
|
editor->setPlainText(
|
|
|
|
m_buildSystem->configurationChangesArguments(isInitialConfiguration())
|
|
|
|
m_buildConfig->cmakeBuildSystem()->configurationChangesArguments(isInitialConfiguration())
|
|
|
|
.join('\n'));
|
|
|
|
.join('\n'));
|
|
|
|
|
|
|
|
|
|
|
|
dialog->show();
|
|
|
|
dialog->show();
|
|
|
@@ -598,19 +596,19 @@ void CMakeBuildSettingsWidget::reconfigureWithInitialParameters()
|
|
|
|
if (reply != QMessageBox::Yes)
|
|
|
|
if (reply != QMessageBox::Yes)
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
m_buildSystem->clearCMakeCache();
|
|
|
|
m_buildConfig->cmakeBuildSystem()->clearCMakeCache();
|
|
|
|
|
|
|
|
|
|
|
|
updateInitialCMakeArguments();
|
|
|
|
updateInitialCMakeArguments();
|
|
|
|
|
|
|
|
|
|
|
|
if (ProjectExplorerPlugin::saveModifiedFiles())
|
|
|
|
if (ProjectExplorerPlugin::saveModifiedFiles())
|
|
|
|
m_buildSystem->runCMake();
|
|
|
|
m_buildConfig->cmakeBuildSystem()->runCMake();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CMakeBuildSettingsWidget::updateInitialCMakeArguments()
|
|
|
|
void CMakeBuildSettingsWidget::updateInitialCMakeArguments()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
CMakeConfig initialList = m_buildSystem->initialCMakeConfiguration();
|
|
|
|
CMakeConfig initialList = m_buildConfig->initialCMakeArguments.cmakeConfiguration();
|
|
|
|
|
|
|
|
|
|
|
|
for (const CMakeConfigItem &ci : m_buildSystem->configurationChanges()) {
|
|
|
|
for (const CMakeConfigItem &ci : m_buildConfig->cmakeBuildSystem()->configurationChanges()) {
|
|
|
|
if (!ci.isInitial)
|
|
|
|
if (!ci.isInitial)
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
auto it = std::find_if(initialList.begin(),
|
|
|
|
auto it = std::find_if(initialList.begin(),
|
|
|
@@ -627,19 +625,18 @@ void CMakeBuildSettingsWidget::updateInitialCMakeArguments()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
auto bc = m_buildSystem->cmakeBuildConfiguration();
|
|
|
|
m_buildConfig->initialCMakeArguments.setCMakeConfiguration(initialList);
|
|
|
|
bc->initialCMakeArguments.setCMakeConfiguration(initialList);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 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_buildSystem->setAdditionalCMakeArguments(ProcessArgs::splitArgs(
|
|
|
|
m_buildConfig->cmakeBuildSystem()->setAdditionalCMakeArguments(ProcessArgs::splitArgs(
|
|
|
|
bc->initialCMakeArguments(), HostOsInfo::hostOs()));
|
|
|
|
m_buildConfig->initialCMakeArguments(), HostOsInfo::hostOs()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CMakeBuildSettingsWidget::kitCMakeConfiguration()
|
|
|
|
void CMakeBuildSettingsWidget::kitCMakeConfiguration()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
m_buildSystem->kit()->blockNotification();
|
|
|
|
m_buildConfig->kit()->blockNotification();
|
|
|
|
|
|
|
|
|
|
|
|
auto dialog = new QDialog(this);
|
|
|
|
auto dialog = new QDialog(this);
|
|
|
|
dialog->setWindowTitle(Tr::tr("Kit CMake Configuration"));
|
|
|
|
dialog->setWindowTitle(Tr::tr("Kit CMake Configuration"));
|
|
|
@@ -647,7 +644,7 @@ void CMakeBuildSettingsWidget::kitCMakeConfiguration()
|
|
|
|
dialog->setModal(true);
|
|
|
|
dialog->setModal(true);
|
|
|
|
dialog->setSizeGripEnabled(true);
|
|
|
|
dialog->setSizeGripEnabled(true);
|
|
|
|
connect(dialog, &QDialog::finished, this, [this] {
|
|
|
|
connect(dialog, &QDialog::finished, this, [this] {
|
|
|
|
m_buildSystem->kit()->unblockNotification();
|
|
|
|
m_buildConfig->kit()->unblockNotification();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
CMakeKitAspect kitAspect;
|
|
|
|
CMakeKitAspect kitAspect;
|
|
|
@@ -655,13 +652,13 @@ void CMakeBuildSettingsWidget::kitCMakeConfiguration()
|
|
|
|
CMakeConfigurationKitAspect configurationKitAspect;
|
|
|
|
CMakeConfigurationKitAspect configurationKitAspect;
|
|
|
|
|
|
|
|
|
|
|
|
Layouting::Grid grid;
|
|
|
|
Layouting::Grid grid;
|
|
|
|
KitAspectWidget *widget = kitAspect.createConfigWidget(m_buildSystem->kit());
|
|
|
|
KitAspectWidget *widget = kitAspect.createConfigWidget(m_buildConfig->kit());
|
|
|
|
widget->setParent(dialog);
|
|
|
|
widget->setParent(dialog);
|
|
|
|
widget->addToLayoutWithLabel(grid, dialog);
|
|
|
|
widget->addToLayoutWithLabel(grid, dialog);
|
|
|
|
widget = generatorAspect.createConfigWidget(m_buildSystem->kit());
|
|
|
|
widget = generatorAspect.createConfigWidget(m_buildConfig->kit());
|
|
|
|
widget->setParent(dialog);
|
|
|
|
widget->setParent(dialog);
|
|
|
|
widget->addToLayoutWithLabel(grid, dialog);
|
|
|
|
widget->addToLayoutWithLabel(grid, dialog);
|
|
|
|
widget = configurationKitAspect.createConfigWidget(m_buildSystem->kit());
|
|
|
|
widget = configurationKitAspect.createConfigWidget(m_buildConfig->kit());
|
|
|
|
widget->setParent(dialog);
|
|
|
|
widget->setParent(dialog);
|
|
|
|
widget->addToLayoutWithLabel(grid, dialog);
|
|
|
|
widget->addToLayoutWithLabel(grid, dialog);
|
|
|
|
grid.attachTo(dialog);
|
|
|
|
grid.attachTo(dialog);
|
|
|
@@ -687,13 +684,12 @@ void CMakeBuildSettingsWidget::updateConfigureDetailsWidgetsSummary(
|
|
|
|
ProjectExplorer::ProcessParameters params;
|
|
|
|
ProjectExplorer::ProcessParameters params;
|
|
|
|
|
|
|
|
|
|
|
|
CommandLine cmd;
|
|
|
|
CommandLine cmd;
|
|
|
|
const CMakeTool *tool = CMakeKitAspect::cmakeTool(m_buildSystem->kit());
|
|
|
|
const CMakeTool *tool = CMakeKitAspect::cmakeTool(m_buildConfig->kit());
|
|
|
|
cmd.setExecutable(tool ? tool->cmakeExecutable() : "cmake");
|
|
|
|
cmd.setExecutable(tool ? tool->cmakeExecutable() : "cmake");
|
|
|
|
|
|
|
|
|
|
|
|
const BuildConfiguration *bc = m_buildSystem->buildConfiguration();
|
|
|
|
const FilePath buildDirectory = m_buildConfig ? m_buildConfig->buildDirectory() : ".";
|
|
|
|
const FilePath buildDirectory = bc ? bc->buildDirectory() : ".";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cmd.addArgs({"-S", m_buildSystem->projectDirectory().path()});
|
|
|
|
cmd.addArgs({"-S", m_buildConfig->project()->projectDirectory().path()});
|
|
|
|
cmd.addArgs({"-B", buildDirectory.path()});
|
|
|
|
cmd.addArgs({"-B", buildDirectory.path()});
|
|
|
|
cmd.addArgs(configurationArguments);
|
|
|
|
cmd.addArgs(configurationArguments);
|
|
|
|
|
|
|
|
|
|
|
@@ -704,7 +700,7 @@ void CMakeBuildSettingsWidget::updateConfigureDetailsWidgetsSummary(
|
|
|
|
|
|
|
|
|
|
|
|
void CMakeBuildSettingsWidget::setError(const QString &message)
|
|
|
|
void CMakeBuildSettingsWidget::setError(const QString &message)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
m_buildSystem->buildConfiguration()->buildDirectoryAspect()->setProblem(message);
|
|
|
|
m_buildConfig->buildDirectoryAspect()->setProblem(message);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CMakeBuildSettingsWidget::setWarning(const QString &message)
|
|
|
|
void CMakeBuildSettingsWidget::setWarning(const QString &message)
|
|
|
@@ -716,7 +712,7 @@ void CMakeBuildSettingsWidget::setWarning(const QString &message)
|
|
|
|
|
|
|
|
|
|
|
|
void CMakeBuildSettingsWidget::updateButtonState()
|
|
|
|
void CMakeBuildSettingsWidget::updateButtonState()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
const bool isParsing = m_buildSystem->isParsing();
|
|
|
|
const bool isParsing = m_buildConfig->cmakeBuildSystem()->isParsing();
|
|
|
|
|
|
|
|
|
|
|
|
// Update extra data in buildconfiguration
|
|
|
|
// Update extra data in buildconfiguration
|
|
|
|
const QList<ConfigModel::DataItem> changes = m_configModel->configurationForCMake();
|
|
|
|
const QList<ConfigModel::DataItem> changes = m_configModel->configurationForCMake();
|
|
|
@@ -757,12 +753,11 @@ void CMakeBuildSettingsWidget::updateButtonState()
|
|
|
|
const bool isInitial = isInitialConfiguration();
|
|
|
|
const bool isInitial = isInitialConfiguration();
|
|
|
|
m_resetButton->setEnabled(m_configModel->hasChanges(isInitial) && !isParsing);
|
|
|
|
m_resetButton->setEnabled(m_configModel->hasChanges(isInitial) && !isParsing);
|
|
|
|
|
|
|
|
|
|
|
|
CMakeBuildConfiguration *bc = m_buildSystem->cmakeBuildConfiguration();
|
|
|
|
m_buildConfig->initialCMakeArguments.setVisible(isInitialConfiguration());
|
|
|
|
bc->initialCMakeArguments.setVisible(isInitialConfiguration());
|
|
|
|
m_buildConfig->additionalCMakeOptions.setVisible(!isInitialConfiguration());
|
|
|
|
bc->additionalCMakeOptions.setVisible(!isInitialConfiguration());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bc->initialCMakeArguments.setEnabled(!isParsing);
|
|
|
|
m_buildConfig->initialCMakeArguments.setEnabled(!isParsing);
|
|
|
|
bc->additionalCMakeOptions.setEnabled(!isParsing);
|
|
|
|
m_buildConfig->additionalCMakeOptions.setEnabled(!isParsing);
|
|
|
|
|
|
|
|
|
|
|
|
// Update label and text boldness of the reconfigure button
|
|
|
|
// Update label and text boldness of the reconfigure button
|
|
|
|
QFont reconfigureButtonFont = m_reconfigureButton->font();
|
|
|
|
QFont reconfigureButtonFont = m_reconfigureButton->font();
|
|
|
@@ -781,11 +776,11 @@ void CMakeBuildSettingsWidget::updateButtonState()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
m_reconfigureButton->setFont(reconfigureButtonFont);
|
|
|
|
m_reconfigureButton->setFont(reconfigureButtonFont);
|
|
|
|
|
|
|
|
|
|
|
|
m_buildSystem->setConfigurationChanges(configChanges);
|
|
|
|
m_buildConfig->cmakeBuildSystem()->setConfigurationChanges(configChanges);
|
|
|
|
|
|
|
|
|
|
|
|
// Update the tooltip with the changes
|
|
|
|
// Update the tooltip with the changes
|
|
|
|
const QStringList configurationArguments = m_buildSystem->configurationChangesArguments(
|
|
|
|
const QStringList configurationArguments =
|
|
|
|
isInitialConfiguration());
|
|
|
|
m_buildConfig->cmakeBuildSystem()->configurationChangesArguments(isInitialConfiguration());
|
|
|
|
m_reconfigureButton->setToolTip(configurationArguments.join('\n'));
|
|
|
|
m_reconfigureButton->setToolTip(configurationArguments.join('\n'));
|
|
|
|
updateConfigureDetailsWidgetsSummary(configurationArguments);
|
|
|
|
updateConfigureDetailsWidgetsSummary(configurationArguments);
|
|
|
|
}
|
|
|
|
}
|
|
|
@@ -805,7 +800,7 @@ void CMakeBuildSettingsWidget::updateAdvancedCheckBox()
|
|
|
|
|
|
|
|
|
|
|
|
void CMakeBuildSettingsWidget::updateFromKit()
|
|
|
|
void CMakeBuildSettingsWidget::updateFromKit()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
const Kit *k = m_buildSystem->kit();
|
|
|
|
const Kit *k = m_buildConfig->kit();
|
|
|
|
CMakeConfig config = CMakeConfigurationKitAspect::configuration(k);
|
|
|
|
CMakeConfig config = CMakeConfigurationKitAspect::configuration(k);
|
|
|
|
|
|
|
|
|
|
|
|
config.append(CMakeGeneratorKitAspect::generatorCMakeConfig(k));
|
|
|
|
config.append(CMakeGeneratorKitAspect::generatorCMakeConfig(k));
|
|
|
@@ -820,9 +815,8 @@ void CMakeBuildSettingsWidget::updateFromKit()
|
|
|
|
// Then the additional parameters
|
|
|
|
// Then the additional parameters
|
|
|
|
const QStringList additionalKitCMake = ProcessArgs::splitArgs(
|
|
|
|
const QStringList additionalKitCMake = ProcessArgs::splitArgs(
|
|
|
|
CMakeConfigurationKitAspect::additionalConfiguration(k), HostOsInfo::hostOs());
|
|
|
|
CMakeConfigurationKitAspect::additionalConfiguration(k), HostOsInfo::hostOs());
|
|
|
|
const QStringList additionalInitialCMake = ProcessArgs::splitArgs(
|
|
|
|
const QStringList additionalInitialCMake =
|
|
|
|
m_buildSystem->cmakeBuildConfiguration()->initialCMakeArguments(),
|
|
|
|
ProcessArgs::splitArgs(m_buildConfig->initialCMakeArguments(), HostOsInfo::hostOs());
|
|
|
|
HostOsInfo::hostOs());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
QStringList mergedArgumentList;
|
|
|
|
QStringList mergedArgumentList;
|
|
|
|
std::set_union(additionalInitialCMake.begin(),
|
|
|
|
std::set_union(additionalInitialCMake.begin(),
|
|
|
@@ -830,8 +824,7 @@ void CMakeBuildSettingsWidget::updateFromKit()
|
|
|
|
additionalKitCMake.begin(),
|
|
|
|
additionalKitCMake.begin(),
|
|
|
|
additionalKitCMake.end(),
|
|
|
|
additionalKitCMake.end(),
|
|
|
|
std::back_inserter(mergedArgumentList));
|
|
|
|
std::back_inserter(mergedArgumentList));
|
|
|
|
m_buildSystem->cmakeBuildConfiguration()->initialCMakeArguments
|
|
|
|
m_buildConfig->initialCMakeArguments.setValue(ProcessArgs::joinArgs(mergedArgumentList));
|
|
|
|
.setValue(ProcessArgs::joinArgs(mergedArgumentList));
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CMakeBuildSettingsWidget::updateConfigurationStateIndex(int index)
|
|
|
|
void CMakeBuildSettingsWidget::updateConfigurationStateIndex(int index)
|
|
|
@@ -850,13 +843,12 @@ void CMakeBuildSettingsWidget::updateConfigurationStateIndex(int index)
|
|
|
|
|
|
|
|
|
|
|
|
CMakeConfig CMakeBuildSettingsWidget::getQmlDebugCxxFlags()
|
|
|
|
CMakeConfig CMakeBuildSettingsWidget::getQmlDebugCxxFlags()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
const auto aspect = m_buildSystem->buildConfiguration()->aspect<QtSupport::QmlDebuggingAspect>();
|
|
|
|
const TriState qmlDebuggingState = m_buildConfig->qmlDebugging.value();
|
|
|
|
const TriState qmlDebuggingState = aspect->value();
|
|
|
|
|
|
|
|
if (qmlDebuggingState == TriState::Default) // don't touch anything
|
|
|
|
if (qmlDebuggingState == TriState::Default) // don't touch anything
|
|
|
|
return {};
|
|
|
|
return {};
|
|
|
|
const bool enable = aspect->value() == TriState::Enabled;
|
|
|
|
const bool enable = m_buildConfig->qmlDebugging.value() == TriState::Enabled;
|
|
|
|
|
|
|
|
|
|
|
|
const CMakeConfig configList = m_buildSystem->configurationFromCMake();
|
|
|
|
const CMakeConfig configList = m_buildConfig->cmakeBuildSystem()->configurationFromCMake();
|
|
|
|
const QByteArrayList cxxFlagsPrev{"CMAKE_CXX_FLAGS",
|
|
|
|
const QByteArrayList cxxFlagsPrev{"CMAKE_CXX_FLAGS",
|
|
|
|
"CMAKE_CXX_FLAGS_DEBUG",
|
|
|
|
"CMAKE_CXX_FLAGS_DEBUG",
|
|
|
|
"CMAKE_CXX_FLAGS_RELWITHDEBINFO",
|
|
|
|
"CMAKE_CXX_FLAGS_RELWITHDEBINFO",
|
|
|
@@ -867,7 +859,7 @@ CMakeConfig CMakeBuildSettingsWidget::getQmlDebugCxxFlags()
|
|
|
|
CMakeConfig changedConfig;
|
|
|
|
CMakeConfig changedConfig;
|
|
|
|
|
|
|
|
|
|
|
|
if (enable) {
|
|
|
|
if (enable) {
|
|
|
|
const FilePath cmakeCache = m_buildSystem->cmakeBuildConfiguration()->buildDirectory().pathAppended("CMakeCache.txt");
|
|
|
|
const FilePath cmakeCache = m_buildConfig->buildDirectory().pathAppended("CMakeCache.txt");
|
|
|
|
|
|
|
|
|
|
|
|
// Only modify the CMAKE_CXX_FLAGS variable if the project was previously configured
|
|
|
|
// Only modify the CMAKE_CXX_FLAGS variable if the project was previously configured
|
|
|
|
// otherwise CMAKE_CXX_FLAGS_INIT will take care of setting the qmlDebug define
|
|
|
|
// otherwise CMAKE_CXX_FLAGS_INIT will take care of setting the qmlDebug define
|
|
|
@@ -903,10 +895,10 @@ CMakeConfig CMakeBuildSettingsWidget::getQmlDebugCxxFlags()
|
|
|
|
|
|
|
|
|
|
|
|
CMakeConfig CMakeBuildSettingsWidget::getSigningFlagsChanges()
|
|
|
|
CMakeConfig CMakeBuildSettingsWidget::getSigningFlagsChanges()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
const CMakeConfig flags = m_buildSystem->cmakeBuildConfiguration()->signingFlags();
|
|
|
|
const CMakeConfig flags = m_buildConfig->signingFlags();
|
|
|
|
if (flags.isEmpty())
|
|
|
|
if (flags.isEmpty())
|
|
|
|
return {};
|
|
|
|
return {};
|
|
|
|
const CMakeConfig configList = m_buildSystem->configurationFromCMake();
|
|
|
|
const CMakeConfig configList = m_buildConfig->cmakeBuildSystem()->configurationFromCMake();
|
|
|
|
if (configList.isEmpty()) {
|
|
|
|
if (configList.isEmpty()) {
|
|
|
|
// we don't have any configuration --> initial configuration takes care of this itself
|
|
|
|
// we don't have any configuration --> initial configuration takes care of this itself
|
|
|
|
return {};
|
|
|
|
return {};
|
|
|
@@ -950,8 +942,7 @@ void CMakeBuildSettingsWidget::updateSelection()
|
|
|
|
void CMakeBuildSettingsWidget::updateConfigurationStateSelection()
|
|
|
|
void CMakeBuildSettingsWidget::updateConfigurationStateSelection()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
const bool hasReplyFile
|
|
|
|
const bool hasReplyFile
|
|
|
|
= FileApiParser::scanForCMakeReplyFile(
|
|
|
|
= FileApiParser::scanForCMakeReplyFile(m_buildConfig->buildDirectory()).exists();
|
|
|
|
m_buildSystem->buildConfiguration()->buildDirectory()).exists();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const int switchToIndex = hasReplyFile ? 1 : 0;
|
|
|
|
const int switchToIndex = hasReplyFile ? 1 : 0;
|
|
|
|
if (m_configurationStates->currentIndex() != switchToIndex)
|
|
|
|
if (m_configurationStates->currentIndex() != switchToIndex)
|
|
|
@@ -1029,7 +1020,7 @@ bool CMakeBuildSettingsWidget::eventFilter(QObject *target, QEvent *event)
|
|
|
|
connect(help, &QAction::triggered, this, [=] {
|
|
|
|
connect(help, &QAction::triggered, this, [=] {
|
|
|
|
const CMakeConfigItem item = ConfigModel::dataItemFromIndex(idx).toCMakeConfigItem();
|
|
|
|
const CMakeConfigItem item = ConfigModel::dataItemFromIndex(idx).toCMakeConfigItem();
|
|
|
|
|
|
|
|
|
|
|
|
const CMakeTool *tool = CMakeKitAspect::cmakeTool(m_buildSystem->target()->kit());
|
|
|
|
const CMakeTool *tool = CMakeKitAspect::cmakeTool(m_buildConfig->target()->kit());
|
|
|
|
const QString linkUrl = "%1/variable/" + QString::fromUtf8(item.key) + ".html";
|
|
|
|
const QString linkUrl = "%1/variable/" + QString::fromUtf8(item.key) + ".html";
|
|
|
|
CMakeTool::openCMakeHelpUrl(tool, linkUrl);
|
|
|
|
CMakeTool::openCMakeHelpUrl(tool, linkUrl);
|
|
|
|
});
|
|
|
|
});
|
|
|
@@ -1082,8 +1073,7 @@ bool CMakeBuildSettingsWidget::eventFilter(QObject *target, QEvent *event)
|
|
|
|
const QStringList variableList
|
|
|
|
const QStringList variableList
|
|
|
|
= Utils::transform(validIndexes, [this](const QModelIndex &index) {
|
|
|
|
= Utils::transform(validIndexes, [this](const QModelIndex &index) {
|
|
|
|
return ConfigModel::dataItemFromIndex(index).toCMakeConfigItem().toArgument(
|
|
|
|
return ConfigModel::dataItemFromIndex(index).toCMakeConfigItem().toArgument(
|
|
|
|
isInitialConfiguration() ? nullptr
|
|
|
|
isInitialConfiguration() ? nullptr : m_buildConfig->macroExpander());
|
|
|
|
: m_buildSystem->buildConfiguration()->macroExpander());
|
|
|
|
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
setClipboardAndSelection(variableList.join('\n'));
|
|
|
|
setClipboardAndSelection(variableList.join('\n'));
|
|
|
@@ -1660,11 +1650,6 @@ QStringList CMakeBuildSystem::configurationChangesArguments(bool initialParamete
|
|
|
|
return Utils::transform(filteredInitials, &CMakeConfigItem::toArgument);
|
|
|
|
return Utils::transform(filteredInitials, &CMakeConfigItem::toArgument);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
QStringList CMakeBuildSystem::initialCMakeArguments() const
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return cmakeBuildConfiguration()->initialCMakeArguments.allValues();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CMakeConfig CMakeBuildSystem::initialCMakeConfiguration() const
|
|
|
|
CMakeConfig CMakeBuildSystem::initialCMakeConfiguration() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return cmakeBuildConfiguration()->initialCMakeArguments.cmakeConfiguration();
|
|
|
|
return cmakeBuildConfiguration()->initialCMakeArguments.cmakeConfiguration();
|
|
|
@@ -1729,19 +1714,18 @@ void CMakeBuildSystem::setAdditionalCMakeArguments(const QStringList &args)
|
|
|
|
.setValue(ProcessArgs::joinArgs(nonEmptyAdditionalArguments));
|
|
|
|
.setValue(ProcessArgs::joinArgs(nonEmptyAdditionalArguments));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CMakeBuildSystem::filterConfigArgumentsFromAdditionalCMakeArguments()
|
|
|
|
void CMakeBuildConfiguration::filterConfigArgumentsFromAdditionalCMakeArguments()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// On iOS the %{Ios:DevelopmentTeam:Flag} evalues to something like
|
|
|
|
// On iOS the %{Ios:DevelopmentTeam:Flag} evalues to something like
|
|
|
|
// -DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM:STRING=MAGICSTRING
|
|
|
|
// -DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM:STRING=MAGICSTRING
|
|
|
|
// which is already part of the CMake variables and should not be also
|
|
|
|
// which is already part of the CMake variables and should not be also
|
|
|
|
// in the addtional CMake options
|
|
|
|
// in the addtional CMake options
|
|
|
|
const QStringList arguments = ProcessArgs::splitArgs(
|
|
|
|
const QStringList arguments = ProcessArgs::splitArgs(additionalCMakeOptions(),
|
|
|
|
cmakeBuildConfiguration()->additionalCMakeOptions(),
|
|
|
|
HostOsInfo::hostOs());
|
|
|
|
HostOsInfo::hostOs());
|
|
|
|
|
|
|
|
QStringList unknownOptions;
|
|
|
|
QStringList unknownOptions;
|
|
|
|
const CMakeConfig config = CMakeConfig::fromArguments(arguments, unknownOptions);
|
|
|
|
const CMakeConfig config = CMakeConfig::fromArguments(arguments, unknownOptions);
|
|
|
|
|
|
|
|
|
|
|
|
cmakeBuildConfiguration()->additionalCMakeOptions.setValue(ProcessArgs::joinArgs(unknownOptions));
|
|
|
|
additionalCMakeOptions.setValue(ProcessArgs::joinArgs(unknownOptions));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CMakeBuildSystem::setError(const QString &message)
|
|
|
|
void CMakeBuildSystem::setError(const QString &message)
|
|
|
@@ -1781,7 +1765,7 @@ QString CMakeBuildSystem::warning() const
|
|
|
|
|
|
|
|
|
|
|
|
NamedWidget *CMakeBuildConfiguration::createConfigWidget()
|
|
|
|
NamedWidget *CMakeBuildConfiguration::createConfigWidget()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return new CMakeBuildSettingsWidget(m_buildSystem);
|
|
|
|
return new CMakeBuildSettingsWidget(this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
CMakeConfig CMakeBuildConfiguration::signingFlags() const
|
|
|
|
CMakeConfig CMakeBuildConfiguration::signingFlags() const
|
|
|
@@ -1789,7 +1773,7 @@ CMakeConfig CMakeBuildConfiguration::signingFlags() const
|
|
|
|
return {};
|
|
|
|
return {};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CMakeBuildConfiguration::setInitialBuildAndCleanSteps(const ProjectExplorer::Target *target)
|
|
|
|
void CMakeBuildConfiguration::setInitialBuildAndCleanSteps(const Target *target)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
const CMakeConfigItem presetItem = CMakeConfigurationKitAspect::cmakePresetConfigItem(
|
|
|
|
const CMakeConfigItem presetItem = CMakeConfigurationKitAspect::cmakePresetConfigItem(
|
|
|
|
target->kit());
|
|
|
|
target->kit());
|
|
|
@@ -2036,6 +2020,11 @@ BuildSystem *CMakeBuildConfiguration::buildSystem() const
|
|
|
|
return m_buildSystem;
|
|
|
|
return m_buildSystem;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CMakeBuildSystem *CMakeBuildConfiguration::cmakeBuildSystem() const
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return m_buildSystem;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CMakeBuildConfiguration::addToEnvironment(Utils::Environment &env) const
|
|
|
|
void CMakeBuildConfiguration::addToEnvironment(Utils::Environment &env) const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
const CMakeTool *tool = CMakeKitAspect::cmakeTool(kit());
|
|
|
|
const CMakeTool *tool = CMakeKitAspect::cmakeTool(kit());
|
|
|
|