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

(f391f25e334acb9ca0fcab659a5f0c9c6173a3d5)

#include <QCoreApplication>
#include <QCommandLineParser>
#include <QCommandLineOption>
#include <QDebug>
#include <QDir>
#include <QDirIterator>
#include <QFile>
#include <QFileInfo>
#include <QHash>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QProcess>
#include <QStandardPaths>
#include <QString>
#include <QStringList>
#include <QSet>
#include <QElapsedTimer>
#include <QRegularExpression>
#include "../shared/depfile_shared.h"
Include dependency graph for main.cpp:

Go to the source code of this file.

Classes

struct  Options
class  QProcessExt
struct  PromotedReason
struct  TestQmlModule
struct  QtDependency
struct  QmlImportInfo
struct  SigningConfig

Functions

static void printHelp ()
static bool parseCommandLine (const QStringList &arguments, Options *options)
static QString sdkVersion (const QString &sdkRoot)
static bool readInputConfiguration (Options *options)
static bool copyFileIfNewer (const QString &sourceFileName, const QString &destinationFileName, bool verbose, bool forceOverwrite=false)
static bool writeDepfile (const Options &options, const QString &hapOutputPath)
static bool copyRecursively (const QString &sourceDir, const QString &destDir, bool verbose, const QString &topDest={})
static bool copyTemplate (const Options &options)
static bool reasonNeedsPromotion (const QString &reason)
static QString synthesizePermissionReasonId (const QString &permissionName)
static QString jsonStringEscape (const QString &ss)
static bool isValidHarmonyOsAbilityOrientation (const QString &valuevalue)
static bool customizeTemplate (const Options &options)
static bool copyApplicationBinary (const Options &options)
static bool copyFileToArchitectures (const Options &options, const QString &sourcePath, const QString &relativeDestPath, bool trackInDepfile=true)
static QString findStdCppLibrary (const Options &options, const QString &arch)
static bool copyProjectLibraries (const Options &options)
static void scanTestBinariesDir (const QString &dirPath, const QStringList &excludeList, const QStringList &excludeDirs, QStringList &found, QStringList &foundHelpers, QSet< QString > &helperNames)
static bool copyTestBinaries (const Options &options, QStringList &bundledBinaries)
static bool writeTestBinariesList (const Options &options, const QStringList &bundledBinaries)
static QString readElfSoname (const Options &options, const QString &binaryPath)
static bool copyAllQtLibs (const Options &options)
static bool copyAllQtPlugins (const Options &options)
static bool copyExtraPlugins (const Options &options)
static bool copyQmlDir (const QString &srcDir, const QString &relPath, const QString &qmlDestBase, const Options &options)
static QString hapQmlDir (const Options &options)
static bool copyAllQmlModules (const Options &options)
static bool readQmldirLines (const QString &qmldirPath, QStringList &lines)
static bool copyQmldirPlugins (const QString &qmldirPath, const Options &options)
static bool getQmldirModuleUri (const QString &qmldirPath, QString &uri)
static QString findNearestEnclosingTestDir (const QString &startDir, const QSet< QString > &testDirs)
static bool getTestQmlModuleDeployDir (const TestQmlModule &testModule, QString &deployDir)
static QList< TestQmlModule > findTestQmlModules (const Options &options)
static bool verifyUniqueTestQmlModuleDeployDirs (const QList< TestQmlModule > &modules)
static bool copyTestQmlModuleFiles (const QString &moduleSrcDirPath, const QString &destModuleDirPath, const Options &options)
static bool copyTestQmlModules (const QList< TestQmlModule > &modules, const Options &options)
static QString findLlvmReadobj (const Options &options)
static QStringList readElfDependencies (const Options &options, const QString &binaryPath)
static QString findExtraDepLibrary (const Options &options, const QString &libName)
static bool isSystemLibrary (const QString &libName)
static QString findQtLibrary (const Options &options, const QString &libName)
static bool detectAndCopyDependencies (const Options &options, QSet< QString > &processedLibs)
static QString findQtPluginsDirectory (const Options &options)
static bool copyPlatformPlugin (const Options &options, const QString &qtPluginsPath, QSet< QString > &processedLibs)
static bool copyPlugins (const Options &options, QSet< QString > &processedLibs)
static QList< QmlImportInfo > scanQmlImports (const Options &options, bool *ok=nullptr)
static bool copyQmlFiles (const Options &options)
static bool copyQmlImports (const Options &options, const QList< QmlImportInfo > &imports, QSet< QString > &processedLibs)
static bool resolveSigningConfig (const Options &options, SigningConfig *signing)
static bool injectSigningConfig (const Options &options, const SigningConfig &signing)
static QString findJavaExecutable ()
static QString findHapSignTool (const Options &options)
static QString compatibleApiVersion (const Options &options)
static bool signHap (const Options &options, const SigningConfig &signing, QString *hapPath)
static bool buildHap (const Options &options, QString *hapOutputPath=nullptr)
static bool installToDevice (const Options &options, const QString &hapPath)
int main (int argc, char *argv[])

