forked from qt-creator/qt-creator
ProjectExplorer: Introduce SeparateDebugInfoAspect
... and use it in the qbs build configuration. Change-Id: Ie9002e5c43d1d43c81dc30a1fcbb29a5a1a25705 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -27,4 +27,10 @@
|
|||||||
|
|
||||||
namespace ProjectExplorer {
|
namespace ProjectExplorer {
|
||||||
|
|
||||||
|
SeparateDebugInfoAspect::SeparateDebugInfoAspect()
|
||||||
|
{
|
||||||
|
setDisplayName(tr("Separate Debug Info"));
|
||||||
|
setSettingsKey("SeparateDebugInfo");
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace ProjectExplorer
|
} // namespace ProjectExplorer
|
||||||
|
@@ -30,4 +30,11 @@
|
|||||||
|
|
||||||
namespace ProjectExplorer {
|
namespace ProjectExplorer {
|
||||||
|
|
||||||
|
class PROJECTEXPLORER_EXPORT SeparateDebugInfoAspect : public BaseTriStateAspect
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
SeparateDebugInfoAspect();
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace ProjectExplorer
|
} // namespace ProjectExplorer
|
||||||
|
@@ -87,6 +87,10 @@ QbsBuildConfiguration::QbsBuildConfiguration(Target *target, Core::Id id)
|
|||||||
connect(m_configurationName, &BaseStringAspect::changed,
|
connect(m_configurationName, &BaseStringAspect::changed,
|
||||||
this, &BuildConfiguration::buildDirectoryChanged);
|
this, &BuildConfiguration::buildDirectoryChanged);
|
||||||
|
|
||||||
|
const auto separateDebugInfoAspect = addAspect<SeparateDebugInfoAspect>();
|
||||||
|
connect(separateDebugInfoAspect, &SeparateDebugInfoAspect::changed,
|
||||||
|
this, &QbsBuildConfiguration::qbsConfigurationChanged);
|
||||||
|
|
||||||
const auto qmlDebuggingAspect = addAspect<QtSupport::QmlDebuggingAspect>();
|
const auto qmlDebuggingAspect = addAspect<QtSupport::QmlDebuggingAspect>();
|
||||||
qmlDebuggingAspect->setKit(target->kit());
|
qmlDebuggingAspect->setKit(target->kit());
|
||||||
connect(qmlDebuggingAspect, &QtSupport::QmlDebuggingAspect::changed,
|
connect(qmlDebuggingAspect, &QtSupport::QmlDebuggingAspect::changed,
|
||||||
@@ -382,6 +386,11 @@ BaseTriStateAspect::Value QbsBuildConfiguration::qmlDebuggingSetting() const
|
|||||||
return aspect<QtSupport::QmlDebuggingAspect>()->setting();
|
return aspect<QtSupport::QmlDebuggingAspect>()->setting();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BaseTriStateAspect::Value QbsBuildConfiguration::separateDebugInfoSetting() const
|
||||||
|
{
|
||||||
|
return aspect<SeparateDebugInfoAspect>()->setting();
|
||||||
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// QbsBuildConfigurationFactory:
|
// QbsBuildConfigurationFactory:
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
@@ -29,6 +29,7 @@
|
|||||||
|
|
||||||
#include "qbsproject.h"
|
#include "qbsproject.h"
|
||||||
|
|
||||||
|
#include <projectexplorer/buildaspects.h>
|
||||||
#include <projectexplorer/buildconfiguration.h>
|
#include <projectexplorer/buildconfiguration.h>
|
||||||
#include <qtsupport/baseqtversion.h>
|
#include <qtsupport/baseqtversion.h>
|
||||||
#include <qtsupport/qtbuildaspects.h>
|
#include <qtsupport/qtbuildaspects.h>
|
||||||
@@ -78,6 +79,8 @@ public:
|
|||||||
bool isQmlDebuggingEnabled() const;
|
bool isQmlDebuggingEnabled() const;
|
||||||
QtSupport::QmlDebuggingAspect::Value qmlDebuggingSetting() const;
|
QtSupport::QmlDebuggingAspect::Value qmlDebuggingSetting() const;
|
||||||
|
|
||||||
|
ProjectExplorer::SeparateDebugInfoAspect::Value separateDebugInfoSetting() const;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void qbsConfigurationChanged();
|
void qbsConfigurationChanged();
|
||||||
|
|
||||||
|
@@ -212,8 +212,20 @@ void QbsBuildStep::doCancel()
|
|||||||
QVariantMap QbsBuildStep::qbsConfiguration(VariableHandling variableHandling) const
|
QVariantMap QbsBuildStep::qbsConfiguration(VariableHandling variableHandling) const
|
||||||
{
|
{
|
||||||
QVariantMap config = m_qbsConfiguration;
|
QVariantMap config = m_qbsConfiguration;
|
||||||
|
const auto qbsBuildConfig = static_cast<QbsBuildConfiguration *>(buildConfiguration());
|
||||||
config.insert(Constants::QBS_FORCE_PROBES_KEY, m_forceProbes);
|
config.insert(Constants::QBS_FORCE_PROBES_KEY, m_forceProbes);
|
||||||
switch (static_cast<QbsBuildConfiguration *>(buildConfiguration())->qmlDebuggingSetting()) {
|
switch (qbsBuildConfig->separateDebugInfoSetting()) {
|
||||||
|
case SeparateDebugInfoAspect::Value::Enabled:
|
||||||
|
config.insert(Constants::QBS_CONFIG_SEPARATE_DEBUG_INFO_KEY, true);
|
||||||
|
break;
|
||||||
|
case SeparateDebugInfoAspect::Value::Disabled:
|
||||||
|
config.insert(Constants::QBS_CONFIG_SEPARATE_DEBUG_INFO_KEY, false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
config.remove(Constants::QBS_CONFIG_SEPARATE_DEBUG_INFO_KEY);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (qbsBuildConfig->qmlDebuggingSetting()) {
|
||||||
case QtSupport::QmlDebuggingAspect::Value::Enabled:
|
case QtSupport::QmlDebuggingAspect::Value::Enabled:
|
||||||
config.insert(Constants::QBS_CONFIG_QUICK_DEBUG_KEY, true);
|
config.insert(Constants::QBS_CONFIG_QUICK_DEBUG_KEY, true);
|
||||||
break;
|
break;
|
||||||
@@ -674,6 +686,16 @@ void QbsBuildStepConfigWidget::updateState()
|
|||||||
command += ' ' + m_propertyCache.at(i).name + ':' + m_propertyCache.at(i).effectiveValue;
|
command += ' ' + m_propertyCache.at(i).name + ':' + m_propertyCache.at(i).effectiveValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (qbsBuildConfig->separateDebugInfoSetting()) {
|
||||||
|
case SeparateDebugInfoAspect::Value::Enabled:
|
||||||
|
command.append(' ').append(Constants::QBS_CONFIG_SEPARATE_DEBUG_INFO_KEY).append(":true");
|
||||||
|
break;
|
||||||
|
case SeparateDebugInfoAspect::Value::Disabled:
|
||||||
|
command.append(' ').append(Constants::QBS_CONFIG_SEPARATE_DEBUG_INFO_KEY).append(":false");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
switch (qbsBuildConfig->qmlDebuggingSetting()) {
|
switch (qbsBuildConfig->qmlDebuggingSetting()) {
|
||||||
case QtSupport::QmlDebuggingAspect::Value::Enabled:
|
case QtSupport::QmlDebuggingAspect::Value::Enabled:
|
||||||
command.append(' ').append(Constants::QBS_CONFIG_QUICK_DEBUG_KEY).append(":true");
|
command.append(' ').append(Constants::QBS_CONFIG_QUICK_DEBUG_KEY).append(":true");
|
||||||
@@ -698,6 +720,7 @@ void QbsBuildStepConfigWidget::updatePropertyEdit(const QVariantMap &data)
|
|||||||
editable.remove(Constants::QBS_CONFIG_PROFILE_KEY);
|
editable.remove(Constants::QBS_CONFIG_PROFILE_KEY);
|
||||||
editable.remove(Constants::QBS_CONFIG_VARIANT_KEY);
|
editable.remove(Constants::QBS_CONFIG_VARIANT_KEY);
|
||||||
editable.remove(Constants::QBS_CONFIG_DECLARATIVE_DEBUG_KEY); // For existing .user files
|
editable.remove(Constants::QBS_CONFIG_DECLARATIVE_DEBUG_KEY); // For existing .user files
|
||||||
|
editable.remove(Constants::QBS_CONFIG_SEPARATE_DEBUG_INFO_KEY);
|
||||||
editable.remove(Constants::QBS_CONFIG_QUICK_DEBUG_KEY);
|
editable.remove(Constants::QBS_CONFIG_QUICK_DEBUG_KEY);
|
||||||
editable.remove(Constants::QBS_FORCE_PROBES_KEY);
|
editable.remove(Constants::QBS_FORCE_PROBES_KEY);
|
||||||
editable.remove(Constants::QBS_INSTALL_ROOT_KEY);
|
editable.remove(Constants::QBS_INSTALL_ROOT_KEY);
|
||||||
@@ -799,6 +822,7 @@ void QbsBuildStepConfigWidget::applyCachedProperties()
|
|||||||
tmp.value(Constants::QBS_CONFIG_VARIANT_KEY));
|
tmp.value(Constants::QBS_CONFIG_VARIANT_KEY));
|
||||||
const QStringList additionalSpecialKeys({Constants::QBS_CONFIG_DECLARATIVE_DEBUG_KEY,
|
const QStringList additionalSpecialKeys({Constants::QBS_CONFIG_DECLARATIVE_DEBUG_KEY,
|
||||||
Constants::QBS_CONFIG_QUICK_DEBUG_KEY,
|
Constants::QBS_CONFIG_QUICK_DEBUG_KEY,
|
||||||
|
Constants::QBS_CONFIG_SEPARATE_DEBUG_INFO_KEY,
|
||||||
Constants::QBS_INSTALL_ROOT_KEY});
|
Constants::QBS_INSTALL_ROOT_KEY});
|
||||||
for (const QString &key : additionalSpecialKeys) {
|
for (const QString &key : additionalSpecialKeys) {
|
||||||
const auto it = tmp.constFind(key);
|
const auto it = tmp.constFind(key);
|
||||||
@@ -840,7 +864,9 @@ bool QbsBuildStepConfigWidget::validateProperties(Utils::FancyLineEdit *edit, QS
|
|||||||
const QString propertyName = rawArg.left(pos);
|
const QString propertyName = rawArg.left(pos);
|
||||||
static const QStringList specialProperties{
|
static const QStringList specialProperties{
|
||||||
Constants::QBS_CONFIG_PROFILE_KEY, Constants::QBS_CONFIG_VARIANT_KEY,
|
Constants::QBS_CONFIG_PROFILE_KEY, Constants::QBS_CONFIG_VARIANT_KEY,
|
||||||
Constants::QBS_CONFIG_QUICK_DEBUG_KEY, Constants::QBS_INSTALL_ROOT_KEY};
|
Constants::QBS_CONFIG_QUICK_DEBUG_KEY, Constants::QBS_INSTALL_ROOT_KEY,
|
||||||
|
Constants::QBS_CONFIG_SEPARATE_DEBUG_INFO_KEY,
|
||||||
|
};
|
||||||
if (specialProperties.contains(propertyName)) {
|
if (specialProperties.contains(propertyName)) {
|
||||||
if (errorMessage) {
|
if (errorMessage) {
|
||||||
*errorMessage = tr("Property \"%1\" cannot be set here. "
|
*errorMessage = tr("Property \"%1\" cannot be set here. "
|
||||||
|
@@ -69,6 +69,7 @@ const char QBS_CONFIG_PROFILE_KEY[] = "qbs.profile";
|
|||||||
const char QBS_INSTALL_ROOT_KEY[] = "qbs.installRoot";
|
const char QBS_INSTALL_ROOT_KEY[] = "qbs.installRoot";
|
||||||
const char QBS_CONFIG_DECLARATIVE_DEBUG_KEY[] = "modules.Qt.declarative.qmlDebugging";
|
const char QBS_CONFIG_DECLARATIVE_DEBUG_KEY[] = "modules.Qt.declarative.qmlDebugging";
|
||||||
const char QBS_CONFIG_QUICK_DEBUG_KEY[] = "modules.Qt.quick.qmlDebugging";
|
const char QBS_CONFIG_QUICK_DEBUG_KEY[] = "modules.Qt.quick.qmlDebugging";
|
||||||
|
const char QBS_CONFIG_SEPARATE_DEBUG_INFO_KEY[] = "modules.cpp.separateDebugInformation";
|
||||||
const char QBS_FORCE_PROBES_KEY[] = "qbspm.forceProbes";
|
const char QBS_FORCE_PROBES_KEY[] = "qbspm.forceProbes";
|
||||||
|
|
||||||
// Icons:
|
// Icons:
|
||||||
|
Reference in New Issue
Block a user