diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp index d0714872fd5..ae589981ead 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp @@ -148,7 +148,9 @@ void QbsBuildStep::cancel() QVariantMap QbsBuildStep::qbsConfiguration() const { - return m_qbsConfiguration; + QVariantMap config = m_qbsConfiguration; + config.insert(QLatin1String(Constants::QBS_FORCE_PROBES_KEY), m_forceProbes); + return config; } void QbsBuildStep::setQbsConfiguration(const QVariantMap &config) @@ -197,6 +199,8 @@ int QbsBuildStep::maxJobs() const return qbs::BuildOptions::defaultMaxJobCount(); } +static QString forceProbesKey() { return QLatin1String("Qbs.forceProbesKey"); } + bool QbsBuildStep::fromMap(const QVariantMap &map) { if (!ProjectExplorer::BuildStep::fromMap(map)) @@ -212,6 +216,7 @@ bool QbsBuildStep::fromMap(const QVariantMap &map) m_qbsBuildOptions.setInstall(map.value(QLatin1String(QBS_INSTALL), true).toBool()); m_qbsBuildOptions.setRemoveExistingInstallation(map.value(QLatin1String(QBS_CLEAN_INSTALL_ROOT)) .toBool()); + m_forceProbes = map.value(forceProbesKey()).toBool(); return true; } @@ -227,6 +232,7 @@ QVariantMap QbsBuildStep::toMap() const map.insert(QLatin1String(QBS_INSTALL), m_qbsBuildOptions.install()); map.insert(QLatin1String(QBS_CLEAN_INSTALL_ROOT), m_qbsBuildOptions.removeExistingInstallation()); + map.insert(forceProbesKey(), m_forceProbes); return map; } @@ -478,6 +484,8 @@ QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step) : &QbsBuildStepConfigWidget::changeInstall); connect(m_ui->cleanInstallRootCheckBox, &QCheckBox::toggled, this, &QbsBuildStepConfigWidget::changeCleanInstallRoot); + connect(m_ui->forceProbesCheckBox, &QCheckBox::toggled, this, + &QbsBuildStepConfigWidget::changeForceProbes); connect(m_ui->qmlDebuggingLibraryCheckBox, SIGNAL(toggled(bool)), this, SLOT(linkQmlDebuggingLibraryChecked(bool))); connect(QtSupport::QtVersionManager::instance(), SIGNAL(dumpUpdatedFor(Utils::FileName)), @@ -508,6 +516,7 @@ void QbsBuildStepConfigWidget::updateState() m_ui->showCommandLinesCheckBox->setChecked(m_step->showCommandLines()); m_ui->installCheckBox->setChecked(m_step->install()); m_ui->cleanInstallRootCheckBox->setChecked(m_step->cleanInstallRoot()); + m_ui->forceProbesCheckBox->setChecked(m_step->forceProbes()); updatePropertyEdit(m_step->qbsConfiguration()); m_ui->qmlDebuggingLibraryCheckBox->setChecked(m_step->isQmlDebuggingEnabled()); } @@ -614,6 +623,13 @@ void QbsBuildStepConfigWidget::changeCleanInstallRoot(bool clean) m_ignoreChange = false; } +void QbsBuildStepConfigWidget::changeForceProbes(bool forceProbes) +{ + m_ignoreChange = true; + m_step->setForceProbes(forceProbes); + m_ignoreChange = false; +} + void QbsBuildStepConfigWidget::applyCachedProperties() { QVariantMap data; diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.h b/src/plugins/qbsprojectmanager/qbsbuildstep.h index 9c3f825c2b2..e45e7b9ac57 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.h +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.h @@ -68,6 +68,9 @@ public: int maxJobs() const; QString buildVariant() const; + void setForceProbes(bool force) { m_forceProbes = force; emit qbsConfigurationChanged(); } + bool forceProbes() const { return m_forceProbes; } + bool isQmlDebuggingEnabled() const; bool fromMap(const QVariantMap &map) override; @@ -106,6 +109,7 @@ private: QVariantMap m_qbsConfiguration; qbs::BuildOptions m_qbsBuildOptions; + bool m_forceProbes = false; // Temporary data: QStringList m_changedFiles; @@ -144,6 +148,7 @@ private slots: void changeJobCount(int count); void changeInstall(bool install); void changeCleanInstallRoot(bool clean); + void changeForceProbes(bool forceProbes); void applyCachedProperties(); // QML debugging: diff --git a/src/plugins/qbsprojectmanager/qbsbuildstepconfigwidget.ui b/src/plugins/qbsprojectmanager/qbsbuildstepconfigwidget.ui index 8bce99a125b..f1ade9da945 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstepconfigwidget.ui +++ b/src/plugins/qbsprojectmanager/qbsbuildstepconfigwidget.ui @@ -7,7 +7,7 @@ 0 0 730 - 247 + 256 @@ -189,6 +189,13 @@ + + + + Force probes + + + diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h b/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h index ce89cccd117..a446ef62ca7 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h +++ b/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h @@ -59,6 +59,7 @@ static const char QBS_CONFIG_VARIANT_KEY[] = "qbs.buildVariant"; static const char QBS_CONFIG_PROFILE_KEY[] = "qbs.profile"; static const char QBS_CONFIG_DECLARATIVE_DEBUG_KEY[] = "Qt.declarative.qmlDebugging"; static const char QBS_CONFIG_QUICK_DEBUG_KEY[] = "Qt.quick.qmlDebugging"; +const char QBS_FORCE_PROBES_KEY[] = "qbspm.forceProbes"; // Icons: static const char QBS_GROUP_ICON[] = ":/qbsprojectmanager/images/groups.png"; diff --git a/src/plugins/qbsprojectmanager/qbsprojectparser.cpp b/src/plugins/qbsprojectmanager/qbsprojectparser.cpp index d477062341e..4137eeed4cf 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectparser.cpp +++ b/src/plugins/qbsprojectmanager/qbsprojectparser.cpp @@ -88,6 +88,8 @@ void QbsProjectParser::parse(const QVariantMap &config, const Environment &env, params.setTopLevelProfile(profileName); specialKey = QLatin1String(Constants::QBS_CONFIG_VARIANT_KEY); params.setBuildVariant(userConfig.take(specialKey).toString()); + specialKey = QLatin1String(Constants::QBS_FORCE_PROBES_KEY); + params.setForceProbeExecution(userConfig.take(specialKey).toBool()); params.setSettingsDirectory(QbsManager::settings()->baseDirectory()); params.setOverriddenValues(userConfig);