Variables

static QStringList dependenciesForDepfile

Function Documentation

◆ buildHap()

bool buildHap ( const Options & options,
QString * hapOutputPath = nullptr )
static

Definition at line 3527 of file main.cpp.

References Options::buildPackage, and Options::verbose.

◆ compatibleApiVersion()

QString compatibleApiVersion ( const Options & options)
static

Definition at line 3387 of file main.cpp.

◆ copyAllQmlModules()

bool copyAllQmlModules ( const Options & options)
static

Definition at line 1824 of file main.cpp.

References Options::verbose.

Referenced by main().

Here is the caller graph for this function:

◆ copyAllQtLibs()

bool copyAllQtLibs ( const Options & options)
static

Definition at line 1586 of file main.cpp.

References Options::verbose.

Referenced by main().

Here is the caller graph for this function:

◆ copyAllQtPlugins()

bool copyAllQtPlugins ( const Options & options)
static

Definition at line 1664 of file main.cpp.

References Options::verbose.

Referenced by main().

Here is the caller graph for this function:

◆ copyApplicationBinary()

bool copyApplicationBinary ( const Options & options)
static

Definition at line 1267 of file main.cpp.

References Options::verbose.

Referenced by main().

Here is the caller graph for this function:

◆ copyExtraPlugins()

bool copyExtraPlugins ( const Options & options)
static

Definition at line 1747 of file main.cpp.

References Options::verbose.

Referenced by main().

Here is the caller graph for this function:

◆ copyFileIfNewer()

bool copyFileIfNewer ( const QString & sourceFileName,
const QString & destinationFileName,
bool verbose,
bool forceOverwrite = false )
static

Definition at line 543 of file main.cpp.

◆ copyFileToArchitectures()

bool copyFileToArchitectures ( const Options & options,
const QString & sourcePath,
const QString & relativeDestPath,
bool trackInDepfile = true )
static

Definition at line 1319 of file main.cpp.

◆ copyPlatformPlugin()

bool copyPlatformPlugin ( const Options & options,
const QString & qtPluginsPath,
QSet< QString > & processedLibs )
static

Definition at line 2427 of file main.cpp.

References Options::verbose.

◆ copyPlugins()

bool copyPlugins ( const Options & options,
QSet< QString > & processedLibs )
static

Definition at line 2517 of file main.cpp.

References Options::verbose.

◆ copyProjectLibraries()

bool copyProjectLibraries ( const Options & options)
static

Definition at line 1378 of file main.cpp.

References Options::verbose.

Referenced by main().

Here is the caller graph for this function:

◆ copyQmlDir()

bool copyQmlDir ( const QString & srcDir,
const QString & relPath,
const QString & qmlDestBase,
const Options & options )
static

Definition at line 1783 of file main.cpp.

◆ copyQmldirPlugins()

bool copyQmldirPlugins ( const QString & qmldirPath,
const Options & options )
static

Definition at line 1880 of file main.cpp.

◆ copyQmlFiles()

bool copyQmlFiles ( const Options & options)
static

Definition at line 2842 of file main.cpp.

References Options::verbose.

Referenced by main().

Here is the caller graph for this function:

◆ copyQmlImports()

