Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
main.cpp File Reference

(7ee06113cdded26f5c7937eae163ef0405b7f7d2)

#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>
+ Include dependency graph for main.cpp:

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)
 
#define DEFINE_KNOWN_MODULE(name)
 

Enumerations

enum  ExlusiveOptionValue {
  OptionAuto , OptionEnabled , OptionDisabled , OptionAuto ,
  OptionEnabled , OptionDisabled
}
 
enum  CommandLineParseFlag {
  CommandLineParseError = 0x1 , CommandLineParseHelpRequested = 0x2 , CommandLineVersionRequested = 0x4 , CommandLineParseError = 0x1 ,
  CommandLineParseHelpRequested = 0x2 , CommandLineVersionRequested = 0x4
}
 
enum  ExlusiveOptionValue {
  OptionAuto , OptionEnabled , OptionDisabled , OptionAuto ,
  OptionEnabled , OptionDisabled
}
 
enum  CommandLineParseFlag {
  CommandLineParseError = 0x1 , CommandLineParseHelpRequested = 0x2 , CommandLineVersionRequested = 0x4 , 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, bool internal)
 
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)
 [48]
 

Variables

static QtModuleInfoStore qtModuleEntries
 
static const char webEngineProcessC [] = "QtWebEngineProcess"
 

Macro Definition Documentation

◆ DECLARE_KNOWN_MODULE

#define DECLARE_KNOWN_MODULE ( name)
Value:
static size_t Qt##name ## ModuleId = QtModule::InvalidId
EGLImageKHR EGLint * name
Definition qcompare.h:76
static constexpr size_t InvalidId

Definition at line 41 of file main.cpp.

◆ DEFINE_KNOWN_MODULE

