diff options
Diffstat (limited to 'src/app')
-rw-r--r-- | src/app/qbs/commandlinefrontend.cpp | 1 | ||||
-rw-r--r-- | src/app/qbs/parser/commandlineoption.cpp | 35 | ||||
-rw-r--r-- | src/app/qbs/parser/commandlineoption.h | 16 | ||||
-rw-r--r-- | src/app/qbs/parser/commandlineoptionpool.cpp | 9 | ||||
-rw-r--r-- | src/app/qbs/parser/commandlineoptionpool.h | 1 | ||||
-rw-r--r-- | src/app/qbs/parser/commandlineparser.cpp | 5 | ||||
-rw-r--r-- | src/app/qbs/parser/commandlineparser.h | 3 | ||||
-rw-r--r-- | src/app/qbs/parser/parsercommand.cpp | 1 |
8 files changed, 71 insertions, 0 deletions
diff --git a/src/app/qbs/commandlinefrontend.cpp b/src/app/qbs/commandlinefrontend.cpp index 489be4ed5..c3269ebcf 100644 --- a/src/app/qbs/commandlinefrontend.cpp +++ b/src/app/qbs/commandlinefrontend.cpp @@ -157,6 +157,7 @@ void CommandLineFrontend::start() params.setSettingsDirectory(m_settings->baseDirectory()); params.setOverrideBuildGraphData(m_parser.command() == ResolveCommandType); params.setPropertyCheckingMode(ErrorHandlingMode::Strict); + params.setDeprecationWarningMode(m_parser.deprecationWarningMode()); if (!m_parser.buildBeforeInstalling() || !m_parser.commandCanResolve()) params.setRestoreBehavior(SetupProjectParameters::RestoreOnly); const auto buildConfigs = m_parser.buildConfigurations(); diff --git a/src/app/qbs/parser/commandlineoption.cpp b/src/app/qbs/parser/commandlineoption.cpp index a09f36c2c..ddbcd4da1 100644 --- a/src/app/qbs/parser/commandlineoption.cpp +++ b/src/app/qbs/parser/commandlineoption.cpp @@ -663,6 +663,41 @@ void CommandEchoModeOption::doParse(const QString &representation, QStringList & m_echoMode = commandEchoModeFromName(mode); } +QString DeprecationWarningsOption::description(CommandType command) const +{ + Q_UNUSED(command); + return Tr::tr("%1 <mode>\n" + "\tWhat to do when encountering deprecated items or properties.\n" + "\tPossible values are '%2'.\n" + "\tThe default is '%3'.\n") + .arg(longRepresentation(), + allDeprecationWarningModeStrings().join(QLatin1String("', '")), + deprecationWarningModeName(defaultDeprecationWarningMode())); +} + +QString DeprecationWarningsOption::longRepresentation() const +{ + return QStringLiteral("--deprecation-warnings"); +} + +void DeprecationWarningsOption::doParse(const QString &representation, QStringList &input) +{ + const QString mode = getArgument(representation, input); + if (mode.isEmpty()) { + throw ErrorInfo(Tr::tr("Invalid use of option '%1': No deprecation warning mode given.\n" + "Usage: %2") + .arg(representation, description(command()))); + } + + if (!allDeprecationWarningModeStrings().contains(mode)) { + throw ErrorInfo(Tr::tr("Invalid use of option '%1': " + "Invalid deprecation warning mode '%2' given.\nUsage: %3") + .arg(representation, mode, description(command()))); + } + + m_mode = deprecationWarningModeFromName(mode); +} + QString WaitLockOption::description(CommandType command) const { Q_UNUSED(command); diff --git a/src/app/qbs/parser/commandlineoption.h b/src/app/qbs/parser/commandlineoption.h index f8ec1c735..d51d5f765 100644 --- a/src/app/qbs/parser/commandlineoption.h +++ b/src/app/qbs/parser/commandlineoption.h @@ -42,6 +42,7 @@ #include "commandtype.h" #include <tools/commandechomode.h> +#include <tools/deprecationwarningmode.h> #include <tools/joblimits.h> #include <QtCore/qstringlist.h> @@ -76,6 +77,7 @@ public: WaitLockOptionType, RunEnvConfigOptionType, DisableFallbackProviderType, + DeprecationWarningsOptionType, }; virtual ~CommandLineOption(); @@ -367,6 +369,20 @@ private: CommandEchoMode m_echoMode = CommandEchoModeInvalid; }; +class DeprecationWarningsOption : public CommandLineOption +{ +public: + QString description(CommandType command) const override; + QString shortRepresentation() const override { return {}; } + QString longRepresentation() const override; + DeprecationWarningMode mode() const { return m_mode; } + +private: + void doParse(const QString &representation, QStringList &input) override; + + DeprecationWarningMode m_mode = defaultDeprecationWarningMode(); +}; + class SettingsDirOption : public CommandLineOption { public: diff --git a/src/app/qbs/parser/commandlineoptionpool.cpp b/src/app/qbs/parser/commandlineoptionpool.cpp index 63711f623..3908f262c 100644 --- a/src/app/qbs/parser/commandlineoptionpool.cpp +++ b/src/app/qbs/parser/commandlineoptionpool.cpp @@ -134,6 +134,9 @@ CommandLineOption *CommandLineOptionPool::getOption(CommandLineOption::Type type case CommandLineOption::RunEnvConfigOptionType: option = new RunEnvConfigOption; break; + case CommandLineOption::DeprecationWarningsOptionType: + option = new DeprecationWarningsOption; + break; default: qFatal("Unknown option type %d", type); } @@ -287,4 +290,10 @@ RunEnvConfigOption *CommandLineOptionPool::runEnvConfigOption() const return static_cast<RunEnvConfigOption *>(getOption(CommandLineOption::RunEnvConfigOptionType)); } +DeprecationWarningsOption *CommandLineOptionPool::deprecationWarningsOption() const +{ + return static_cast<DeprecationWarningsOption *> + (getOption(CommandLineOption::DeprecationWarningsOptionType)); +} + } // namespace qbs diff --git a/src/app/qbs/parser/commandlineoptionpool.h b/src/app/qbs/parser/commandlineoptionpool.h index c7ac263e1..5f3c1d87c 100644 --- a/src/app/qbs/parser/commandlineoptionpool.h +++ b/src/app/qbs/parser/commandlineoptionpool.h @@ -79,6 +79,7 @@ public: WaitLockOption *waitLockOption() const; DisableFallbackProviderOption *disableFallbackProviderOption() const; RunEnvConfigOption *runEnvConfigOption() const; + DeprecationWarningsOption *deprecationWarningsOption() const; private: mutable QHash<CommandLineOption::Type, CommandLineOption *> m_options; diff --git a/src/app/qbs/parser/commandlineparser.cpp b/src/app/qbs/parser/commandlineparser.cpp index 0f70b3fe9..c6134ec80 100644 --- a/src/app/qbs/parser/commandlineparser.cpp +++ b/src/app/qbs/parser/commandlineparser.cpp @@ -278,6 +278,11 @@ QString CommandLineParser::settingsDir() const return d->settingsDir(); } +DeprecationWarningMode CommandLineParser::deprecationWarningMode() const +{ + return d->optionPool.deprecationWarningsOption()->mode(); +} + QString CommandLineParser::commandName() const { return d->command->representation(); diff --git a/src/app/qbs/parser/commandlineparser.h b/src/app/qbs/parser/commandlineparser.h index 70586b2d4..999027006 100644 --- a/src/app/qbs/parser/commandlineparser.h +++ b/src/app/qbs/parser/commandlineparser.h @@ -41,6 +41,8 @@ #include "commandtype.h" +#include <tools/deprecationwarningmode.h> + #include <QtCore/qstringlist.h> #include <QtCore/qvariant.h> @@ -89,6 +91,7 @@ public: bool showProgress() const; bool showVersion() const; QString settingsDir() const; + DeprecationWarningMode deprecationWarningMode() const; private: class CommandLineParserPrivate; diff --git a/src/app/qbs/parser/parsercommand.cpp b/src/app/qbs/parser/parsercommand.cpp index 799bf5dcf..8fa67e241 100644 --- a/src/app/qbs/parser/parsercommand.cpp +++ b/src/app/qbs/parser/parsercommand.cpp @@ -208,6 +208,7 @@ static QList<CommandLineOption::Type> resolveOptions() CommandLineOption::DryRunOptionType, CommandLineOption::ForceProbesOptionType, CommandLineOption::LogTimeOptionType, + CommandLineOption::DeprecationWarningsOptionType, CommandLineOption::DisableFallbackProviderType}; } |