bool copyQmlImports ( const Options & options,
const QList< QmlImportInfo > & imports,
QSet< QString > & processedLibs )
static

Definition at line 2880 of file main.cpp.

References Options::verbose.

◆ copyRecursively()

bool copyRecursively ( const QString & sourceDir,
const QString & destDir,
bool verbose,
const QString & topDest = {} )
static

Definition at line 630 of file main.cpp.

◆ copyTemplate()

bool copyTemplate ( const Options & options)
static

Definition at line 675 of file main.cpp.

References Options::verbose.

Referenced by main().

Here is the caller graph for this function:

◆ copyTestBinaries()

bool copyTestBinaries ( const Options & options,
QStringList & bundledBinaries )
static

Definition at line 1467 of file main.cpp.

References Options::verbose.

◆ copyTestQmlModuleFiles()

bool copyTestQmlModuleFiles ( const QString & moduleSrcDirPath,
const QString & destModuleDirPath,
const Options & options )
static

Definition at line 2033 of file main.cpp.

References dependenciesForDepfile.

◆ copyTestQmlModules()

bool copyTestQmlModules ( const QList< TestQmlModule > & modules,
const Options & options )
static

Definition at line 2068 of file main.cpp.

◆ customizeTemplate()

bool customizeTemplate ( const Options & options)
static

Definition at line 801 of file main.cpp.

References Options::harmonyOsAppVersionCode, Options::testBundleMode, and Options::verbose.

Referenced by main().

Here is the caller graph for this function:

◆ detectAndCopyDependencies()

bool detectAndCopyDependencies ( const Options & options,
QSet< QString > & processedLibs )
static

Definition at line 2257 of file main.cpp.

References Options::verbose.

◆ findExtraDepLibrary()

QString findExtraDepLibrary ( const Options & options,
const QString & libName )
static

Definition at line 2190 of file main.cpp.

◆ findHapSignTool()

QString findHapSignTool ( const Options & options)
static

Definition at line 3360 of file main.cpp.

◆ findJavaExecutable()

QString findJavaExecutable ( )
static

Definition at line 3343 of file main.cpp.

◆ findLlvmReadobj()

QString findLlvmReadobj ( const Options & options)
static

Definition at line 2085 of file main.cpp.

◆ findNearestEnclosingTestDir()

QString findNearestEnclosingTestDir ( const QString & startDir,
const QSet< QString > & testDirs )
static

Definition at line 1938 of file main.cpp.

◆ findQtLibrary()

QString findQtLibrary ( const Options & options,
const QString & libName )
static

Definition at line 2223 of file main.cpp.

◆ findQtPluginsDirectory()

QString findQtPluginsDirectory ( const Options & options)
static

Definition at line 2399 of file main.cpp.

◆ findStdCppLibrary()

QString findStdCppLibrary ( const Options & options,
const QString & arch )
static

Definition at line 1347 of file main.cpp.

◆ findTestQmlModules()

QList< TestQmlModule > findTestQmlModules ( const Options & options)
static

Definition at line 1973 of file main.cpp.

◆ getQmldirModuleUri()

bool getQmldirModuleUri ( const QString & qmldirPath,
QString & uri )
static

Definition at line 1918 of file main.cpp.

◆ getTestQmlModuleDeployDir()

bool getTestQmlModuleDeployDir ( const TestQmlModule & testModule,
QString & deployDir )
static

Definition at line 1957 of file main.cpp.

◆ hapQmlDir()

QString hapQmlDir ( const Options & options)
static

Definition at line 1819 of file main.cpp.

◆ injectSigningConfig()

bool injectSigningConfig ( const Options & options,
const SigningConfig & signing )
static

Definition at line 3257 of file main.cpp.

References SigningConfig::enabled, SigningConfig::encryptedPasswords, and Options::verbose.

Referenced by main().

Here is the caller graph for this function:

◆ installToDevice()

bool installToDevice ( const Options & options,
const QString & hapPath )
static

Definition at line 3655 of file main.cpp.

References Options::installApk, and Options::verbose.

◆ isSystemLibrary()

bool isSystemLibrary ( const QString & libName)
static

Definition at line 2210 of file main.cpp.

