diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2017-10-05 12:37:48 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2017-10-05 15:40:10 +0000 |
commit | 047d3f9d30b227685958195d0f08ae143d87e375 (patch) | |
tree | 16786710a9fd58967b001475c8edfa552a99c467 /src/app/qbs | |
parent | 631b1a1732e9837ae7eeaa5113c4b6c451bae569 (diff) |
CLI: Ensure "restore only" mode for commands that don't support -f
This is now guaranteed programatically.
Change-Id: Ifda974aa9347801ccf9e8b04f150cdf2368a756e
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Diffstat (limited to 'src/app/qbs')
-rw-r--r-- | src/app/qbs/commandlinefrontend.cpp | 6 | ||||
-rw-r--r-- | src/app/qbs/parser/commandlineparser.cpp | 5 | ||||
-rw-r--r-- | src/app/qbs/parser/commandlineparser.h | 1 | ||||
-rw-r--r-- | src/app/qbs/parser/parsercommand.cpp | 5 | ||||
-rw-r--r-- | src/app/qbs/parser/parsercommand.h | 1 |
5 files changed, 13 insertions, 5 deletions
diff --git a/src/app/qbs/commandlinefrontend.cpp b/src/app/qbs/commandlinefrontend.cpp index b4d912940..cc08e4b16 100644 --- a/src/app/qbs/commandlinefrontend.cpp +++ b/src/app/qbs/commandlinefrontend.cpp @@ -150,12 +150,8 @@ void CommandLineFrontend::start() params.setSettingsDirectory(m_settings->baseDirectory()); params.setOverrideBuildGraphData(m_parser.command() == ResolveCommandType); params.setPropertyCheckingMode(ErrorHandlingMode::Strict); - if (!m_parser.buildBeforeInstalling() || m_parser.command() == DumpNodesTreeCommandType - || m_parser.command() == CleanCommandType - || m_parser.command() == StatusCommandType - || m_parser.command() == UpdateTimestampsCommandType) { + if (!m_parser.buildBeforeInstalling() || !m_parser.commandCanResolve()) params.setRestoreBehavior(SetupProjectParameters::RestoreOnly); - } foreach (const QVariantMap &buildConfig, m_parser.buildConfigurations()) { QVariantMap userConfig = buildConfig; const QString configurationKey = QLatin1String("qbs.configurationName"); diff --git a/src/app/qbs/parser/commandlineparser.cpp b/src/app/qbs/parser/commandlineparser.cpp index d57141a11..ee59ceac9 100644 --- a/src/app/qbs/parser/commandlineparser.cpp +++ b/src/app/qbs/parser/commandlineparser.cpp @@ -275,6 +275,11 @@ QString CommandLineParser::commandName() const return d->command->representation(); } +bool CommandLineParser::commandCanResolve() const +{ + return d->command->canResolve(); +} + QString CommandLineParser::commandDescription() const { return d->command->longDescription(); diff --git a/src/app/qbs/parser/commandlineparser.h b/src/app/qbs/parser/commandlineparser.h index 35f52ecad..27090fd03 100644 --- a/src/app/qbs/parser/commandlineparser.h +++ b/src/app/qbs/parser/commandlineparser.h @@ -63,6 +63,7 @@ public: CommandType command() const; QString commandName() const; + bool commandCanResolve() const; QString commandDescription() const; QString projectFilePath() const; QString projectBuildDirectory() const; diff --git a/src/app/qbs/parser/parsercommand.cpp b/src/app/qbs/parser/parsercommand.cpp index c7f896e1a..0b20a61d3 100644 --- a/src/app/qbs/parser/parsercommand.cpp +++ b/src/app/qbs/parser/parsercommand.cpp @@ -63,6 +63,11 @@ void Command::parse(QStringList &input) throwError(Tr::tr("Extraneous input '%1'").arg(input.join(QLatin1Char(' ')))); } +bool Command::canResolve() const +{ + return supportedOptions().contains(CommandLineOption::FileOptionType); +} + void Command::addAllToAdditionalArguments(QStringList &input) { while (!input.isEmpty()) diff --git a/src/app/qbs/parser/parsercommand.h b/src/app/qbs/parser/parsercommand.h index 92b49dadd..d8ff27af3 100644 --- a/src/app/qbs/parser/parsercommand.h +++ b/src/app/qbs/parser/parsercommand.h @@ -57,6 +57,7 @@ public: void parse(QStringList &input); QStringList additionalArguments() const { return m_additionalArguments; } + bool canResolve() const; protected: Command(CommandLineOptionPool &optionPool) : m_optionPool(optionPool) {} |