#define DEFINE_KNOWN_MODULE ( name)
Value:
m[QLatin1String("Qt6" #name)] = &Qt##name ## ModuleId
const GLfloat * m
[1]
QLatin1StringView QLatin1String
Definition qstringfwd.h:33

Definition at line 55 of file main.cpp.

◆ IMAGE_FILE_MACHINE_ARM64

#define IMAGE_FILE_MACHINE_ARM64   0xaa64

Definition at line 24 of file main.cpp.

Enumeration Type Documentation

◆ CommandLineParseFlag [1/2]

Enumerator
CommandLineParseError 
CommandLineParseHelpRequested 
CommandLineVersionRequested 
CommandLineParseError 
CommandLineParseHelpRequested 
CommandLineVersionRequested 

Definition at line 238 of file main.cpp.

◆ CommandLineParseFlag [2/2]

Enumerator
CommandLineParseError 
CommandLineParseHelpRequested 
CommandLineVersionRequested 
CommandLineParseError 
CommandLineParseHelpRequested 
CommandLineVersionRequested 

Definition at line 238 of file main.cpp.

◆ ExlusiveOptionValue [1/2]

Enumerator
OptionAuto 
OptionEnabled 
OptionDisabled 
OptionAuto 
OptionEnabled 
OptionDisabled 

Definition at line 151 of file main.cpp.

◆ ExlusiveOptionValue [2/2]

Enumerator
OptionAuto 
OptionEnabled 
OptionDisabled 
OptionAuto 
OptionEnabled 
OptionDisabled 

Definition at line 151 of file main.cpp.

Function Documentation

◆ assignKnownModuleIds()

static void assignKnownModuleIds ( )
static

Definition at line 58 of file main.cpp.

References qtModuleEntries.

Referenced by main().

+ Here is the caller graph for this function:

◆ compilerRunTimeLibs()

static QStringList compilerRunTimeLibs ( const QString & qtBinDir,
Platform platform,
bool isDebug,
unsigned short machineArch )
static

Definition at line 1357 of file main.cpp.

◆ createQMakeOption()

static QCommandLineOption createQMakeOption ( )
static

Definition at line 244 of file main.cpp.

◆ createQtPathsOption()

static QCommandLineOption createQtPathsOption ( )
static

Definition at line 253 of file main.cpp.

◆ createVerboseOption()

static QCommandLineOption createVerboseOption ( )
static

Definition at line 262 of file main.cpp.

◆ DECLARE_KNOWN_MODULE() [1/10]

DECLARE_KNOWN_MODULE ( 3DQuick )

◆ DECLARE_KNOWN_MODULE() [2/10]

DECLARE_KNOWN_MODULE ( Core )

◆ DECLARE_KNOWN_MODULE() [3/10]

DECLARE_KNOWN_MODULE ( Designer )

◆ DECLARE_KNOWN_MODULE() [4/10]

DECLARE_KNOWN_MODULE ( DesignerComponents )

◆ DECLARE_KNOWN_MODULE() [5/10]

DECLARE_KNOWN_MODULE ( Gui )

◆ DECLARE_KNOWN_MODULE() [6/10]

DECLARE_KNOWN_MODULE ( Qml )

◆ DECLARE_KNOWN_MODULE() [7/10]

DECLARE_KNOWN_MODULE ( QmlTooling )

◆ DECLARE_KNOWN_MODULE() [8/10]

DECLARE_KNOWN_MODULE ( Quick )

◆ DECLARE_KNOWN_MODULE() [9/10]

DECLARE_KNOWN_MODULE ( WebEngineCore )

◆ DECLARE_KNOWN_MODULE() [10/10]

DECLARE_KNOWN_MODULE ( Widgets )

◆ deploy()

◆ deployPlugin()

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

Definition at line 968 of file main.cpp.

References MatchDebug, and optVerboseLevel.

◆ deployTranslations()

static bool deployTranslations ( const QString & sourcePath,
const ModuleBitset & usedQtModules,
const QString & target,
const Options & options,
QString * errorMessage )
static

Definition at line 1156 of file main.cpp.

◆ deployWebEngineCore()

static bool deployWebEngineCore ( const QMap< QString, QString > & qtpathsVariables,
const PluginInformation & pluginInfo,
const Options & options,
bool isDebug,
QString * errorMessage )
static

Definition at line 1839 of file main.cpp.

References optVerboseLevel, Options::translations, and webEngineProcessC.

◆ deployWebProcess()

static bool deployWebProcess ( const QMap< QString, QString > & qtpathsVariables,
const char * binaryName,
const PluginInformation & pluginInfo,
const Options & sourceOptions,
QString * errorMessage )
static

Definition at line 1818 of file main.cpp.

References Options::quickImports, and Options::translations.

◆ findBinary()

static QString findBinary ( const QString & directory,
Platform platform )
inlinestatic

Definition at line 218 of file main.cpp.

◆ findDependentQtLibraries()

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

Definition at line 809 of file main.cpp.

◆ findFFmpegLibs()

static QStringList findFFmpegLibs ( const QString & qtBinDir,
Platform platform )
static

Definition at line 1213 of file main.cpp.

◆ findMinGWRuntimePaths()

static QStringList findMinGWRuntimePaths ( const QString & qtBinDir,
Platform platform,
const QStringList & runtimeFilters )
static

Definition at line 1329 of file main.cpp.

◆ findOpenSslLibraries()

static QStringList findOpenSslLibraries ( const QString & openSslRootDir,
Platform platform )
static

Definition at line 1241 of file main.cpp.

◆ findQtPlugins()

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 PluginSelections::includeSoftPlugins, and optVerboseLevel.

◆ formatQtModules()

static QByteArray formatQtModules ( const ModuleBitset & mask,
bool option = false )
static

Definition at line 103 of file main.cpp.

◆ formatQtPlugins()

static QString formatQtPlugins ( const PluginInformation & pluginInfo)
static

Definition at line 118 of file main.cpp.

◆ getIcuVersion()

static QString getIcuVersion ( const QString & libName)
static

Definition at line 1452 of file main.cpp.

◆ helpText()

static QString helpText ( const QCommandLineParser & p,
const PluginInformation & pluginInfo )
inlinestatic

Definition at line 764 of file main.cpp.

References qtModuleEntries.

◆ isQtModule()

static bool isQtModule ( const QString & libName)
inlinestatic

Definition at line 799 of file main.cpp.

◆ libraryPath()

static QString libraryPath ( const QString & libraryLocation,
const char * name,
const QString & infix,
Platform platform,
bool debug )
static

Definition at line 1280 of file main.cpp.

◆ lineBreak()

static QString lineBreak ( QString s)
inlinestatic

Definition at line 752 of file main.cpp.

◆ main()

QT_END_NAMESPACE QT_USE_NAMESPACE int main ( int argc,
char ** argv )

[48]

[dynamic_tooltip]

[5]

[2]

[0]

[6]

[48]

[48]

[6]

[0]

[0]

[1]

[1]

[2]

[2]

[3]

[3]

[0]

[0]

[1]

[1]

[0]

[0]

[0]

[0]

Definition at line 1901 of file main.cpp.

References assignKnownModuleIds(), CommandLineParseError, CommandLineParseHelpRequested, CommandLineVersionRequested, Options::json, optVerboseLevel, and qtModuleEntries.

+ Here is the call graph for this function:

◆ moduleNameToOptionName()

static QString moduleNameToOptionName ( const QString & moduleName,
bool internal )
static

Definition at line 91 of file main.cpp.

◆ msgFileDoesNotExist()

static QString msgFileDoesNotExist ( const QString & file)
static

Definition at line 233 of file main.cpp.

◆ needsPluginType()

static bool needsPluginType ( const QString & subDirName,
const PluginInformation & pluginInfo,
const PluginSelections & pluginSelections )
static

Definition at line 1058 of file main.cpp.

◆ parseArguments()

◆ parseEarlyArguments()

static int parseEarlyArguments ( const QStringList & arguments,
Options * options,
QString * errorMessage )
static

Definition at line 271 of file main.cpp.

References CommandLineParseError, and optVerboseLevel.

◆ parseExclusiveOptions()

static ExlusiveOptionValue parseExclusiveOptions ( const QCommandLineParser * parser,
const QCommandLineOption & enableOption,
const QCommandLineOption & disableOption )
static

Definition at line 157 of file main.cpp.

References OptionAuto, OptionDisabled, and OptionEnabled.

◆ pdbFileName()

static QString pdbFileName ( QString libraryFileName)
static

Definition at line 862 of file main.cpp.

◆ platformFromMkSpec()

static Platform platformFromMkSpec ( const QString & xSpec)
static

Definition at line 133 of file main.cpp.

◆ qmlCacheFileFilters()

static QStringList qmlCacheFileFilters ( )
inlinestatic

Definition at line 870 of file main.cpp.

◆ qtModule()

static qint64 qtModule ( QString module,
const QString & infix )
static

Definition at line 942 of file main.cpp.

◆ qtVersion()

static int qtVersion ( const QMap< QString, QString > & qtpathsVariables)
inlinestatic

Definition at line 1419 of file main.cpp.

◆ translationNameFilters()

static QStringList translationNameFilters ( const ModuleBitset & modules,
const QString & prefix )
static

Definition at line 1143 of file main.cpp.

◆ updateLibrary()

static bool updateLibrary ( const QString & sourceFileName,
const QString & targetDirectory,
const Options & options,
QString * errorMessage )
static

Definition at line 1430 of file main.cpp.

References Options::deployPdb, and Options::ignoreLibraryErrors.

◆ vcDebugRedistDir()

static QString vcDebugRedistDir ( )
static

Definition at line 1292 of file main.cpp.

◆ vcRedistDir()

static QString vcRedistDir ( )
static

Definition at line 1294 of file main.cpp.

◆ webProcessBinary()

static QString webProcessBinary ( const char * binaryName,
Platform p )
inlinestatic

Definition at line 85 of file main.cpp.

Variable Documentation

◆ qtModuleEntries

static QtModuleInfoStore qtModuleEntries
static

Definition at line 39 of file main.cpp.

Referenced by assignKnownModuleIds(), helpText(), main(), and parseArguments().

◆ webEngineProcessC

static const char webEngineProcessC = "QtWebEngineProcess"
static

Definition at line 83 of file main.cpp.

Referenced by deployWebEngineCore().