Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
|
#include "utils.h"
#include "qmlutils.h"
#include "qtmoduleinfo.h"
#include "qtplugininfo.h"
#include <QtCore/QCommandLineOption>
#include <QtCore/QCommandLineParser>
#include <QtCore/QDir>
#include <QtCore/QFileInfo>
#include <QtCore/QCoreApplication>
#include <QtCore/QJsonDocument>
#include <QtCore/QJsonObject>
#include <QtCore/QJsonArray>
#include <QtCore/QList>
#include <QtCore/QOperatingSystemVersion>
#include <QtCore/QSharedPointer>
#include <QtCore/private/qconfig_p.h>
#include <algorithm>
#include <cstdio>
#include <iostream>
#include <iterator>
#include <unordered_map>
Go to the source code of this file.
Classes | |
struct | Options |
class | DllDirectoryFileEntryFunction |
class | QmlDirectoryFileEntryFunction |
struct | DeployResult |
Macros | |
#define | IMAGE_FILE_MACHINE_ARM64 0xaa64 |
#define | DECLARE_KNOWN_MODULE(name) static size_t Qt##name ## ModuleId = QtModule::InvalidId |
#define | DEFINE_KNOWN_MODULE(name) m[QLatin1String("Qt6" #name)] = &Qt##name ## ModuleId |
Enumerations | |
enum | ExlusiveOptionValue { OptionAuto , OptionEnabled , OptionDisabled } |
enum | CommandLineParseFlag { CommandLineParseError = 0x1 , CommandLineParseHelpRequested = 0x2 , CommandLineVersionRequested = 0x4 } |
Functions | |
DECLARE_KNOWN_MODULE (3DQuick) | |
DECLARE_KNOWN_MODULE (Core) | |
DECLARE_KNOWN_MODULE (Designer) | |
DECLARE_KNOWN_MODULE (DesignerComponents) | |
DECLARE_KNOWN_MODULE (Gui) | |
DECLARE_KNOWN_MODULE (Qml) | |
DECLARE_KNOWN_MODULE (QmlTooling) | |
DECLARE_KNOWN_MODULE (Quick) | |
DECLARE_KNOWN_MODULE (WebEngineCore) | |
DECLARE_KNOWN_MODULE (Widgets) | |
static void | assignKnownModuleIds () |
static QString | webProcessBinary (const char *binaryName, Platform p) |
static QString | moduleNameToOptionName (const QString &moduleName) |
static QByteArray | formatQtModules (const ModuleBitset &mask, bool option=false) |
static QString | formatQtPlugins (const PluginInformation &pluginInfo) |
static Platform | platformFromMkSpec (const QString &xSpec) |
static ExlusiveOptionValue | parseExclusiveOptions (const QCommandLineParser *parser, const QCommandLineOption &enableOption, const QCommandLineOption &disableOption) |
static QString | findBinary (const QString &directory, Platform platform) |
static QString | msgFileDoesNotExist (const QString &file) |
static QCommandLineOption | createQMakeOption () |
static QCommandLineOption | createQtPathsOption () |
static QCommandLineOption | createVerboseOption () |
static int | parseEarlyArguments (const QStringList &arguments, Options *options, QString *errorMessage) |
static int | parseArguments (const QStringList &arguments, QCommandLineParser *parser, Options *options, QString *errorMessage) |
static QString | lineBreak (QString s) |
static QString | helpText (const QCommandLineParser &p, const PluginInformation &pluginInfo) |
static bool | isQtModule (const QString &libName) |
static bool | findDependentQtLibraries (const QString &qtBinDir, const QString &binary, Platform platform, QString *errorMessage, QStringList *result, unsigned *wordSize=nullptr, bool *isDebug=nullptr, unsigned short *machineArch=nullptr, int *directDependencyCount=nullptr, int recursionDepth=0) |
static QString | pdbFileName (QString libraryFileName) |
static QStringList | qmlCacheFileFilters () |
static qint64 | qtModule (QString module, const QString &infix) |
static QString | deployPlugin (const QString &plugin, const QDir &subDir, const bool dueToModule, const DebugMatchMode &debugMatchMode, ModuleBitset *pluginNeededQtModules, const ModuleBitset &disabledQtModules, const PluginSelections &pluginSelections, const QString &libraryLocation, const QString &infix, Platform platform, bool deployInsightTrackerPlugin, bool deployOpenSslPlugin) |
static bool | needsPluginType (const QString &subDirName, const PluginInformation &pluginInfo, const PluginSelections &pluginSelections) |
QStringList | findQtPlugins (ModuleBitset *usedQtModules, const ModuleBitset &disabledQtModules, const PluginInformation &pluginInfo, const PluginSelections &pluginSelections, const QString &qtPluginsDirName, const QString &libraryLocation, const QString &infix, DebugMatchMode debugMatchModeIn, Platform platform, QString *platformPlugin, bool deployInsightTrackerPlugin, bool deployOpenSslPlugin) |
static QStringList | translationNameFilters (const ModuleBitset &modules, const QString &prefix) |
static bool | deployTranslations (const QString &sourcePath, const ModuleBitset &usedQtModules, const QString &target, const Options &options, QString *errorMessage) |
static QStringList | findFFmpegLibs (const QString &qtBinDir, Platform platform) |
static QStringList | findOpenSslLibraries (const QString &openSslRootDir, Platform platform) |
static QString | libraryPath (const QString &libraryLocation, const char *name, const QString &infix, Platform platform, bool debug) |
static QString | vcDebugRedistDir () |
static QString | vcRedistDir () |
static QStringList | findMinGWRuntimePaths (const QString &qtBinDir, Platform platform, const QStringList &runtimeFilters) |
static QStringList | compilerRunTimeLibs (const QString &qtBinDir, Platform platform, bool isDebug, unsigned short machineArch) |
static int | qtVersion (const QMap< QString, QString > &qtpathsVariables) |
static bool | updateLibrary (const QString &sourceFileName, const QString &targetDirectory, const Options &options, QString *errorMessage) |
static QString | getIcuVersion (const QString &libName) |
static DeployResult | deploy (const Options &options, const QMap< QString, QString > &qtpathsVariables, const PluginInformation &pluginInfo, QString *errorMessage) |
static bool | deployWebProcess (const QMap< QString, QString > &qtpathsVariables, const char *binaryName, const PluginInformation &pluginInfo, const Options &sourceOptions, QString *errorMessage) |
static bool | deployWebEngineCore (const QMap< QString, QString > &qtpathsVariables, const PluginInformation &pluginInfo, const Options &options, bool isDebug, QString *errorMessage) |
QT_END_NAMESPACE QT_USE_NAMESPACE int | main (int argc, char **argv) |
[0] | |
Variables | |
static QtModuleInfoStore | qtModuleEntries |
static const char | webEngineProcessC [] = "QtWebEngineProcess" |
#define DECLARE_KNOWN_MODULE | ( | name | ) | static size_t Qt##name ## ModuleId = QtModule::InvalidId |
#define DEFINE_KNOWN_MODULE | ( | name | ) | m[QLatin1String("Qt6" #name)] = &Qt##name ## ModuleId |
Definition at line 55 of file main.cpp.
Referenced by assignKnownModuleIds().
#define IMAGE_FILE_MACHINE_ARM64 0xaa64 |
enum CommandLineParseFlag |
enum ExlusiveOptionValue |
|
static |
Definition at line 58 of file main.cpp.
References DEFINE_KNOWN_MODULE, QSet< T >::end(), QSet< T >::find(), i, it, and qtModuleEntries.
Referenced by main().
|
static |
Definition at line 1357 of file main.cpp.
References QDir::Dirs, findMinGWRuntimePaths(), platform(), QStringLiteral, QDir::toNativeSeparators(), vcDebugRedistDir(), vcRedistDir(), WindowsDesktopClangMinGW, WindowsDesktopMinGW, WindowsDesktopMsvcArm, and WindowsDesktopMsvcIntel.
Referenced by deploy().
|
static |
Definition at line 244 of file main.cpp.
Referenced by parseArguments(), and parseEarlyArguments().
|
static |
Definition at line 253 of file main.cpp.
Referenced by parseArguments(), and parseEarlyArguments().
|
static |
Definition at line 262 of file main.cpp.
Referenced by parseArguments(), and parseEarlyArguments().
DECLARE_KNOWN_MODULE | ( | 3DQuick | ) |
DECLARE_KNOWN_MODULE | ( | Core | ) |
DECLARE_KNOWN_MODULE | ( | Designer | ) |
DECLARE_KNOWN_MODULE | ( | DesignerComponents | ) |
DECLARE_KNOWN_MODULE | ( | Gui | ) |
DECLARE_KNOWN_MODULE | ( | Qml | ) |
DECLARE_KNOWN_MODULE | ( | QmlTooling | ) |
DECLARE_KNOWN_MODULE | ( | Quick | ) |
DECLARE_KNOWN_MODULE | ( | WebEngineCore | ) |
DECLARE_KNOWN_MODULE | ( | Widgets | ) |
|
static |
Definition at line 1460 of file main.cpp.
References QFileInfo::absoluteFilePath(), Options::additionalLibraries, Options::binaries, Qt::CaseInsensitive, ClangMsvc, Options::compilerRunTime, compilerRunTimeLibs(), createDirectory(), Options::debugDetection, Options::DebugDetectionAuto, Options::DebugDetectionForceDebug, Options::DebugDetectionForceRelease, Options::deployInsightTrackerPlugin, Options::deployPdb, QmlDirectoryFileEntryFunction::DeployPdb, deployTranslations(), dir, Options::directory, disabled, Options::disabledLibraries, Options::dryRun, errorMessage(), Options::ffmpeg, QFileInfo::fileName(), findD3dCompiler(), findDependentLibraries(), findDependentQtLibraries(), findDxc(), findFFmpegLibs(), findInPath(), findOpenSslLibraries(), findQmlDirectory(), findQtPlugins(), Options::forceOpenSslPlugin, formatQtModules(), getIcuVersion(), i, IMAGE_FILE_MACHINE_ARM64, QString::isEmpty(), QFileInfo::isFile(), Options::json, Options::libraries, Options::libraryDirectory, libraryPath(), MatchDebug, MatchDebugOrRelease, MatchRelease, Msvc, Options::openSslRootDirectory, optVerboseLevel, Options::patchQt, patchQtCore(), Options::platform, Options::pluginDirectory, Options::plugins, Options::pluginSelections, Q_UNUSED, qmakeInfixKey, Options::qmlDirectories, Options::qmlDirectory, Options::qmlImportPaths, QStringLiteral, qtModule(), qtModuleEntries, qtVersion(), Options::quickImports, runQmlImportScanner(), SkipQmlDesignerSpecificsDirectories, SkipUpdateFile, Options::softwareRasterizer, Options::systemD3dCompiler, Options::systemDxc, QDir::toNativeSeparators(), Options::translations, Options::translationsDirectory, updateFile(), Options::updateFileFlags, updateLibrary(), WindowsBased, and windowsSharedLibrarySuffix.
Referenced by deployWebProcess(), and main().
|
static |
Definition at line 968 of file main.cpp.
References d, PluginSelections::disabledPluginTypes, PluginSelections::enabledPluginTypes, errorMessage(), PluginSelections::excludedPlugins, findDependentQtLibraries(), formatQtModules(), PluginSelections::includedPlugins, MatchDebug, optVerboseLevel, platform(), platformHasDebugSuffix(), QString::startsWith(), and QDir::toNativeSeparators().
Referenced by findQtPlugins().
|
static |
Definition at line 1156 of file main.cpp.
References QFileInfo::absoluteFilePath(), JsonOutput::addFile(), QList< T >::append(), QString::append(), arguments, QList< T >::clear(), QDir::entryInfoList(), errorMessage(), Options::json, Options::languages, QString::mid(), optVerboseLevel, QStringLiteral, runProcess(), SkipUpdateFile, QDir::toNativeSeparators(), translationNameFilters(), and Options::updateFileFlags.
Referenced by deploy().
|
static |
Definition at line 1835 of file main.cpp.
References QFileInfo::absoluteFilePath(), createDirectory(), deployWebProcess(), Options::directory, Options::dryRun, errorMessage(), QFileInfo::fileName(), QFileInfo::filePath(), QFileInfo::isDir(), Options::json, optVerboseLevel, Options::platform, platformHasDebugSuffix(), QStringLiteral, QDir::toNativeSeparators(), Options::translations, Options::translationsDirectory, updateFile(), Options::updateFileFlags, and webEngineProcessC.
Referenced by main().
|
static |
Definition at line 1818 of file main.cpp.
References Options::binaries, deploy(), Options::directory, errorMessage(), QStringLiteral, Options::quickImports, Options::translations, updateFile(), and webProcessBinary().
Referenced by deployWebEngineCore().
Definition at line 218 of file main.cpp.
References Qt::CaseInsensitive, QDir::cleanPath(), directory, QDir::entryInfoList(), QDir::Executable, QDir::Files, platform(), QStringLiteral, webEngineProcessC, and WindowsBased.
Referenced by parseArguments().
|
static |
Definition at line 809 of file main.cpp.
References errorMessage(), fileName, findDependentQtLibraries(), i, isQtModule(), normalizeFileName(), platform(), readPeExecutable(), QDir::toNativeSeparators(), and WindowsDesktopMinGW.
Referenced by deploy(), deployPlugin(), and findDependentQtLibraries().
|
static |
Definition at line 1213 of file main.cpp.
References Qt::CaseInsensitive, findSharedLibraries(), MatchDebugOrRelease, and platform().
Referenced by deploy().
|
static |
Definition at line 1329 of file main.cpp.
References QFileInfo::absolutePath(), QList< T >::append(), QDir::entryInfoList(), QDir::Files, filters, findInPath(), QString::isEmpty(), platform(), sharedLibrarySuffix(), and WindowsDesktopClangMinGW.
Referenced by compilerRunTimeLibs().
|
static |
Definition at line 1241 of file main.cpp.
References Qt::CaseInsensitive, findSharedLibraries(), MatchDebugOrRelease, and platform().
Referenced by deploy().
QStringList findQtPlugins | ( | ModuleBitset * | usedQtModules, |
const ModuleBitset & | disabledQtModules, | ||
const PluginInformation & | pluginInfo, | ||
const PluginSelections & | pluginSelections, | ||
const QString & | qtPluginsDirName, | ||
const QString & | libraryLocation, | ||
const QString & | infix, | ||
DebugMatchMode | debugMatchModeIn, | ||
Platform | platform, | ||
QString * | platformPlugin, | ||
bool | deployInsightTrackerPlugin, | ||
bool | deployOpenSslPlugin ) |
Definition at line 1069 of file main.cpp.
References deployPlugin(), QDir::Dirs, findQtPlugins(), findSharedLibraries(), formatQtModules(), PluginSelections::includeSoftPlugins, QtModule::InvalidId, QString::isEmpty(), needsPluginType(), QDir::NoDotAndDotDot, optVerboseLevel, platform(), and qtModuleEntries.
Referenced by deploy(), and findQtPlugins().
|
static |
Definition at line 101 of file main.cpp.
References moduleNameToOptionName(), qtModule(), and qtModuleEntries.
Referenced by deploy(), deployPlugin(), findQtPlugins(), and helpText().
|
static |
Definition at line 118 of file main.cpp.
Referenced by helpText().
|
inlinestatic |
Definition at line 764 of file main.cpp.
References formatQtModules(), formatQtPlugins(), QString::fromLatin1(), lineBreak(), moduleNameToOptionName(), and qtModuleEntries.
Referenced by main().
|
inlinestatic |
Definition at line 799 of file main.cpp.
References Qt::CaseInsensitive.
Referenced by findDependentQtLibraries().
|
static |
Definition at line 1280 of file main.cpp.
References debug, platform(), platformHasDebugSuffix(), and sharedLibrarySuffix().
Referenced by deploy().
Definition at line 752 of file main.cpp.
References i.
Referenced by QUnicodeTools::getLineBreaks(), helpText(), and QTextBoundaryFinder::toPreviousBoundary().
QT_END_NAMESPACE QT_USE_NAMESPACE int main | ( | int | argc, |
char ** | argv ) |
[0]
[0]
[0]
[6]
[0]
[0]
[1]
[1]
[2]
[2]
[3]
[3]
[0]
[0]
[1]
[1]
[0]
[0]
[0]
[0]
Definition at line 1897 of file main.cpp.
References QCoreApplication::applicationDirPath(), QCoreApplication::arguments(), ArmBased, assignKnownModuleIds(), CommandLineParseError, CommandLineParseHelpRequested, CommandLineVersionRequested, QByteArray::constData(), createDirectory(), deploy(), deployWebEngineCore(), Options::directory, Options::dryRun, QFile::encodeName(), errorMessage(), PluginInformation::generateAvailablePlugins(), helpText(), IntelBased, QString::isEmpty(), Options::json, Options::libraryDirectory, Options::list, QDir::listSeparator(), optVerboseLevel, parseArguments(), parseEarlyArguments(), Options::platform, platformFromMkSpec(), qgetenv(), qPrintable, qputenv(), QStringLiteral, qtModuleEntries, Options::qtpathsBinary, queryQtPaths(), QCoreApplication::setApplicationVersion(), JsonOutput::toJson(), JsonOutput::toList(), QDir::toNativeSeparators(), UnknownPlatform, and WindowsDesktopMsvc.
Definition at line 91 of file main.cpp.
References QString::mid(), QString::prepend(), and QString::toLower().
Referenced by formatQtModules(), helpText(), and parseArguments().
Definition at line 233 of file main.cpp.
References file, and QDir::toNativeSeparators().
Referenced by parseArguments(), and parseEarlyArguments().
|
static |
Definition at line 1058 of file main.cpp.
References PluginSelections::enabledPluginTypes, and PluginSelections::includedPlugins.
Referenced by findQtPlugins().
|
inlinestatic |
Definition at line 330 of file main.cpp.
References QCommandLineParser::addHelpOption(), Options::additionalLibraries, QCommandLineParser::addOption(), QCommandLineParser::addPositionalArgument(), QCommandLineParser::addVersionOption(), arguments, Options::binaries, QDir::cleanPath(), CommandLineParseError, CommandLineParseHelpRequested, CommandLineVersionRequested, Options::compilerRunTime, createQMakeOption(), createQtPathsOption(), createVerboseOption(), Options::debugDetection, Options::DebugDetectionForceDebug, Options::DebugDetectionForceRelease, Options::deployInsightTrackerPlugin, Options::deployPdb, Options::directory, Options::disabledLibraries, PluginSelections::disabledPluginTypes, Options::dryRun, PluginSelections::enabledPluginTypes, errorMessage(), QCommandLineParser::errorText(), PluginSelections::excludedPlugins, Options::ffmpeg, file, findBinary(), findSharedLibraries(), Options::forceOpenSslPlugin, ForceUpdateFile, QCommandLineOption::HiddenFromHelp, i, Options::ignoreLibraryErrors, PluginSelections::includedPlugins, PluginSelections::includeSoftPlugins, QString::isEmpty(), QCommandLineParser::isSet(), Options::json, Options::languages, Options::libraries, Options::libraryDirectory, Options::list, ListMapping, ListRelative, ListSource, ListTarget, MatchDebugOrRelease, MinGW, moduleNameToOptionName(), msgFileDoesNotExist(), Options::openSslRootDirectory, OptionAuto, OptionDisabled, OptionEnabled, optVerboseLevel, QCommandLineParser::parse(), QCommandLineParser::ParseAsLongOptions, parseExclusiveOptions(), Options::patchQt, Options::platform, Options::pluginDirectory, Options::plugins, Options::pluginSelections, QCommandLineParser::positionalArguments(), Options::qmlDirectories, Options::qmlDirectory, Options::qmlImportPaths, QStringLiteral, qtModuleEntries, Options::quickImports, QCommandLineParser::setApplicationDescription(), QCommandLineParser::setSingleDashWordOptionMode(), SkipUpdateFile, Options::softwareRasterizer, QString::split(), Options::systemD3dCompiler, Options::systemDxc, Options::translations, Options::translationsDirectory, Options::updateFileFlags, QCommandLineParser::value(), QCommandLineParser::values(), WindowsBased, WindowsDesktopMinGW, and WindowsDesktopMsvc.
Referenced by main().
|
static |
Definition at line 271 of file main.cpp.
References QCommandLineParser::addOption(), arguments, QDir::cleanPath(), CommandLineParseError, createQMakeOption(), createQtPathsOption(), createVerboseOption(), errorMessage(), QCommandLineParser::isSet(), msgFileDoesNotExist(), ok, optVerboseLevel, QCommandLineParser::parse(), QCommandLineParser::ParseAsLongOptions, QStringLiteral, Options::qtpathsBinary, QCommandLineParser::setSingleDashWordOptionMode(), QString::toInt(), QDir::toNativeSeparators(), and QCommandLineParser::value().
Referenced by main().
|
static |
Definition at line 157 of file main.cpp.
References disabled, QCommandLineParser::isSet(), OptionAuto, OptionDisabled, and OptionEnabled.
Referenced by parseArguments().
Definition at line 862 of file main.cpp.
Referenced by QmlDirectoryFileEntryFunction::operator()(), and updateLibrary().
Definition at line 133 of file main.cpp.
References UnknownPlatform, WindowsDesktopClangMinGW, WindowsDesktopClangMsvc, WindowsDesktopMinGW, WindowsDesktopMsvc, and WindowsDesktopMsvcArm.
Referenced by main().
|
inlinestatic |
Definition at line 870 of file main.cpp.
References QStringLiteral.
Definition at line 942 of file main.cpp.
References qPrintable, qtModule(), qtModuleEntries, QString::size(), and QString::startsWith().
Referenced by deploy(), formatQtModules(), qtModule(), and translationNameFilters().
Definition at line 1419 of file main.cpp.
References dot(), QStringLiteral, QString::section(), and QString::toInt().
Referenced by deploy(), and QShaderPrivate::qtQsbVersion().
|
static |
Definition at line 1143 of file main.cpp.
References QString::push_back(), qtModule(), and qtModuleEntries.
Referenced by deployTranslations().
|
static |
Definition at line 1430 of file main.cpp.
References Options::deployPdb, errorMessage(), Options::ignoreLibraryErrors, Options::json, pdbFileName(), updateFile(), and Options::updateFileFlags.
Referenced by deploy().
|
static |
Definition at line 1292 of file main.cpp.
References QStringLiteral.
Referenced by compilerRunTimeLibs(), and vcRedistDir().
|
static |
Definition at line 1294 of file main.cpp.
References QDir::cleanPath(), QFile::decodeName(), QDir::Dirs, QDir::entryInfoList(), QFileInfo::isDir(), QDir::Name, QDir::NoDotAndDotDot, qgetenv(), QStringLiteral, QDir::Reversed, QDir::toNativeSeparators(), and vcDebugRedistDir().
Referenced by compilerRunTimeLibs().
Definition at line 85 of file main.cpp.
References QStringLiteral, and WindowsBased.
Referenced by deployWebProcess().
|
static |
Definition at line 39 of file main.cpp.
Referenced by assignKnownModuleIds(), deploy(), findQtPlugins(), formatQtModules(), helpText(), main(), parseArguments(), qtModule(), and translationNameFilters().
|
static |
Definition at line 83 of file main.cpp.
Referenced by deployWebEngineCore(), and findBinary().