summaryrefslogtreecommitdiffstats
path: root/src/windeployqt/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/windeployqt/main.cpp')
-rw-r--r--src/windeployqt/main.cpp105
1 files changed, 49 insertions, 56 deletions
diff --git a/src/windeployqt/main.cpp b/src/windeployqt/main.cpp
index e9823bb16..6b6e67d6c 100644
--- a/src/windeployqt/main.cpp
+++ b/src/windeployqt/main.cpp
@@ -181,12 +181,11 @@ static inline QString webProcessBinary(const char *binaryName, Platform p)
static QByteArray formatQtModules(quint64 mask, bool option = false)
{
QByteArray result;
- const size_t qtModulesCount = sizeof(qtModuleEntries)/sizeof(QtModuleEntry);
- for (size_t i = 0; i < qtModulesCount; ++i) {
- if (mask & qtModuleEntries[i].module) {
+ for (const auto &qtModule : qtModuleEntries) {
+ if (mask & qtModule.module) {
if (!result.isEmpty())
result.append(' ');
- result.append(option ? qtModuleEntries[i].option : qtModuleEntries[i].libraryName);
+ result.append(option ? qtModule.option : qtModule.libraryName);
}
}
return result;
@@ -311,9 +310,8 @@ enum CommandLineParseFlag {
static inline int parseArguments(const QStringList &arguments, QCommandLineParser *parser,
Options *options, QString *errorMessage)
{
- typedef QSharedPointer<QCommandLineOption> CommandLineOptionPtr;
- typedef QPair<CommandLineOptionPtr, quint64> OptionMaskPair;
- typedef QVector<OptionMaskPair> OptionMaskVector;
+ using CommandLineOptionPtr = QSharedPointer<QCommandLineOption>;
+ using OptionPtrVector = QVector<CommandLineOptionPtr>;
parser->setSingleDashWordOptionMode(QCommandLineParser::ParseAsLongOptions);
parser->setApplicationDescription(QStringLiteral("Qt Deploy Tool ") + QLatin1String(QT_VERSION_STR)
@@ -445,21 +443,22 @@ static inline int parseArguments(const QStringList &arguments, QCommandLineParse
parser->addPositionalArgument(QStringLiteral("[files]"),
QStringLiteral("Binaries or directory containing the binary."));
- OptionMaskVector enabledModules;
- OptionMaskVector disabledModules;
- const size_t qtModulesCount = sizeof(qtModuleEntries)/sizeof(QtModuleEntry);
- for (size_t i = 0; i < qtModulesCount; ++i) {
+ OptionPtrVector enabledModuleOptions;
+ OptionPtrVector disabledModuleOptions;
+ const int qtModulesCount = int(sizeof(qtModuleEntries) / sizeof(QtModuleEntry));
+ enabledModuleOptions.reserve(qtModulesCount);
+ disabledModuleOptions.reserve(qtModulesCount);
+ for (int i = 0; i < qtModulesCount; ++i) {
const QString option = QLatin1String(qtModuleEntries[i].option);
const QString name = QLatin1String(qtModuleEntries[i].libraryName);
const QString enabledDescription = QStringLiteral("Add ") + name + QStringLiteral(" module.");
CommandLineOptionPtr enabledOption(new QCommandLineOption(option, enabledDescription));
parser->addOption(*enabledOption.data());
- enabledModules.push_back(OptionMaskPair(enabledOption, qtModuleEntries[i].module));
-
+ enabledModuleOptions.append(enabledOption);
const QString disabledDescription = QStringLiteral("Remove ") + name + QStringLiteral(" module.");
CommandLineOptionPtr disabledOption(new QCommandLineOption(QStringLiteral("no-") + option,
disabledDescription));
- disabledModules.push_back(OptionMaskPair(disabledOption, qtModuleEntries[i].module));
+ disabledModuleOptions.append(disabledOption);
parser->addOption(*disabledOption.data());
}
@@ -535,11 +534,11 @@ static inline int parseArguments(const QStringList &arguments, QCommandLineParse
options->patchQt = !parser->isSet(noPatchQtOption);
- for (size_t i = 0; i < qtModulesCount; ++i) {
- if (parser->isSet(*enabledModules.at(int(i)).first.data()))
- options->additionalLibraries |= enabledModules.at(int(i)).second;
- if (parser->isSet(*disabledModules.at(int(i)).first.data()))
- options->disabledLibraries |= disabledModules.at(int(i)).second;
+ for (int i = 0; i < qtModulesCount; ++i) {
+ if (parser->isSet(*enabledModuleOptions.at(i)))
+ options->additionalLibraries |= qtModuleEntries[i].module;
+ if (parser->isSet(*disabledModuleOptions.at(i)))
+ options->disabledLibraries |= qtModuleEntries[i].module;
}
// Add some dependencies
@@ -830,10 +829,9 @@ static const PluginModuleMapping pluginModuleMappings[] =
static inline quint64 qtModuleForPlugin(const QString &subDirName)
{
- const PluginModuleMapping *end = pluginModuleMappings
- + sizeof(pluginModuleMappings) / sizeof(pluginModuleMappings[0]);
- const PluginModuleMapping *result =
- std::find_if(pluginModuleMappings, end,
+ const auto end = std::end(pluginModuleMappings);
+ const auto result =
+ std::find_if(std::begin(pluginModuleMappings), end,
[&subDirName] (const PluginModuleMapping &m) { return subDirName == QLatin1String(m.directoryName); });
return result != end ? result->module : 0; // "designer"
}
@@ -852,12 +850,11 @@ static quint64 qtModule(QString module, const QString &infix)
if (endPos > 0)
module.truncate(endPos);
// That should leave us with 'Qt5Core<d>'.
- const size_t qtModulesCount = sizeof(qtModuleEntries)/sizeof(QtModuleEntry);
- for (size_t i = 0; i < qtModulesCount; ++i) {
- const QLatin1String libraryName(qtModuleEntries[i].libraryName);
+ for (const auto &qtModule : qtModuleEntries) {
+ const QLatin1String libraryName(qtModule.libraryName);
if (module == libraryName
|| (module.size() == libraryName.size() + 1 && module.startsWith(libraryName))) {
- return qtModuleEntries[i].module;
+ return qtModule.module;
}
}
return 0;
@@ -946,10 +943,9 @@ QStringList findQtPlugins(quint64 *usedQtModules, quint64 disabledQtModules,
static QStringList translationNameFilters(quint64 modules, const QString &prefix)
{
QStringList result;
- const size_t qtModulesCount = sizeof(qtModuleEntries)/sizeof(QtModuleEntry);
- for (size_t i = 0; i < qtModulesCount; ++i) {
- if ((qtModuleEntries[i].module & modules) && qtModuleEntries[i].translation) {
- const QString name = QLatin1String(qtModuleEntries[i].translation) +
+ for (const auto &qtModule : qtModuleEntries) {
+ if ((qtModule.module & modules) && qtModule.translation) {
+ const QString name = QLatin1String(qtModule.translation) +
QLatin1Char('_') + prefix + QStringLiteral(".qm");
if (!result.contains(name))
result.push_back(name);
@@ -1096,9 +1092,8 @@ static QStringList compilerRunTimeLibs(Platform platform, bool isDebug, unsigned
const QString binPath = QFileInfo(gcc).absolutePath();
QStringList filters;
const QString suffix = QLatin1Char('*') + sharedLibrarySuffix(platform);
- const size_t count = sizeof(minGwRuntimes) / sizeof(minGwRuntimes[0]);
- for (size_t i = 0; i < count; ++i)
- filters.append(QLatin1String(minGwRuntimes[i]) + suffix);
+ for (auto minGwRuntime : minGwRuntimes)
+ filters.append(QLatin1String(minGwRuntime) + suffix);
const QFileInfoList &dlls = QDir(binPath).entryInfoList(filters, QDir::Files);
for (const QFileInfo &dllFi : dlls)
result.append(dllFi.absoluteFilePath());
@@ -1341,12 +1336,11 @@ static DeployResult deploy(const Options &options,
// Apply options flags and re-add library names.
QString qtGuiLibrary;
- const size_t qtModulesCount = sizeof(qtModuleEntries)/sizeof(QtModuleEntry);
- for (size_t i = 0; i < qtModulesCount; ++i) {
- if (result.deployedQtLibraries & qtModuleEntries[i].module) {
- const QString library = libraryPath(libraryLocation, qtModuleEntries[i].libraryName, qtLibInfix, options.platform, isDebug);
+ for (const auto &qtModule : qtModuleEntries) {
+ if (result.deployedQtLibraries & qtModule.module) {
+ const QString library = libraryPath(libraryLocation, qtModule.libraryName, qtLibInfix, options.platform, isDebug);
deployedQtLibraries.append(library);
- if (qtModuleEntries[i].module == QtGuiModule)
+ if (qtModule.module == QtGuiModule)
qtGuiLibrary = library;
}
}
@@ -1383,7 +1377,7 @@ static DeployResult deploy(const Options &options,
if (options.angleDetection != Options::AngleDetectionForceOff
&& (dependsOnAngle || dependsOnCombinedAngle || !dependsOnOpenGl || options.angleDetection == Options::AngleDetectionForceOn)) {
const QString combinedAngleFullPath = qtBinDir + slash + libCombinedQtAngleName;
- if (QFileInfo(combinedAngleFullPath).exists()) {
+ if (QFileInfo::exists(combinedAngleFullPath)) {
deployedQtLibraries.append(combinedAngleFullPath);
} else {
const QString libGlesFullPath = qtBinDir + slash + libGlesName;
@@ -1577,8 +1571,8 @@ static bool deployWebEngineCore(const QMap<QString, QString> &qmakeVariables,
const QString resourcesTargetDir(options.directory + resourcesSubDir);
if (!createDirectory(resourcesTargetDir, errorMessage))
return false;
- for (size_t i = 0; i < sizeof(installDataFiles)/sizeof(installDataFiles[0]); ++i) {
- if (!updateFile(resourcesSourceDir + QLatin1String(installDataFiles[i]),
+ for (auto installDataFile : installDataFiles) {
+ if (!updateFile(resourcesSourceDir + QLatin1String(installDataFile),
resourcesTargetDir, options.updateFileFlags, options.json, errorMessage)) {
return false;
}
@@ -1595,21 +1589,20 @@ static bool deployWebEngineCore(const QMap<QString, QString> &qmakeVariables,
return createDirectory(options.translationsDirectory, errorMessage)
&& updateFile(translations.absoluteFilePath(), options.translationsDirectory,
options.updateFileFlags, options.json, errorMessage);
- } else {
- // Translations have been turned off, but QtWebEngine needs at least one.
- const QFileInfo enUSpak(translations.filePath() + QStringLiteral("/en-US.pak"));
- if (!enUSpak.exists()) {
- std::wcerr << "Warning: Cannot find "
- << QDir::toNativeSeparators(enUSpak.absoluteFilePath()) << ".\n";
- return true;
- }
- const QString webEngineTranslationsDir = options.translationsDirectory + QLatin1Char('/')
- + translations.fileName();
- if (!createDirectory(webEngineTranslationsDir, errorMessage))
- return false;
- return updateFile(enUSpak.absoluteFilePath(), webEngineTranslationsDir,
- options.updateFileFlags, options.json, errorMessage);
}
+ // Translations have been turned off, but QtWebEngine needs at least one.
+ const QFileInfo enUSpak(translations.filePath() + QStringLiteral("/en-US.pak"));
+ if (!enUSpak.exists()) {
+ std::wcerr << "Warning: Cannot find "
+ << QDir::toNativeSeparators(enUSpak.absoluteFilePath()) << ".\n";
+ return true;
+ }
+ const QString webEngineTranslationsDir = options.translationsDirectory + QLatin1Char('/')
+ + translations.fileName();
+ if (!createDirectory(webEngineTranslationsDir, errorMessage))
+ return false;
+ return updateFile(enUSpak.absoluteFilePath(), webEngineTranslationsDir,
+ options.updateFileFlags, options.json, errorMessage);
}
int main(int argc, char **argv)