◆ isValidHarmonyOsAbilityOrientation()

bool isValidHarmonyOsAbilityOrientation ( const QString & value)
static

Definition at line 774 of file main.cpp.

◆ jsonStringEscape()

QString jsonStringEscape ( const QString & s)
static

Definition at line 764 of file main.cpp.

◆ main()

int main ( int argc,
char * argv[] )

Definition at line 3752 of file main.cpp.

References copyAllQmlModules(), copyAllQtLibs(), copyAllQtPlugins(), copyApplicationBinary(), copyExtraPlugins(), copyProjectLibraries(), copyQmlFiles(), copyTemplate(), customizeTemplate(), injectSigningConfig(), readInputConfiguration(), resolveSigningConfig(), Options::testBundleMode, and Options::verbose.

Here is the call graph for this function:

◆ parseCommandLine()

bool parseCommandLine ( const QStringList & arguments,
Options * options )
static

Definition at line 166 of file main.cpp.

References Options::buildPackage, Options::installApk, printHelp(), Options::releaseMode, Options::testBundleMode, and Options::verbose.

Here is the call graph for this function:

◆ printHelp()

void printHelp ( )
static

Definition at line 112 of file main.cpp.

Referenced by parseCommandLine().

Here is the caller graph for this function:

◆ readElfDependencies()

QStringList readElfDependencies ( const Options & options,
const QString & binaryPath )
static

Definition at line 2133 of file main.cpp.

◆ readElfSoname()

QString readElfSoname ( const Options & options,
const QString & binaryPath )
static

Definition at line 2109 of file main.cpp.

◆ readInputConfiguration()

bool readInputConfiguration ( Options * options)
static

Definition at line 286 of file main.cpp.

References Options::harmonyOsAppVersionCode, Options::testBundleMode, and Options::verbose.

Referenced by main().

Here is the caller graph for this function:

◆ readQmldirLines()

bool readQmldirLines ( const QString & qmldirPath,
QStringList & lines )
static

Definition at line 1865 of file main.cpp.

◆ reasonNeedsPromotion()

bool reasonNeedsPromotion ( const QString & reason)
static

Definition at line 741 of file main.cpp.

◆ resolveSigningConfig()

bool resolveSigningConfig ( const Options & options,
SigningConfig * signing )
static

Definition at line 3124 of file main.cpp.

References SigningConfig::enabled, SigningConfig::encryptedPasswords, and Options::verbose.

Referenced by main().

Here is the caller graph for this function:

◆ scanQmlImports()

QList< QmlImportInfo > scanQmlImports ( const Options & options,
bool * ok = nullptr )
static

Definition at line 2619 of file main.cpp.

References Options::verbose.

◆ scanTestBinariesDir()

void scanTestBinariesDir ( const QString & dirPath,
const QStringList & excludeList,
const QStringList & excludeDirs,
QStringList & found,
QStringList & foundHelpers,
QSet< QString > & helperNames )
static

Definition at line 1425 of file main.cpp.

◆ sdkVersion()

QString sdkVersion ( const QString & sdkRoot)
static

Definition at line 264 of file main.cpp.

◆ signHap()

bool signHap ( const Options & options,
const SigningConfig & signing,
QString * hapPath )
static

◆ synthesizePermissionReasonId()

QString synthesizePermissionReasonId ( const QString & permissionName)
static

Definition at line 753 of file main.cpp.

◆ verifyUniqueTestQmlModuleDeployDirs()

bool verifyUniqueTestQmlModuleDeployDirs ( const QList< TestQmlModule > & modules)
static

Definition at line 2010 of file main.cpp.

◆ writeDepfile()

bool writeDepfile ( const Options & options,
const QString & hapOutputPath )
static

Definition at line 589 of file main.cpp.

References Options::verbose.

◆ writeTestBinariesList()

bool writeTestBinariesList ( const Options & options,
const QStringList & bundledBinaries )
static

Definition at line 1556 of file main.cpp.

References Options::verbose.

Variable Documentation

◆ dependenciesForDepfile

QStringList dependenciesForDepfile
static

Definition at line 30 of file main.cpp.