forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/4.6'
Conflicts: qbs/modules/qtc/qtc.qbs qtcreator.pri src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp Change-Id: I2445882a270731b866b04f28ff87d161224c539a
This commit is contained in:
@@ -124,7 +124,8 @@ private:
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
QbsBuildStep::QbsBuildStep(ProjectExplorer::BuildStepList *bsl) :
|
||||
ProjectExplorer::BuildStep(bsl, Constants::QBS_BUILDSTEP_ID)
|
||||
ProjectExplorer::BuildStep(bsl, Constants::QBS_BUILDSTEP_ID),
|
||||
m_enableQmlDebugging(QtSupport::BaseQtVersion::isQmlDebuggingSupported(target()->kit()))
|
||||
{
|
||||
setDisplayName(tr("Qbs Build"));
|
||||
setQbsConfiguration(QVariantMap());
|
||||
@@ -204,6 +205,8 @@ QVariantMap QbsBuildStep::qbsConfiguration(VariableHandling variableHandling) co
|
||||
{
|
||||
QVariantMap config = m_qbsConfiguration;
|
||||
config.insert(Constants::QBS_FORCE_PROBES_KEY, m_forceProbes);
|
||||
if (m_enableQmlDebugging)
|
||||
config.insert(Constants::QBS_CONFIG_QUICK_DEBUG_KEY, true);
|
||||
if (variableHandling == ExpandVariables) {
|
||||
const Utils::MacroExpander *expander = Utils::globalMacroExpander();
|
||||
for (auto it = config.begin(), end = config.end(); it != end; ++it) {
|
||||
@@ -280,6 +283,7 @@ int QbsBuildStep::maxJobs() const
|
||||
}
|
||||
|
||||
static QString forceProbesKey() { return QLatin1String("Qbs.forceProbesKey"); }
|
||||
static QString enableQmlDebuggingKey() { return QLatin1String("Qbs.enableQmlDebuggingKey"); }
|
||||
|
||||
bool QbsBuildStep::fromMap(const QVariantMap &map)
|
||||
{
|
||||
@@ -297,6 +301,7 @@ bool QbsBuildStep::fromMap(const QVariantMap &map)
|
||||
m_qbsBuildOptions.setRemoveExistingInstallation(map.value(QBS_CLEAN_INSTALL_ROOT)
|
||||
.toBool());
|
||||
m_forceProbes = map.value(forceProbesKey()).toBool();
|
||||
m_enableQmlDebugging = map.value(enableQmlDebuggingKey()).toBool();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -313,6 +318,7 @@ QVariantMap QbsBuildStep::toMap() const
|
||||
map.insert(QBS_CLEAN_INSTALL_ROOT,
|
||||
m_qbsBuildOptions.removeExistingInstallation());
|
||||
map.insert(forceProbesKey(), m_forceProbes);
|
||||
map.insert(enableQmlDebuggingKey(), m_enableQmlDebugging);
|
||||
return map;
|
||||
}
|
||||
|
||||
@@ -412,13 +418,6 @@ QString QbsBuildStep::buildVariant() const
|
||||
return qbsConfiguration(PreserveVariables).value(Constants::QBS_CONFIG_VARIANT_KEY).toString();
|
||||
}
|
||||
|
||||
bool QbsBuildStep::isQmlDebuggingEnabled() const
|
||||
{
|
||||
QVariantMap data = qbsConfiguration(PreserveVariables);
|
||||
return data.value(Constants::QBS_CONFIG_DECLARATIVE_DEBUG_KEY, false).toBool()
|
||||
|| data.value(Constants::QBS_CONFIG_QUICK_DEBUG_KEY, false).toBool();
|
||||
}
|
||||
|
||||
void QbsBuildStep::setBuildVariant(const QString &variant)
|
||||
{
|
||||
if (m_qbsConfiguration.value(Constants::QBS_CONFIG_VARIANT_KEY).toString() == variant)
|
||||
@@ -564,7 +563,7 @@ QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step) :
|
||||
QString *errorMessage) {
|
||||
return validateProperties(edit, errorMessage);
|
||||
});
|
||||
m_ui->qmlDebuggingWarningText->setPixmap(Utils::Icons::WARNING.pixmap());
|
||||
m_ui->qmlDebuggingWarningIcon->setPixmap(Utils::Icons::WARNING.pixmap());
|
||||
|
||||
connect(m_ui->buildVariantComboBox,
|
||||
static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
|
||||
@@ -635,7 +634,7 @@ void QbsBuildStepConfigWidget::updateState()
|
||||
}
|
||||
|
||||
if (m_step->isQmlDebuggingEnabled())
|
||||
command += " Qt.declarative.qmlDebugging:true Qt.quick.qmlDebugging:true";
|
||||
command.append(Constants::QBS_CONFIG_QUICK_DEBUG_KEY).append(":true");
|
||||
m_ui->commandLineTextEdit->setPlainText(command);
|
||||
|
||||
QString summary = tr("<b>Qbs:</b> %1").arg(command);
|
||||
@@ -667,7 +666,7 @@ void QbsBuildStepConfigWidget::updatePropertyEdit(const QVariantMap &data)
|
||||
// remove data that is edited with special UIs:
|
||||
editable.remove(Constants::QBS_CONFIG_PROFILE_KEY);
|
||||
editable.remove(Constants::QBS_CONFIG_VARIANT_KEY);
|
||||
editable.remove(Constants::QBS_CONFIG_DECLARATIVE_DEBUG_KEY);
|
||||
editable.remove(Constants::QBS_CONFIG_DECLARATIVE_DEBUG_KEY); // For existing .user files
|
||||
editable.remove(Constants::QBS_CONFIG_QUICK_DEBUG_KEY);
|
||||
editable.remove(Constants::QBS_FORCE_PROBES_KEY);
|
||||
editable.remove(Constants::QBS_INSTALL_ROOT_KEY);
|
||||
@@ -788,17 +787,8 @@ void QbsBuildStepConfigWidget::applyCachedProperties()
|
||||
|
||||
void QbsBuildStepConfigWidget::linkQmlDebuggingLibraryChecked(bool checked)
|
||||
{
|
||||
QVariantMap data = m_step->qbsConfiguration(QbsBuildStep::PreserveVariables);
|
||||
if (checked) {
|
||||
data.insert(Constants::QBS_CONFIG_DECLARATIVE_DEBUG_KEY, checked);
|
||||
data.insert(Constants::QBS_CONFIG_QUICK_DEBUG_KEY, checked);
|
||||
} else {
|
||||
data.remove(Constants::QBS_CONFIG_DECLARATIVE_DEBUG_KEY);
|
||||
data.remove(Constants::QBS_CONFIG_QUICK_DEBUG_KEY);
|
||||
}
|
||||
|
||||
m_ignoreChange = true;
|
||||
m_step->setQbsConfiguration(data);
|
||||
m_step->setQmlDebuggingEnabled(checked);
|
||||
m_ignoreChange = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -44,6 +44,10 @@ class QbsBuildStep : public ProjectExplorer::BuildStep
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
// used in DebuggerRunConfigurationAspect
|
||||
Q_PROPERTY(bool linkQmlDebuggingLibrary READ isQmlDebuggingEnabled
|
||||
WRITE setQmlDebuggingEnabled NOTIFY qbsConfigurationChanged)
|
||||
|
||||
public:
|
||||
enum VariableHandling
|
||||
{
|
||||
@@ -78,7 +82,11 @@ public:
|
||||
void setForceProbes(bool force) { m_forceProbes = force; emit qbsConfigurationChanged(); }
|
||||
bool forceProbes() const { return m_forceProbes; }
|
||||
|
||||
bool isQmlDebuggingEnabled() const;
|
||||
void setQmlDebuggingEnabled(bool debug) {
|
||||
m_enableQmlDebugging = debug;
|
||||
emit qbsConfigurationChanged();
|
||||
}
|
||||
bool isQmlDebuggingEnabled() const { return m_enableQmlDebugging; }
|
||||
|
||||
signals:
|
||||
void qbsConfigurationChanged();
|
||||
@@ -116,6 +124,7 @@ private:
|
||||
QVariantMap m_qbsConfiguration;
|
||||
qbs::BuildOptions m_qbsBuildOptions;
|
||||
bool m_forceProbes = false;
|
||||
bool m_enableQmlDebugging;
|
||||
|
||||
// Temporary data:
|
||||
QStringList m_changedFiles;
|
||||
|
||||
@@ -30,6 +30,8 @@
|
||||
#include <projectexplorer/kitconfigwidget.h>
|
||||
#include <projectexplorer/kitmanager.h>
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <qbs.h>
|
||||
|
||||
#include <QLabel>
|
||||
@@ -89,11 +91,13 @@ QString QbsKitInformation::representation(const Kit *kit)
|
||||
|
||||
QVariantMap QbsKitInformation::properties(const Kit *kit)
|
||||
{
|
||||
QTC_ASSERT(kit, return QVariantMap());
|
||||
return kit->value(id()).toMap();
|
||||
}
|
||||
|
||||
void QbsKitInformation::setProperties(Kit *kit, const QVariantMap &properties)
|
||||
{
|
||||
QTC_ASSERT(kit, return);
|
||||
kit->setValue(id(), properties);
|
||||
}
|
||||
|
||||
|
||||
@@ -50,6 +50,8 @@ ProjectExplorer::FileType fileType(const qbs::ArtifactData &artifact)
|
||||
return ProjectExplorer::FileType::Form;
|
||||
if (artifact.fileTags().contains("scxml"))
|
||||
return ProjectExplorer::FileType::StateChart;
|
||||
if (artifact.fileTags().contains("qt.qml.qml"))
|
||||
return ProjectExplorer::FileType::QML;
|
||||
return ProjectExplorer::FileType::Unknown;
|
||||
}
|
||||
|
||||
@@ -101,13 +103,13 @@ QbsProjectManager::Internal::QbsGroupNode
|
||||
}
|
||||
|
||||
void setupQbsProductData(QbsProjectManager::Internal::QbsProductNode *node,
|
||||
const qbs::ProductData &prd, const qbs::Project &project)
|
||||
const qbs::ProductData &prd)
|
||||
{
|
||||
using namespace QbsProjectManager::Internal;
|
||||
|
||||
node->setEnabled(prd.isEnabled());
|
||||
|
||||
node->setDisplayName(QbsProject::productDisplayName(project, prd));
|
||||
node->setDisplayName(prd.fullDisplayName());
|
||||
node->setAbsoluteFilePathAndLine(Utils::FileName::fromString(prd.location().filePath()).parentDir(), -1);
|
||||
const QString &productPath = QFileInfo(prd.location().filePath()).absolutePath();
|
||||
|
||||
@@ -135,12 +137,11 @@ void setupQbsProductData(QbsProjectManager::Internal::QbsProductNode *node,
|
||||
setupArtifacts(genFiles, prd.generatedArtifacts());
|
||||
}
|
||||
|
||||
QbsProjectManager::Internal::QbsProductNode *
|
||||
buildProductNodeTree(const qbs::Project &project, const qbs::ProductData &prd)
|
||||
QbsProjectManager::Internal::QbsProductNode *buildProductNodeTree(const qbs::ProductData &prd)
|
||||
{
|
||||
auto result = new QbsProjectManager::Internal::QbsProductNode(prd);
|
||||
|
||||
setupQbsProductData(result, prd, project);
|
||||
setupQbsProductData(result, prd);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -160,7 +161,7 @@ void setupProjectNode(QbsProjectManager::Internal::QbsProjectNode *node, const q
|
||||
}
|
||||
|
||||
foreach (const qbs::ProductData &prd, prjData.products())
|
||||
node->addNode(buildProductNodeTree(qbsProject, prd));
|
||||
node->addNode(buildProductNodeTree(prd));
|
||||
|
||||
if (!prjData.name().isEmpty())
|
||||
node->setDisplayName(prjData.name());
|
||||
|
||||
@@ -640,18 +640,9 @@ void QbsProject::generateErrors(const qbs::ErrorInfo &e)
|
||||
|
||||
}
|
||||
|
||||
QString QbsProject::productDisplayName(const qbs::Project &project,
|
||||
const qbs::ProductData &product)
|
||||
{
|
||||
QString displayName = product.name();
|
||||
if (product.profile() != project.profile())
|
||||
displayName.append(QLatin1String(" [")).append(product.profile()).append(QLatin1Char(']'));
|
||||
return displayName;
|
||||
}
|
||||
|
||||
QString QbsProject::uniqueProductName(const qbs::ProductData &product)
|
||||
{
|
||||
return product.name() + QLatin1Char('.') + product.profile();
|
||||
return product.name() + QLatin1Char('.') + product.multiplexConfigurationId();
|
||||
}
|
||||
|
||||
void QbsProject::configureAsExampleProject(const QSet<Id> &platforms)
|
||||
@@ -1113,7 +1104,7 @@ void QbsProject::updateApplicationTargets()
|
||||
foreach (const qbs::ProductData &productData, m_projectData.allProducts()) {
|
||||
if (!productData.isEnabled() || !productData.isRunnable())
|
||||
continue;
|
||||
const QString displayName = productDisplayName(m_qbsProject, productData);
|
||||
const QString displayName = productData.fullDisplayName();
|
||||
if (productData.targetArtifacts().isEmpty()) { // No build yet.
|
||||
applications.list << BuildTargetInfo(displayName,
|
||||
FileName(),
|
||||
|
||||
@@ -101,8 +101,6 @@ public:
|
||||
bool needsSpecialDeployment() const override;
|
||||
void generateErrors(const qbs::ErrorInfo &e);
|
||||
|
||||
static QString productDisplayName(const qbs::Project &project,
|
||||
const qbs::ProductData &product);
|
||||
static QString uniqueProductName(const qbs::ProductData &product);
|
||||
|
||||
void configureAsExampleProject(const QSet<Core::Id> &platforms) final;
|
||||
|
||||
@@ -67,8 +67,8 @@ const char QBS_VARIANT_RELEASE[] = "release";
|
||||
const char QBS_CONFIG_VARIANT_KEY[] = "qbs.defaultBuildVariant";
|
||||
const char QBS_CONFIG_PROFILE_KEY[] = "qbs.profile";
|
||||
const char QBS_INSTALL_ROOT_KEY[] = "qbs.installRoot";
|
||||
const char QBS_CONFIG_DECLARATIVE_DEBUG_KEY[] = "Qt.declarative.qmlDebugging";
|
||||
const char QBS_CONFIG_QUICK_DEBUG_KEY[] = "Qt.quick.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_FORCE_PROBES_KEY[] = "qbspm.forceProbes";
|
||||
|
||||
// Icons:
|
||||
|
||||
@@ -408,7 +408,7 @@ QbsRunConfigurationFactory::availableCreators(Target *parent, CreationMode mode)
|
||||
}
|
||||
|
||||
return Utils::transform(products, [this, project](const qbs::ProductData &product) {
|
||||
const QString displayName = QbsProject::productDisplayName(project->qbsProject(), product);
|
||||
const QString displayName = product.fullDisplayName();
|
||||
const QString targetName = QbsProject::uniqueProductName(product) + rcNameSeparator() + displayName;
|
||||
return convert(displayName, targetName);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user