aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2017-02-13 15:40:59 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2017-02-15 09:00:00 +0000
commit8c6021ef7e6ff3a6b20a99cd1c1498a83ee0c25d (patch)
treedec4c5ac2e0ae9b8dc7c988ce0ad4e1af9af85c6 /src
parentfeac26d1c6573081327f4bdc4ff899a068f1f897 (diff)
QbsProjectManager: Add widget for setting the install root
... in the build settings. This makes it much easier for users to properly set the installation directory. In turn, remove the dedicated install step, which does not know about qbs.installRoot and has not had sensible functionality ever since that property was introduced. Task-number: QTCREATORBUG-17198 Change-Id: Id968672f4365e75da437f73ec15bb5e32599bda3 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp60
-rw-r--r--src/plugins/qbsprojectmanager/qbsbuildconfiguration.h4
-rw-r--r--src/plugins/qbsprojectmanager/qbsbuildstep.cpp55
-rw-r--r--src/plugins/qbsprojectmanager/qbsbuildstep.h2
-rw-r--r--src/plugins/qbsprojectmanager/qbsbuildstepconfigwidget.ui132
-rw-r--r--src/plugins/qbsprojectmanager/qbscleanstep.cpp3
-rw-r--r--src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.cpp6
-rw-r--r--src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.h4
-rw-r--r--src/plugins/qbsprojectmanager/qbsinstallstep.cpp388
-rw-r--r--src/plugins/qbsprojectmanager/qbsinstallstep.h137
-rw-r--r--src/plugins/qbsprojectmanager/qbsinstallstepconfigwidget.ui128
-rw-r--r--src/plugins/qbsprojectmanager/qbsprojectmanager.pro3
-rw-r--r--src/plugins/qbsprojectmanager/qbsprojectmanager.qbs3
-rw-r--r--src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h1
-rw-r--r--src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp2
-rw-r--r--src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp44
-rw-r--r--src/plugins/qbsprojectmanager/qbsrunconfiguration.h5
m---------src/shared/qbs0
18 files changed, 179 insertions, 798 deletions
diff --git a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp
index e1a21eee3f1..4313b062f26 100644
--- a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp
+++ b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp
@@ -28,7 +28,6 @@
#include "qbsbuildconfigurationwidget.h"
#include "qbsbuildstep.h"
#include "qbscleanstep.h"
-#include "qbsinstallstep.h"
#include "qbsproject.h"
#include "qbsprojectmanagerconstants.h"
#include "qbsprojectmanagersettings.h"
@@ -200,38 +199,39 @@ void QbsBuildConfiguration::emitBuildTypeChanged()
emit buildTypeChanged();
}
+QString QbsBuildConfiguration::configurationName() const
+{
+ const QString profileName = QbsManager::instance()->profileForKit(target()->kit());
+ const QString buildVariant = qbsConfiguration()
+ .value(QLatin1String(Constants::QBS_CONFIG_VARIANT_KEY)).toString();
+ return profileName + QLatin1Char('-') + buildVariant;
+}
+
class StepProxy
{
public:
StepProxy(const BuildStep *buildStep)
: m_qbsBuildStep(qobject_cast<const QbsBuildStep *>(buildStep))
, m_qbsCleanStep(qobject_cast<const QbsCleanStep *>(buildStep))
- , m_qbsInstallStep(qobject_cast<const QbsInstallStep *>(buildStep))
{
}
QString command() const {
if (m_qbsBuildStep)
return QLatin1String("build");
- if (m_qbsCleanStep)
- return QLatin1String("clean");
- return QLatin1String("install");
+ return QLatin1String("clean");
}
bool dryRun() const {
if (m_qbsBuildStep)
return false;
- if (m_qbsCleanStep)
- return m_qbsCleanStep->dryRun();
- return m_qbsInstallStep->dryRun();
+ return m_qbsCleanStep->dryRun();
}
bool keepGoing() const {
if (m_qbsBuildStep)
return m_qbsBuildStep->keepGoing();
- if (m_qbsCleanStep)
- return m_qbsCleanStep->keepGoing();
- return m_qbsInstallStep->keepGoing();
+ return m_qbsCleanStep->keepGoing();
}
bool showCommandLines() const {
@@ -245,8 +245,6 @@ public:
bool cleanInstallRoot() const {
if (m_qbsBuildStep)
return m_qbsBuildStep->cleanInstallRoot();
- if (m_qbsInstallStep)
- return m_qbsInstallStep->removeFirst();
return false;
}
@@ -254,17 +252,18 @@ public:
return m_qbsBuildStep ? m_qbsBuildStep->maxJobs() : 0;
}
- QString installRoot() const {
- return m_qbsInstallStep ? m_qbsInstallStep->absoluteInstallRoot() : QString();
+ Utils::FileName installRoot() const {
+ if (m_qbsBuildStep && m_qbsBuildStep->hasCustomInstallRoot())
+ return m_qbsBuildStep->installRoot();
+ return Utils::FileName();
}
private:
const QbsBuildStep * const m_qbsBuildStep;
const QbsCleanStep * const m_qbsCleanStep;
- const QbsInstallStep * const m_qbsInstallStep;
};
-QString QbsBuildConfiguration::equivalentCommandLine(const BuildStep *buildStep)
+QString QbsBuildConfiguration::equivalentCommandLine(const BuildStep *buildStep) const
{
QString commandLine;
const QString qbsInstallDir = QString::fromLocal8Bit(qgetenv("QBS_INSTALL_DIR"));
@@ -274,12 +273,8 @@ QString QbsBuildConfiguration::equivalentCommandLine(const BuildStep *buildStep)
Utils::QtcProcess::addArg(&commandLine, QDir::toNativeSeparators(qbsFilePath));
const StepProxy stepProxy(buildStep);
Utils::QtcProcess::addArg(&commandLine, stepProxy.command());
- const QbsBuildConfiguration * const buildConfig = qobject_cast<QbsBuildConfiguration *>(
- buildStep->project()->activeTarget()->activeBuildConfiguration());
- if (buildConfig) {
- const QString buildDir = buildConfig->buildDirectory().toUserOutput();
- Utils::QtcProcess::addArgs(&commandLine, QStringList({ "-d", buildDir }));
- }
+ const QString buildDir = buildDirectory().toUserOutput();
+ Utils::QtcProcess::addArgs(&commandLine, QStringList({ "-d", buildDir }));
Utils::QtcProcess::addArgs(&commandLine, QStringList("-f")
<< buildStep->project()->projectFilePath().toUserOutput());
if (QbsProjectManagerSettings::useCreatorSettingsDirForQbs()) {
@@ -302,19 +297,16 @@ QString QbsBuildConfiguration::equivalentCommandLine(const BuildStep *buildStep)
Utils::QtcProcess::addArgs(&commandLine, QStringList({ "--jobs",
QString::number(jobCount) }));
}
- const QString installRoot = stepProxy.installRoot();
- if (!installRoot.isEmpty()) {
- Utils::QtcProcess::addArgs(&commandLine, QStringList({ "--install-root", installRoot }));
- }
-
const QString profileName = QbsManager::instance()->profileForKit(buildStep->target()->kit());
- if (buildConfig) {
- const QString buildVariant = buildConfig->qbsConfiguration()
- .value(QLatin1String(Constants::QBS_CONFIG_VARIANT_KEY)).toString();
- const QString configName = profileName + QLatin1Char('-') + buildVariant;
- Utils::QtcProcess::addArg(&commandLine, configName);
- Utils::QtcProcess::addArg(&commandLine, QLatin1String(Constants::QBS_CONFIG_VARIANT_KEY)
+ const QString buildVariant = qbsConfiguration()
+ .value(QLatin1String(Constants::QBS_CONFIG_VARIANT_KEY)).toString();
+ Utils::QtcProcess::addArg(&commandLine, configurationName());
+ Utils::QtcProcess::addArg(&commandLine, QLatin1String(Constants::QBS_CONFIG_VARIANT_KEY)
+ QLatin1Char(':') + buildVariant);
+ const Utils::FileName installRoot = stepProxy.installRoot();
+ if (!installRoot.isEmpty()) {
+ Utils::QtcProcess::addArg(&commandLine, QLatin1String(Constants::QBS_INSTALL_ROOT_KEY)
+ + QLatin1Char(':') + installRoot.toUserOutput());
}
Utils::QtcProcess::addArg(&commandLine, QLatin1String("profile:") + profileName);
diff --git a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h
index c399e14fffa..08313cc396d 100644
--- a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h
+++ b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h
@@ -76,7 +76,9 @@ public:
void emitBuildTypeChanged();
- static QString equivalentCommandLine(const ProjectExplorer::BuildStep *buildStep);
+ QString configurationName() const;
+
+ QString equivalentCommandLine(const ProjectExplorer::BuildStep *buildStep) const;
signals:
void qbsConfigurationChanged();
diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp
index 5e1ffa775ae..0627a3b4796 100644
--- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp
+++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp
@@ -82,6 +82,8 @@ private:
void changeJobCount(int count);
void changeInstall(bool install);
void changeCleanInstallRoot(bool clean);
+ void changeUseDefaultInstallDir(bool useDefault);
+ void changeInstallDir(const QString &dir);
void changeForceProbes(bool forceProbes);
void applyCachedProperties();
@@ -259,6 +261,24 @@ bool QbsBuildStep::cleanInstallRoot() const
return m_qbsBuildOptions.removeExistingInstallation();
}
+bool QbsBuildStep::hasCustomInstallRoot() const
+{
+ return m_qbsConfiguration.contains(QLatin1String(Constants::QBS_INSTALL_ROOT_KEY));
+}
+
+Utils::FileName QbsBuildStep::installRoot() const
+{
+ Utils::FileName root = Utils::FileName::fromString(m_qbsConfiguration
+ .value(QLatin1String(Constants::QBS_INSTALL_ROOT_KEY)).toString());
+ if (root.isNull()) {
+ const QbsBuildConfiguration * const bc
+ = static_cast<QbsBuildConfiguration *>(buildConfiguration());
+ root = bc->buildDirectory().appendPath(bc->configurationName())
+ .appendPath(qbs::InstallOptions::defaultInstallRoot());
+ }
+ return root;
+}
+
int QbsBuildStep::maxJobs() const
{
if (m_qbsBuildOptions.maxJobCount() > 0)
@@ -538,6 +558,7 @@ QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step) :
m_ui = new Ui::QbsBuildStepConfigWidget;
m_ui->setupUi(this);
+ m_ui->installDirChooser->setExpectedKind(Utils::PathChooser::Directory);
auto chooser = new Core::VariableChooser(this);
chooser->addSupportedWidget(m_ui->propertyEdit);
@@ -560,6 +581,10 @@ QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step) :
&QbsBuildStepConfigWidget::changeInstall);
connect(m_ui->cleanInstallRootCheckBox, &QCheckBox::toggled, this,
&QbsBuildStepConfigWidget::changeCleanInstallRoot);
+ connect(m_ui->defaultInstallDirCheckBox, &QCheckBox::toggled, this,
+ &QbsBuildStepConfigWidget::changeUseDefaultInstallDir);
+ connect(m_ui->installDirChooser, &Utils::PathChooser::rawPathChanged, this,
+ &QbsBuildStepConfigWidget::changeInstallDir);
connect(m_ui->forceProbesCheckBox, &QCheckBox::toggled, this,
&QbsBuildStepConfigWidget::changeForceProbes);
connect(m_ui->qmlDebuggingLibraryCheckBox, &QAbstractButton::toggled,
@@ -595,6 +620,8 @@ void QbsBuildStepConfigWidget::updateState()
m_ui->forceProbesCheckBox->setChecked(m_step->forceProbes());
updatePropertyEdit(m_step->qbsConfiguration(QbsBuildStep::PreserveVariables));
m_ui->qmlDebuggingLibraryCheckBox->setChecked(m_step->isQmlDebuggingEnabled());
+ m_ui->installDirChooser->setFileName(m_step->installRoot());
+ m_ui->defaultInstallDirCheckBox->setChecked(!m_step->hasCustomInstallRoot());
}
updateQmlDebuggingOption();
@@ -602,7 +629,8 @@ void QbsBuildStepConfigWidget::updateState()
const QString buildVariant = m_step->buildVariant();
const int idx = (buildVariant == QLatin1String(Constants::QBS_VARIANT_DEBUG)) ? 0 : 1;
m_ui->buildVariantComboBox->setCurrentIndex(idx);
- QString command = QbsBuildConfiguration::equivalentCommandLine(m_step);
+ QString command = static_cast<QbsBuildConfiguration *>(m_step->buildConfiguration())
+ ->equivalentCommandLine(m_step);
for (int i = 0; i < m_propertyCache.count(); ++i) {
command += QLatin1Char(' ') + m_propertyCache.at(i).name
@@ -645,6 +673,7 @@ void QbsBuildStepConfigWidget::updatePropertyEdit(const QVariantMap &data)
editable.remove(QLatin1String(Constants::QBS_CONFIG_DECLARATIVE_DEBUG_KEY));
editable.remove(QLatin1String(Constants::QBS_CONFIG_QUICK_DEBUG_KEY));
editable.remove(QLatin1String(Constants::QBS_FORCE_PROBES_KEY));
+ editable.remove(QLatin1String(Constants::QBS_INSTALL_ROOT_KEY));
QStringList propertyList;
for (QVariantMap::const_iterator i = editable.constBegin(); i != editable.constEnd(); ++i)
@@ -700,6 +729,30 @@ void QbsBuildStepConfigWidget::changeCleanInstallRoot(bool clean)
m_ignoreChange = false;
}
+void QbsBuildStepConfigWidget::changeUseDefaultInstallDir(bool useDefault)
+{
+ m_ignoreChange = true;
+ QVariantMap config = m_step->qbsConfiguration(QbsBuildStep::PreserveVariables);
+ m_ui->installDirChooser->setEnabled(!useDefault);
+ if (useDefault)
+ config.remove(Constants::QBS_INSTALL_ROOT_KEY);
+ else
+ config.insert(Constants::QBS_INSTALL_ROOT_KEY, m_ui->installDirChooser->rawPath());
+ m_step->setQbsConfiguration(config);
+ m_ignoreChange = false;
+}
+
+void QbsBuildStepConfigWidget::changeInstallDir(const QString &dir)
+{
+ if (!m_step->hasCustomInstallRoot())
+ return;
+ m_ignoreChange = true;
+ QVariantMap config = m_step->qbsConfiguration(QbsBuildStep::PreserveVariables);
+ config.insert(Constants::QBS_INSTALL_ROOT_KEY, dir);
+ m_step->setQbsConfiguration(config);
+ m_ignoreChange = false;
+}
+
void QbsBuildStepConfigWidget::changeForceProbes(bool forceProbes)
{
m_ignoreChange = true;
diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.h b/src/plugins/qbsprojectmanager/qbsbuildstep.h
index af1cf9ef2eb..86823475896 100644
--- a/src/plugins/qbsprojectmanager/qbsbuildstep.h
+++ b/src/plugins/qbsprojectmanager/qbsbuildstep.h
@@ -71,6 +71,8 @@ public:
bool showCommandLines() const;
bool install() const;
bool cleanInstallRoot() const;
+ bool hasCustomInstallRoot() const;
+ Utils::FileName installRoot() const;
int maxJobs() const;
QString buildVariant() const;
diff --git a/src/plugins/qbsprojectmanager/qbsbuildstepconfigwidget.ui b/src/plugins/qbsprojectmanager/qbsbuildstepconfigwidget.ui
index 83319a163e7..562dcc3e859 100644
--- a/src/plugins/qbsprojectmanager/qbsbuildstepconfigwidget.ui
+++ b/src/plugins/qbsprojectmanager/qbsbuildstepconfigwidget.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>730</width>
- <height>256</height>
+ <width>809</width>
+ <height>416</height>
</rect>
</property>
<layout class="QFormLayout" name="formLayout">
@@ -157,46 +157,28 @@
<item row="4" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
- <layout class="QGridLayout" name="gridLayout_2">
- <item row="0" column="0">
- <widget class="QCheckBox" name="keepGoingCheckBox">
- <property name="toolTip">
- <string>Keep going when errors occur (if at all possible).</string>
- </property>
- <property name="text">
- <string>Keep going</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QCheckBox" name="showCommandLinesCheckBox">
- <property name="text">
- <string>Show command lines</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QCheckBox" name="installCheckBox">
- <property name="text">
- <string>Install</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QCheckBox" name="cleanInstallRootCheckBox">
- <property name="text">
- <string>Clean install root</string>
- </property>
- </widget>
- </item>
- <item row="0" column="2">
- <widget class="QCheckBox" name="forceProbesCheckBox">
- <property name="text">
- <string>Force probes</string>
- </property>
- </widget>
- </item>
- </layout>
+ <widget class="QCheckBox" name="keepGoingCheckBox">
+ <property name="toolTip">
+ <string>Keep going when errors occur (if at all possible).</string>
+ </property>
+ <property name="text">
+ <string>Keep going</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="showCommandLinesCheckBox">
+ <property name="text">
+ <string>Show command lines</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="forceProbesCheckBox">
+ <property name="text">
+ <string>Force probes</string>
+ </property>
+ </widget>
</item>
<item>
<spacer name="checkBoxSpacer">
@@ -214,6 +196,61 @@
</layout>
</item>
<item row="5" column="0">
+ <widget class="QLabel" name="installFlagsLabel">
+ <property name="text">
+ <string>Installation flags:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="1">
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
+ <widget class="QCheckBox" name="installCheckBox">
+ <property name="text">
+ <string>Install</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="cleanInstallRootCheckBox">
+ <property name="text">
+ <string>Clean install root</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="defaultInstallDirCheckBox">
+ <property name="text">
+ <string>Use default location</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item row="6" column="0">
+ <widget class="QLabel" name="installDirLabel">
+ <property name="text">
+ <string>Installation directory:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="1">
+ <widget class="Utils::PathChooser" name="installDirChooser"/>
+ </item>
+ <item row="7" column="0">
<widget class="QLabel" name="commandLineKeyLabel">
<property name="text">
<string>Equivalent command line:</string>
@@ -223,7 +260,7 @@
</property>
</widget>
</item>
- <item row="5" column="1">
+ <item row="7" column="1">
<widget class="QPlainTextEdit" name="commandLineTextEdit">
<property name="undoRedoEnabled">
<bool>false</bool>
@@ -248,6 +285,10 @@
<zorder>flagsLabel</zorder>
<zorder>jobsLabel</zorder>
<zorder>commandLineTextEdit</zorder>
+ <zorder>installFlagsLabel</zorder>
+ <zorder>defaultInstallDirCheckBox</zorder>
+ <zorder>installDirChooser</zorder>
+ <zorder>installDirLabel</zorder>
</widget>
<customwidgets>
<customwidget>
@@ -255,6 +296,11 @@
<extends>QLineEdit</extends>
<header location="global">utils/fancylineedit.h</header>
</customwidget>
+ <customwidget>
+ <class>Utils::PathChooser</class>
+ <extends>QLineEdit</extends>
+ <header location="global">utils/pathchooser.h</header>
+ </customwidget>
</customwidgets>
<tabstops>
<tabstop>buildVariantComboBox</tabstop>
diff --git a/src/plugins/qbsprojectmanager/qbscleanstep.cpp b/src/plugins/qbsprojectmanager/qbscleanstep.cpp
index 02ae120956d..e693a7bcc49 100644
--- a/src/plugins/qbsprojectmanager/qbscleanstep.cpp
+++ b/src/plugins/qbsprojectmanager/qbscleanstep.cpp
@@ -271,7 +271,8 @@ void QbsCleanStepConfigWidget::updateState()
m_ui->dryRunCheckBox->setChecked(m_step->dryRun());
m_ui->keepGoingCheckBox->setChecked(m_step->keepGoing());
- QString command = QbsBuildConfiguration::equivalentCommandLine(m_step);
+ QString command = static_cast<QbsBuildConfiguration *>(m_step->buildConfiguration())
+ ->equivalentCommandLine(m_step);
m_ui->commandLineTextEdit->setPlainText(command);
QString summary = tr("<b>Qbs:</b> %1").arg(command);
diff --git a/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.cpp b/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.cpp
index cbadd8f871b..b91ece82db9 100644
--- a/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.cpp
+++ b/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.cpp
@@ -25,7 +25,6 @@
#include "qbsdeployconfigurationfactory.h"
-#include "qbsinstallstep.h"
#include "qbsproject.h"
#include <projectexplorer/buildsteplist.h>
@@ -53,11 +52,6 @@ static Core::Id genericQbsDeployConfigurationId()
// QbsDeployConfiguration:
// --------------------------------------------------------------------
-QbsInstallStep *QbsDeployConfiguration::qbsInstallStep() const
-{
- return stepList()->firstOfType<QbsInstallStep>();
-}
-
QbsDeployConfiguration::QbsDeployConfiguration(ProjectExplorer::Target *target, Core::Id id) :
ProjectExplorer::DeployConfiguration(target, id)
{ }
diff --git a/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.h b/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.h
index 5f12cc2820b..91ca997e232 100644
--- a/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.h
+++ b/src/plugins/qbsprojectmanager/qbsdeployconfigurationfactory.h
@@ -33,15 +33,11 @@ namespace QbsProjectManager {
namespace Internal {
class QbsDeployConfigurationFactory;
-class QbsInstallStep;
class QbsDeployConfiguration : public ProjectExplorer::DeployConfiguration
{
Q_OBJECT
-public:
- QbsInstallStep *qbsInstallStep() const;
-
private:
QbsDeployConfiguration(ProjectExplorer::Target *target, Core::Id id);
QbsDeployConfiguration(ProjectExplorer::Target *target,
diff --git a/src/plugins/qbsprojectmanager/qbsinstallstep.cpp b/src/plugins/qbsprojectmanager/qbsinstallstep.cpp
deleted file mode 100644
index 87e16ead043..00000000000
--- a/src/plugins/qbsprojectmanager/qbsinstallstep.cpp
+++ /dev/null
@@ -1,388 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt Creator.
-**
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-****************************************************************************/
-
-#include "qbsinstallstep.h"
-
-#include "qbsbuildconfiguration.h"
-#include "qbsproject.h"
-#include "qbsprojectmanagerconstants.h"
-
-#include "ui_qbsinstallstepconfigwidget.h"
-
-#include <coreplugin/icore.h>
-#include <projectexplorer/buildsteplist.h>
-#include <projectexplorer/deployconfiguration.h>
-#include <projectexplorer/kit.h>
-#include <projectexplorer/projectexplorerconstants.h>
-#include <projectexplorer/target.h>
-#include <utils/qtcassert.h>
-
-#include <QFileInfo>
-
-// --------------------------------------------------------------------
-// Constants:
-// --------------------------------------------------------------------
-
-static const char QBS_INSTALL_ROOT[] = "Qbs.InstallRoot";
-static const char QBS_REMOVE_FIRST[] = "Qbs.RemoveFirst";
-static const char QBS_DRY_RUN[] = "Qbs.DryRun";
-static const char QBS_KEEP_GOING[] = "Qbs.DryKeepGoing";
-
-namespace QbsProjectManager {
-namespace Internal {
-
-// --------------------------------------------------------------------
-// QbsInstallStep:
-// --------------------------------------------------------------------
-
-QbsInstallStep::QbsInstallStep(ProjectExplorer::BuildStepList *bsl) :
- ProjectExplorer::BuildStep(bsl, Core::Id(Constants::QBS_INSTALLSTEP_ID)),
- m_job(0), m_showCompilerOutput(true), m_parser(0)
-{
- setDisplayName(tr("Qbs Install"));
-}
-
-QbsInstallStep::QbsInstallStep(ProjectExplorer::BuildStepList *bsl, const QbsInstallStep *other) :
- ProjectExplorer::BuildStep(bsl, Core::Id(Constants::QBS_INSTALLSTEP_ID)),
- m_qbsInstallOptions(other->m_qbsInstallOptions), m_job(0),
- m_showCompilerOutput(other->m_showCompilerOutput), m_parser(0)
-{ }
-
-QbsInstallStep::~QbsInstallStep()
-{
- cancel();
- if (m_job)
- m_job->deleteLater();
- m_job = 0;
-}
-
-bool QbsInstallStep::init(QList<const BuildStep *> &earlierSteps)
-{
- Q_UNUSED(earlierSteps);
- QTC_ASSERT(!static_cast<QbsProject *>(project())->isParsing() && !m_job, return false);
- return true;
-}
-
-void QbsInstallStep::run(QFutureInterface<bool> &fi)
-{
- m_fi = &fi;
-
- QbsProject *pro = static_cast<QbsProject *>(project());
- m_job = pro->install(m_qbsInstallOptions);
-
- if (!m_job) {
- reportRunResult(*m_fi, false);
- return;
- }
-
- m_progressBase = 0;
-
- connect(m_job, &qbs::AbstractJob::finished, this, &QbsInstallStep::installDone);
- connect(m_job, &qbs::AbstractJob::taskStarted,
- this, &QbsInstallStep::handleTaskStarted);
- connect(m_job, &qbs::AbstractJob::taskProgress,
- this, &QbsInstallStep::handleProgress);
-}
-
-ProjectExplorer::BuildStepConfigWidget *QbsInstallStep::createConfigWidget()
-{
- return new QbsInstallStepConfigWidget(this);
-}
-
-bool QbsInstallStep::runInGuiThread() const
-{
- return true;
-}
-
-void QbsInstallStep::cancel()
-{
- if (m_job)
- m_job->cancel();
-}
-
-QString QbsInstallStep::installRoot() const
-{
- if (!m_qbsInstallOptions.installRoot().isEmpty())
- return m_qbsInstallOptions.installRoot();
-
- return qbs::InstallOptions::defaultInstallRoot();
-}
-
-QString QbsInstallStep::absoluteInstallRoot() const
-{
- const qbs::ProjectData data = static_cast<QbsProject *>(project())->qbsProjectData();
- QString path = installRoot();
- if (data.isValid() && !data.buildDirectory().isEmpty() && !path.isEmpty())
- path = QDir(data.buildDirectory()).absoluteFilePath(path);
- return path;
-}
-
-bool QbsInstallStep::removeFirst() const
-{
- return m_qbsInstallOptions.removeExistingInstallation();
-}
-
-bool QbsInstallStep::dryRun() const
-{
- return m_qbsInstallOptions.dryRun();
-}
-
-bool QbsInstallStep::keepGoing() const
-{
- return m_qbsInstallOptions.keepGoing();
-}
-
-bool QbsInstallStep::fromMap(const QVariantMap &map)
-{
- if (!ProjectExplorer::BuildStep::fromMap(map))
- return false;
-
- setInstallRoot(map.value(QLatin1String(QBS_INSTALL_ROOT)).toString());
- m_qbsInstallOptions.setRemoveExistingInstallation(map.value(QLatin1String(QBS_REMOVE_FIRST), false).toBool());
- m_qbsInstallOptions.setDryRun(map.value(QLatin1String(QBS_DRY_RUN), false).toBool());
- m_qbsInstallOptions.setKeepGoing(map.value(QLatin1String(QBS_KEEP_GOING), false).toBool());
-
- return true;
-}
-
-QVariantMap QbsInstallStep::toMap() const
-{
- QVariantMap map = ProjectExplorer::BuildStep::toMap();
- map.insert(QLatin1String(QBS_INSTALL_ROOT), m_qbsInstallOptions.installRoot());
- map.insert(QLatin1String(QBS_REMOVE_FIRST), m_qbsInstallOptions.removeExistingInstallation());
- map.insert(QLatin1String(QBS_DRY_RUN), m_qbsInstallOptions.dryRun());
- map.insert(QLatin1String(QBS_KEEP_GOING), m_qbsInstallOptions.keepGoing());
-
- return map;
-}
-
-qbs::InstallOptions QbsInstallStep::installOptions() const
-{
- return m_qbsInstallOptions;
-}
-
-void QbsInstallStep::installDone(bool success)
-{
- // Report errors:
- foreach (const qbs::ErrorItem &item, m_job->error().items()) {
- createTaskAndOutput(ProjectExplorer::Task::Error, item.description(),
- item.codeLocation().filePath(), item.codeLocation().line());
- }
-
- QTC_ASSERT(m_fi, return);
- reportRunResult(*m_fi, success);
- m_fi = 0; // do not delete, it is not ours
- m_job->deleteLater();
- m_job = 0;
-}
-
-void QbsInstallStep::handleTaskStarted(const QString &desciption, int max)
-{
- Q_UNUSED(desciption);
- QTC_ASSERT(m_fi, return);
- m_progressBase = m_fi->progressValue();
- m_fi->setProgressRange(0, m_progressBase + max);
-}
-
-void QbsInstallStep::handleProgress(int value)
-{
- QTC_ASSERT(m_fi, return);
- m_fi->setProgressValue(m_progressBase + value);
-}
-
-void QbsInstallStep::createTaskAndOutput(ProjectExplorer::Task::TaskType type,
- const QString &message, const QString &file, int line)
-{
- ProjectExplorer::Task task = ProjectExplorer::Task(type, message,
- Utils::FileName::fromString(file), line,
- ProjectExplorer::Constants::TASK_CATEGORY_COMPILE);
- emit addTask(task, 1);
- emit addOutput(message, OutputFormat::Stdout);
-}
-
-void QbsInstallStep::setInstallRoot(const QString &ir)
-{
- if (m_qbsInstallOptions.installRoot() == ir)
- return;
- m_qbsInstallOptions.setInstallRoot(ir);
- emit changed();
-}
-
-void QbsInstallStep::setRemoveFirst(bool rf)
-{
- if (m_qbsInstallOptions.removeExistingInstallation() == rf)
- return;
- m_qbsInstallOptions.setRemoveExistingInstallation(rf);
- emit changed();
-}
-
-void QbsInstallStep::setDryRun(bool dr)
-{
- if (m_qbsInstallOptions.dryRun() == dr)
- return;
- m_qbsInstallOptions.setDryRun(dr);
- emit changed();
-}
-
-void QbsInstallStep::setKeepGoing(bool kg)
-{
- if (m_qbsInstallOptions.keepGoing() == kg)
- return;
- m_qbsInstallOptions.setKeepGoing(kg);
- emit changed();
-}
-
-// --------------------------------------------------------------------
-// QbsInstallStepConfigWidget:
-// --------------------------------------------------------------------
-
-QbsInstallStepConfigWidget::QbsInstallStepConfigWidget(QbsInstallStep *step) :
- m_step(step), m_ignoreChange(false)
-{
- connect(m_step, &ProjectExplorer::ProjectConfiguration::displayNameChanged,
- this, &QbsInstallStepConfigWidget::updateState);
- connect(m_step, &QbsInstallStep::changed,
- this, &QbsInstallStepConfigWidget::updateState);
-
- setContentsMargins(0, 0, 0, 0);
-
- QbsProject *project = static_cast<QbsProject *>(m_step->project());
-
- m_ui = new Ui::QbsInstallStepConfigWidget;
- m_ui->setupUi(this);
-
- m_ui->installRootChooser->setPromptDialogTitle(tr("Qbs Install Prefix"));
- m_ui->installRootChooser->setExpectedKind(Utils::PathChooser::Directory);
- m_ui->installRootChooser->setHistoryCompleter(QLatin1String("Qbs.InstallRoot.History"));
-
- connect(m_ui->installRootChooser, &Utils::PathChooser::rawPathChanged, this,
- &QbsInstallStepConfigWidget::changeInstallRoot);
- connect(m_ui->removeFirstCheckBox, &QAbstractButton::toggled,
- this, &QbsInstallStepConfigWidget::changeRemoveFirst);
- connect(m_ui->dryRunCheckBox, &QAbstractButton::toggled,
- this, &QbsInstallStepConfigWidget::changeDryRun);
- connect(m_ui->keepGoingCheckBox, &QAbstractButton::toggled,
- this, &QbsInstallStepConfigWidget::changeKeepGoing);
-
- connect(project, &QbsProject::projectParsingDone,
- this, &QbsInstallStepConfigWidget::updateState);
-
- updateState();
-}
-
-QbsInstallStepConfigWidget::~QbsInstallStepConfigWidget()
-{
- delete m_ui;
-}
-
-QString QbsInstallStepConfigWidget::summaryText() const
-{
- return m_summary;
-}
-
-QString QbsInstallStepConfigWidget::displayName() const
-{
- return m_step->displayName();
-}
-
-void QbsInstallStepConfigWidget::updateState()
-{
- if (!m_ignoreChange) {
- m_ui->installRootChooser->setPath(m_step->installRoot());
- m_ui->removeFirstCheckBox->setChecked(m_step->removeFirst());
- m_ui->dryRunCheckBox->setChecked(m_step->dryRun());
- m_ui->keepGoingCheckBox->setChecked(m_step->keepGoing());
- }
-
- m_ui->installRootChooser->setBaseFileName(m_step->target()->activeBuildConfiguration()->buildDirectory());
-
- QString command = QbsBuildConfiguration::equivalentCommandLine(m_step);
- m_ui->commandLineTextEdit->setPlainText(command);
-
- QString summary = tr("<b>Qbs:</b> %1").arg(command);
- if (m_summary != summary) {
- m_summary = summary;
- emit updateSummary();
- }
-}
-
-void QbsInstallStepConfigWidget::changeInstallRoot()
-{
- const QString path = m_ui->installRootChooser->path();
- if (m_step->installRoot() == path)
- return;
-
- m_ignoreChange = true;
- m_step->setInstallRoot(path);
- m_ignoreChange = false;
-}
-
-void QbsInstallStepConfigWidget::changeRemoveFirst(bool rf)
-{
- m_step->setRemoveFirst(rf);
-}
-
-void QbsInstallStepConfigWidget::changeDryRun(bool dr)
-{
- m_step->setDryRun(dr);
-}
-
-void QbsInstallStepConfigWidget::changeKeepGoing(bool kg)
-{
- m_step->setKeepGoing(kg);
-}
-
-// --------------------------------------------------------------------
-// QbsInstallStepFactory:
-// --------------------------------------------------------------------
-
-QbsInstallStepFactory::QbsInstallStepFactory(QObject *parent) :
- ProjectExplorer::IBuildStepFactory(parent)
-{ }
-
-QList<ProjectExplorer::BuildStepInfo> QbsInstallStepFactory::availableSteps(ProjectExplorer::BuildStepList *parent) const
-{
- if (parent->id() == ProjectExplorer::Constants::BUILDSTEPS_DEPLOY
- && qobject_cast<ProjectExplorer::DeployConfiguration *>(parent->parent())
- && qobject_cast<QbsProject *>(parent->target()->project()))
- return {{ Constants::QBS_INSTALLSTEP_ID, tr("Qbs Install") }};
- return {};
-}
-
-ProjectExplorer::BuildStep *QbsInstallStepFactory::create(ProjectExplorer::BuildStepList *parent,
- const Core::Id id)
-{
- Q_UNUSED(id);
- return new QbsInstallStep(parent);
-}
-
-ProjectExplorer::BuildStep *QbsInstallStepFactory::clone(ProjectExplorer::BuildStepList *parent,
- ProjectExplorer::BuildStep *product)
-{
- return new QbsInstallStep(parent, static_cast<QbsInstallStep *>(product));
-}
-
-} // namespace Internal
-} // namespace QbsProjectManager
diff --git a/src/plugins/qbsprojectmanager/qbsinstallstep.h b/src/plugins/qbsprojectmanager/qbsinstallstep.h
deleted file mode 100644
index 609a2099dc1..00000000000
--- a/src/plugins/qbsprojectmanager/qbsinstallstep.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt Creator.
-**
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-****************************************************************************/
-
-#pragma once
-
-#include "qbsbuildconfiguration.h"
-
-#include <projectexplorer/buildstep.h>
-#include <projectexplorer/task.h>
-
-#include <qbs.h>
-
-namespace QbsProjectManager {
-namespace Internal {
-
-class QbsInstallStepConfigWidget;
-
-class QbsInstallStep : public ProjectExplorer::BuildStep
-{
- Q_OBJECT
-
-public:
- explicit QbsInstallStep(ProjectExplorer::BuildStepList *bsl);
- QbsInstallStep(ProjectExplorer::BuildStepList *bsl, const QbsInstallStep *other);
- ~QbsInstallStep() override;
-
- bool init(QList<const BuildStep *> &earlierSteps) override;
-
- void run(QFutureInterface<bool> &fi) override;
-
- ProjectExplorer::BuildStepConfigWidget *createConfigWidget() override;
-
- bool runInGuiThread() const override;
- void cancel() override;
-
- bool fromMap(const QVariantMap &map) override;
- QVariantMap toMap() const override;
-
- qbs::InstallOptions installOptions() const;
- QString installRoot() const;
- QString absoluteInstallRoot() const;
- bool removeFirst() const;
- bool dryRun() const;
- bool keepGoing() const;
-
-signals:
- void changed();
-
-private:
- void installDone(bool success);
- void handleTaskStarted(const QString &desciption, int max);
- void handleProgress(int value);
-
- void createTaskAndOutput(ProjectExplorer::Task::TaskType type,
- const QString &message, const QString &file, int line);
-
- void setInstallRoot(const QString &ir);
- void setRemoveFirst(bool rf);
- void setDryRun(bool dr);
- void setKeepGoing(bool kg);
-
- qbs::InstallOptions m_qbsInstallOptions;
-
- QFutureInterface<bool> *m_fi;
- qbs::InstallJob *m_job;
- int m_progressBase;
- bool m_showCompilerOutput;
- ProjectExplorer::IOutputParser *m_parser;
-
- friend class QbsInstallStepConfigWidget;
-};
-
-namespace Ui { class QbsInstallStepConfigWidget; }
-
-class QbsInstallStepConfigWidget : public ProjectExplorer::BuildStepConfigWidget
-{
- Q_OBJECT
-public:
- QbsInstallStepConfigWidget(QbsInstallStep *step);
- ~QbsInstallStepConfigWidget();
- QString summaryText() const;
- QString displayName() const;
-
-private:
- void updateState();
-
- void changeInstallRoot();
- void changeRemoveFirst(bool rf);
- void changeDryRun(bool dr);
- void changeKeepGoing(bool kg);
-
-private:
- Ui::QbsInstallStepConfigWidget *m_ui;
-
- QbsInstallStep *m_step;
- QString m_summary;
- bool m_ignoreChange;
-};
-
-class QbsInstallStepFactory : public ProjectExplorer::IBuildStepFactory
-{
- Q_OBJECT
-
-public:
- explicit QbsInstallStepFactory(QObject *parent = 0);
-
- QList<ProjectExplorer::BuildStepInfo>
- availableSteps(ProjectExplorer::BuildStepList *parent) const override;
-
- ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, Core::Id id) override;
- ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *product) override;
-};
-
-} // namespace Internal
-} // namespace QbsProjectManager
diff --git a/src/plugins/qbsprojectmanager/qbsinstallstepconfigwidget.ui b/src/plugins/qbsprojectmanager/qbsinstallstepconfigwidget.ui
deleted file mode 100644
index c44a7276437..00000000000
--- a/src/plugins/qbsprojectmanager/qbsinstallstepconfigwidget.ui
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>QbsProjectManager::Internal::QbsInstallStepConfigWidget</class>
- <widget class="QWidget" name="QbsProjectManager::Internal::QbsInstallStepConfigWidget">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>474</width>
- <height>146</height>
- </rect>
- </property>
- <layout class="QFormLayout" name="formLayout">
- <item row="0" column="0">
- <widget class="QLabel" name="installRootLabel">
- <property name="text">
- <string>Install root:</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="Utils::PathChooser" name="installRootChooser">
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="flagsLabel">
- <property name="text">
- <string>Flags:</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QCheckBox" name="dryRunCheckBox">
- <property name="text">
- <string>Dry run</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QCheckBox" name="keepGoingCheckBox">
- <property name="text">
- <string>Keep going</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QCheckBox" name="removeFirstCheckBox">
- <property name="text">
- <string>Remove first</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item row="2" column="0">
- <widget class="QLabel" name="commandLineKeyLabel">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Equivalent command line:</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
- </property>
- </widget>
- </item>
- <item row="2" column="1">
- <widget class="QPlainTextEdit" name="commandLineTextEdit">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="readOnly">
- <bool>true</bool>
- </property>
- <property name="plainText">
- <string notr="true"/>
- </property>
- <property name="textInteractionFlags">
- <set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- <customwidgets>
- <customwidget>
- <class>Utils::PathChooser</class>
- <extends>QLineEdit</extends>
- <header location="global">utils/pathchooser.h</header>
- </customwidget>
- </customwidgets>
- <tabstops>
- <tabstop>dryRunCheckBox</tabstop>
- <tabstop>keepGoingCheckBox</tabstop>
- <tabstop>removeFirstCheckBox</tabstop>
- <tabstop>commandLineTextEdit</tabstop>
- </tabstops>
- <resources/>
- <connections/>
-</ui>
diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.pro b/src/plugins/qbsprojectmanager/qbsprojectmanager.pro
index 94afeae5a76..1c82b79e7e9 100644
--- a/src/plugins/qbsprojectmanager/qbsprojectmanager.pro
+++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.pro
@@ -27,7 +27,6 @@ HEADERS = \
qbscleanstep.h \
qbsdeployconfigurationfactory.h \
qbsinfopage.h \
- qbsinstallstep.h \
qbslogsink.h \
qbsnodes.h \
qbsparser.h \
@@ -52,7 +51,6 @@ SOURCES = \
qbscleanstep.cpp \
qbsdeployconfigurationfactory.cpp \
qbsinfopage.cpp \
- qbsinstallstep.cpp \
qbslogsink.cpp \
qbsnodes.cpp \
qbsparser.cpp \
@@ -71,7 +69,6 @@ FORMS = \
qbsbuildstepconfigwidget.ui \
qbscleanstepconfigwidget.ui \
qbsinfowidget.ui \
- qbsinstallstepconfigwidget.ui \
qbsprofilessettingswidget.ui
RESOURCES += \
diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs b/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs
index 98ce172aa13..d833515490f 100644
--- a/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs
+++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs
@@ -80,9 +80,6 @@ QtcPlugin {
"qbsinfopage.cpp",
"qbsinfopage.h",
"qbsinfowidget.ui",
- "qbsinstallstep.cpp",
- "qbsinstallstep.h",
- "qbsinstallstepconfigwidget.ui",
"qbslogsink.cpp",
"qbslogsink.h",
"qbsnodes.cpp",
diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h b/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h
index 8952a1d1948..1e545fc7b54 100644
--- a/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h
+++ b/src/plugins/qbsprojectmanager/qbsprojectmanagerconstants.h
@@ -57,6 +57,7 @@ static const char QBS_VARIANT_RELEASE[] = "release";
static const char QBS_CONFIG_VARIANT_KEY[] = "qbs.buildVariant";
static const char QBS_CONFIG_PROFILE_KEY[] = "qbs.profile";
+static const char QBS_INSTALL_ROOT_KEY[] = "qbs.installRoot";
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";
diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp b/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp
index e7a59efb5d8..df102901217 100644
--- a/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp
+++ b/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp
@@ -30,7 +30,6 @@
#include "qbscleanstep.h"
#include "qbsdeployconfigurationfactory.h"
#include "qbsinfopage.h"
-#include "qbsinstallstep.h"
#include "qbsnodes.h"
#include "qbsprofilessettingspage.h"
#include "qbsproject.h"
@@ -101,7 +100,6 @@ bool QbsProjectManagerPlugin::initialize(const QStringList &arguments, QString *
addAutoReleasedObject(new QbsBuildConfigurationFactory);
addAutoReleasedObject(new QbsBuildStepFactory);
addAutoReleasedObject(new QbsCleanStepFactory);
- addAutoReleasedObject(new QbsInstallStepFactory);
addAutoReleasedObject(new QbsDeployConfigurationFactory);
addAutoReleasedObject(new QbsRunConfigurationFactory);
addAutoReleasedObject(new QbsProfilesSettingsPage);
diff --git a/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp
index 49cf0a7f4f0..4b85e79f936 100644
--- a/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp
+++ b/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp
@@ -26,7 +26,6 @@
#include "qbsrunconfiguration.h"
#include "qbsdeployconfigurationfactory.h"
-#include "qbsinstallstep.h"
#include "qbsproject.h"
#include <coreplugin/messagemanager.h>
@@ -111,7 +110,6 @@ const qbs::ProductData findProduct(const qbs::ProjectData &pro, const QString &u
QbsRunConfiguration::QbsRunConfiguration(Target *parent, Core::Id id) :
RunConfiguration(parent, id),
m_uniqueProductName(uniqueProductNameFromId(id)),
- m_currentInstallStep(0),
m_currentBuildStepList(0)
{
addExtraAspect(new LocalEnvironmentAspect(this, [](RunConfiguration *rc, Environment &env) {
@@ -130,7 +128,6 @@ QbsRunConfiguration::QbsRunConfiguration(Target *parent, Core::Id id) :
QbsRunConfiguration::QbsRunConfiguration(Target *parent, QbsRunConfiguration *source) :
RunConfiguration(parent, source),
m_uniqueProductName(source->m_uniqueProductName),
- m_currentInstallStep(0), // no need to copy this, we will get if from the DC anyway.
m_currentBuildStepList(0) // ditto
{
ctor();
@@ -184,10 +181,6 @@ QWidget *QbsRunConfiguration::createConfigurationWidget()
void QbsRunConfiguration::installStepChanged()
{
- if (m_currentInstallStep)
- disconnect(m_currentInstallStep, &QbsInstallStep::changed,
- this, &QbsRunConfiguration::targetInformationChanged);
-
if (m_currentBuildStepList) {
disconnect(m_currentBuildStepList, &BuildStepList::stepInserted,
this, &QbsRunConfiguration::installStepChanged);
@@ -199,17 +192,10 @@ void QbsRunConfiguration::installStepChanged()
QbsDeployConfiguration *activeDc = qobject_cast<QbsDeployConfiguration *>(target()->activeDeployConfiguration());
m_currentBuildStepList = activeDc ? activeDc->stepList() : 0;
- m_currentInstallStep = activeDc ? activeDc->qbsInstallStep() : 0;
-
- if (m_currentInstallStep)
- connect(m_currentInstallStep, &QbsInstallStep::changed,
- this, &QbsRunConfiguration::targetInformationChanged);
if (m_currentBuildStepList) {
connect(m_currentBuildStepList, &BuildStepList::stepInserted,
this, &QbsRunConfiguration::installStepChanged);
- connect(m_currentBuildStepList, &BuildStepList::aboutToRemoveStep, this,
- &QbsRunConfiguration::installStepToBeRemoved);
connect(m_currentBuildStepList, &BuildStepList::stepRemoved,
this, &QbsRunConfiguration::installStepChanged);
connect(m_currentBuildStepList, &BuildStepList::stepMoved,
@@ -219,18 +205,6 @@ void QbsRunConfiguration::installStepChanged()
emit targetInformationChanged();
}
-void QbsRunConfiguration::installStepToBeRemoved(int pos)
-{
- QTC_ASSERT(m_currentBuildStepList, return);
- // TODO: Our logic is rather broken. Users can create as many qbs install steps as they want,
- // but we ignore all but the first one.
- if (m_currentBuildStepList->steps().at(pos) != m_currentInstallStep)
- return;
- disconnect(m_currentInstallStep, &QbsInstallStep::changed,
- this, &QbsRunConfiguration::targetInformationChanged);
- m_currentInstallStep = 0;
-}
-
Runnable QbsRunConfiguration::runnable() const
{
StandardRunnable r;
@@ -276,8 +250,8 @@ void QbsRunConfiguration::addToBaseEnvironment(Utils::Environment &env) const
if (product.isValid()) {
QProcessEnvironment procEnv = env.toProcessEnvironment();
procEnv.insert(QLatin1String("QBS_RUN_FILE_PATH"), executable());
- qbs::RunEnvironment qbsRunEnv = project->qbsProject().getRunEnvironment(product, installOptions(),
- procEnv, QbsManager::settings());
+ qbs::RunEnvironment qbsRunEnv = project->qbsProject().getRunEnvironment(product,
+ qbs::InstallOptions(), procEnv, QbsManager::settings());
qbs::ErrorInfo error;
procEnv = qbsRunEnv.runEnvironment(&error);
if (error.hasError()) {
@@ -310,20 +284,6 @@ QString QbsRunConfiguration::defaultDisplayName()
return defaultName;
}
-qbs::InstallOptions QbsRunConfiguration::installOptions() const
-{
- if (m_currentInstallStep)
- return m_currentInstallStep->installOptions();
- return qbs::InstallOptions();
-}
-
-QString QbsRunConfiguration::installRoot() const
-{
- if (m_currentInstallStep)
- return m_currentInstallStep->absoluteInstallRoot();
- return QString();
-}
-
Utils::OutputFormatter *QbsRunConfiguration::createOutputFormatter() const
{
return new QtSupport::QtOutputFormatter(target()->project());
diff --git a/src/plugins/qbsprojectmanager/qbsrunconfiguration.h b/src/plugins/qbsprojectmanager/qbsrunconfiguration.h
index 5fab929aa0e..92273e5f4ef 100644
--- a/src/plugins/qbsprojectmanager/qbsrunconfiguration.h
+++ b/src/plugins/qbsprojectmanager/qbsrunconfiguration.h
@@ -50,7 +50,6 @@ class QbsProject;
namespace Internal {
-class QbsInstallStep;
class QbsRunConfigurationFactory;
class QbsRunConfiguration : public ProjectExplorer::RunConfiguration
@@ -87,11 +86,8 @@ protected:
private:
void installStepChanged();
- void installStepToBeRemoved(int pos);
QString baseWorkingDirectory() const;
QString defaultDisplayName();
- qbs::InstallOptions installOptions() const;
- QString installRoot() const;
void ctor();
@@ -101,7 +97,6 @@ private:
// Cached startup sub project information
- QbsInstallStep *m_currentInstallStep; // We do not take ownership!
ProjectExplorer::BuildStepList *m_currentBuildStepList; // We do not take ownership!
};
diff --git a/src/shared/qbs b/src/shared/qbs
-Subproject a1633aba4e6b0c17651b0a4938efc3f50767bd7
+Subproject 08c5bfa1a860cf33ed4da951a543d434045e834