summaryrefslogtreecommitdiff
path: root/src/app
diff options
context:
space:
mode:
Diffstat (limited to 'src/app')
-rw-r--r--src/app/qbs/commandlinefrontend.cpp1
-rw-r--r--src/app/qbs/parser/commandlineoption.cpp35
-rw-r--r--src/app/qbs/parser/commandlineoption.h16
-rw-r--r--src/app/qbs/parser/commandlineoptionpool.cpp9
-rw-r--r--src/app/qbs/parser/commandlineoptionpool.h1
-rw-r--r--src/app/qbs/parser/commandlineparser.cpp5
-rw-r--r--src/app/qbs/parser/commandlineparser.h3
-rw-r--r--src/app/qbs/parser/parsercommand.cpp1
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};
}