diff options
author | Alexander Volkov <a.volkov@rusbitech.ru> | 2017-07-31 17:20:53 +0300 |
---|---|---|
committer | Alexander Volkov <a.volkov@rusbitech.ru> | 2017-08-03 09:59:15 +0000 |
commit | d12d2949d1e4ac08a47928ef27bc45459b3fb104 (patch) | |
tree | 1b5ce8a66074aadcc0c756bee1952bbc4359768a /src/tools/uic/main.cpp | |
parent | 8ba373361d79402be877cbd5d6dd8ec7de7d0e27 (diff) |
uic: Add -no-stringliteral option
... and use it when building shared libraries and plugins.
It prevents application crashes in cases when libraries and
plugins are unloaded and their strings are still used by
the main application.
Task-number: QTBUG-51602
Change-Id: I4af79183f18c5ed6142d55af02a36fe4334f3fee
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'src/tools/uic/main.cpp')
-rw-r--r-- | src/tools/uic/main.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/tools/uic/main.cpp b/src/tools/uic/main.cpp index 3599470403..46a1e66bcc 100644 --- a/src/tools/uic/main.cpp +++ b/src/tools/uic/main.cpp @@ -75,6 +75,10 @@ int runUic(int argc, char *argv[]) noImplicitIncludesOption.setDescription(QStringLiteral("Disable generation of #include-directives.")); parser.addOption(noImplicitIncludesOption); + QCommandLineOption noStringLiteralOption(QStringList() << QStringLiteral("s") << QStringLiteral("no-stringliteral")); + noStringLiteralOption.setDescription(QStringLiteral("Use QLatin1String instead of QStringLiteral in generated code.")); + parser.addOption(noStringLiteralOption); + QCommandLineOption postfixOption(QStringLiteral("postfix")); postfixOption.setDescription(QStringLiteral("Postfix to add to all generated classnames.")); postfixOption.setValueName(QStringLiteral("postfix")); @@ -107,6 +111,7 @@ int runUic(int argc, char *argv[]) driver.option().outputFile = parser.value(outputOption); driver.option().headerProtection = !parser.isSet(noProtOption); driver.option().implicitIncludes = !parser.isSet(noImplicitIncludesOption); + driver.option().stringLiteral = !parser.isSet(noStringLiteralOption); driver.option().idBased = parser.isSet(idBasedOption); driver.option().postfix = parser.value(postfixOption); driver.option().translateFunction = parser.value(translateOption); |