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

(c8be4846dc9eda3456c5565a7165b125f8ab5ad5)

#include <QCoreApplication>
#include <QStringList>
#include <QDir>
#include <QDirIterator>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonValue>
#include <QDebug>
#include <QDataStream>
#include <QXmlStreamReader>
#include <QStandardPaths>
#include <QUuid>
#include <QDirListing>
#include <QElapsedTimer>
#include <QRegularExpression>
#include <QSettings>
#include <QHash>
#include <QSet>
#include <QMap>
#include <depfile_shared.h>
#include <shellquote_shared.h>
#include <algorithm>
Include dependency graph for main.cpp:

Go to the source code of this file.

Classes

struct  QtDependency
struct  QtInstallDirectoryWithTriple
struct  Options
struct  GradleBuildConfigs

Macros

#define QT_POPEN_READ   "r"

Typedefs

typedef QMap< QByteArray, QByteArrayGradleProperties

Enumerations

enum  PackageType {
  AAB , AAR , UnsignedAPK , SignedAPK ,
  AAB , AAR , UnsignedAPK , SignedAPK
}
enum  ErrorCode {
  Success , SyntaxErrorOrHelpRequested = 1 , CannotReadInputFile = 2 , CannotCopyAndroidTemplate = 3 ,
  CannotReadDependencies = 4 , CannotCopyGnuStl = 5 , CannotCopyQtFiles = 6 , CannotFindApplicationBinary = 7 ,
  CannotCopyAndroidExtraLibs = 10 , CannotCopyAndroidSources = 11 , CannotUpdateAndroidFiles = 12 , CannotCreateAndroidProject = 13 ,
  CannotBuildAndroidProject = 14 , CannotSignPackage = 15 , CannotInstallApk = 16 , CannotCopyAndroidExtraResources = 19 ,
  CannotCopyApk = 20 , CannotCreateRcc = 21 , CannotGenerateJavaQmlComponents = 22 , Success ,
  SyntaxErrorOrHelpRequested = 1 , CannotReadInputFile = 2 , CannotCopyAndroidTemplate = 3 , CannotReadDependencies = 4 ,
  CannotCopyGnuStl = 5 , CannotCopyQtFiles = 6 , CannotFindApplicationBinary = 7 , CannotCopyAndroidExtraLibs = 10 ,
  CannotCopyAndroidSources = 11 , CannotUpdateAndroidFiles = 12 , CannotCreateAndroidProject = 13 , CannotBuildAndroidProject = 14 ,
  CannotSignPackage = 15 , CannotInstallApk = 16 , CannotCopyAndroidExtraResources = 19 , CannotCopyApk = 20 ,
  CannotCreateRcc = 21 , CannotGenerateJavaQmlComponents = 22
}
enum  PackageType {
  AAB , AAR , UnsignedAPK , SignedAPK ,
  AAB , AAR , UnsignedAPK , SignedAPK
}
enum  ErrorCode {
  Success , SyntaxErrorOrHelpRequested = 1 , CannotReadInputFile = 2 , CannotCopyAndroidTemplate = 3 ,
  CannotReadDependencies = 4 , CannotCopyGnuStl = 5 , CannotCopyQtFiles = 6 , CannotFindApplicationBinary = 7 ,
  CannotCopyAndroidExtraLibs = 10 , CannotCopyAndroidSources = 11 , CannotUpdateAndroidFiles = 12 , CannotCreateAndroidProject = 13 ,
  CannotBuildAndroidProject = 14 , CannotSignPackage = 15 , CannotInstallApk = 16 , CannotCopyAndroidExtraResources = 19 ,
  CannotCopyApk = 20 , CannotCreateRcc = 21 , CannotGenerateJavaQmlComponents = 22 , Success ,
  SyntaxErrorOrHelpRequested = 1 , CannotReadInputFile = 2 , CannotCopyAndroidTemplate = 3 , CannotReadDependencies = 4 ,
  CannotCopyGnuStl = 5 , CannotCopyQtFiles = 6 , CannotFindApplicationBinary = 7 , CannotCopyAndroidExtraLibs = 10 ,
  CannotCopyAndroidSources = 11 , CannotUpdateAndroidFiles = 12 , CannotCreateAndroidProject = 13 , CannotBuildAndroidProject = 14 ,
  CannotSignPackage = 15 , CannotInstallApk = 16 , CannotCopyAndroidExtraResources = 19 , CannotCopyApk = 20 ,
  CannotCreateRcc = 21 , CannotGenerateJavaQmlComponents = 22
}

Functions

auto openProcess (const QString &command)
bool goodToCopy (const Options *options, const QString &file, QStringList *unmetDependencies)
bool checkCanImportFromRootPaths (const Options *options, const QString &absolutePath, const QString &moduleUrl)
bool readDependenciesFromElf (Options *options, const QString &fileName, QSet< QString > *usedDependencies, QSet< QString > *remainingDependencies)
QString architectureFromName (const QString &name)
static QString execSuffixAppended (QString path)
static QString batSuffixAppended (QString path)
QString defaultLibexecDir ()
static QString llvmReadobjPath (const Options &options)
QString fileArchitecture (const Options &options, const QString &path)
bool checkArchitecture (const Options &options, const QString &fileName)
void deleteMissingFiles (const Options &options, const QDir &srcDir, const QDir &dstDir)
Options parseOptions ()
void printHelp ()
bool quasiLexicographicalReverseLessThan (const QFileInfo &fi1, const QFileInfo &fi2)
bool alwaysOverwritableFile (const QString &fileName)
bool copyFileIfNewer (const QString &sourceFileName, const QString &destinationFileName, const Options &options, bool createSymlinksOnly=false, bool forceOverwrite=false)
GradleBuildConfigs gradleBuildConfigs (const QString &path)
QString cleanPackageName (QString packageName, bool *cleaned=nullptr)
QString detectLatestAndroidPlatform (const QString &sdkPath)
QString extractPackageName (Options *options)
bool parseCmakeBoolean (const QJsonValue &value)
bool readInputFileDirectory (Options *options, QJsonObject &jsonObject, const QString keyName)
bool readInputFile (Options *options)
bool isDeployment (const Options *options, Options::DeploymentMechanism deployment)
bool copyFiles (const QDir &sourceDirectory, const QDir &destinationDirectory, const Options &options, bool forceOverwrite=false)
void cleanTopFolders (const Options &options, const QDir &srcDir, const QString &dstDir)
void cleanAndroidFiles (const Options &options)
bool copyAndroidTemplate (const Options &options, const QString &androidTemplate, const QString &outDirPrefix=QString())
bool copyGradleTemplate (const Options &options)
bool copyAndroidTemplate (const Options &options)
bool copyAndroidSources (const Options &options)
bool copyAndroidExtraLibs (Options *options)
QStringList allFilesInside (const QDir &current, const QDir &rootDir)
bool copyAndroidExtraResources (Options *options)
bool updateFile (const QString &fileName, const QHash< QString, QString > &replacements)
bool updateLibsXml (Options *options)
bool updateStringsXml (const Options &options)
bool updateAndroidManifest (Options &options)
bool updateAndroidFiles (Options &options)
static QString absoluteFilePath (const Options *options, const QString &relativeFileName)
QList< QtDependencyfindFilesRecursively (const Options &options, const QFileInfo &info, const QString &rootPath)
QList< QtDependencyfindFilesRecursively (const Options &options, const QString &fileName)
void readDependenciesFromFiles (Options *options, const QList< QtDependency > &files, QSet< QString > &usedDependencies, QSet< QString > &remainingDependencies)
bool readAndroidDependencyXml (Options *options, const QString &moduleName, QSet< QString > *usedDependencies, QSet< QString > *remainingDependencies)
QStringList getQtLibsFromElf (const Options &options, const QString &fileName)
bool scanImports (Options *options, QSet< QString > *usedDependencies)
bool runCommand (const Options &options, const QString &command)
bool createRcc (const Options &options)
bool readDependencies (Options *options)
bool containsApplicationBinary (Options *options)
auto runAdb (const Options &options, const QString &arguments) -> decltype(openProcess({}))
bool copyQtFiles (Options *options)
QStringList getLibraryProjectsInOutputFolder (const Options &options)
QString findInPath (const QString &fileName)
static GradleProperties readGradleProperties (const QString &path)
static bool mergeGradleProperties (const QString &path, GradleProperties properties)
bool buildAndroidProject (const Options &options)
bool uninstallApk (const Options &options)
QString packagePath (const Options &options, PackageType packageType)
bool installApk (const Options &options)
bool copyPackage (const Options &options)
bool copyStdCpp (Options *options)
static QString zipalignPath (const Options &options, bool *ok)
bool signAAB (const Options &options)
bool signPackage (const Options &options)
bool writeDependencyFile (const Options &options)
int generateJavaQmlComponents (const Options &options)
int main (int argc, char *argv[])
 [ctor_close]

Variables

static const bool mustReadOutputAnyway = true
static QStringList dependenciesForDepfile
static const QHash< QByteArray, QByteArrayelfArchitectures

Macro Definition Documentation

◆ QT_POPEN_READ

#define QT_POPEN_READ   "r"

Definition at line 42 of file main.cpp.

Typedef Documentation

◆ GradleProperties

Definition at line 2859 of file main.cpp.

Enumeration Type Documentation

◆ ErrorCode [1/2]

enum ErrorCode
Enumerator
Success 
SyntaxErrorOrHelpRequested 
CannotReadInputFile 
CannotCopyAndroidTemplate 
CannotReadDependencies 
CannotCopyGnuStl 
CannotCopyQtFiles 
CannotFindApplicationBinary 
CannotCopyAndroidExtraLibs 
CannotCopyAndroidSources 
CannotUpdateAndroidFiles 
CannotCreateAndroidProject 
CannotBuildAndroidProject 
CannotSignPackage 
CannotInstallApk 
CannotCopyAndroidExtraResources 
CannotCopyApk 
CannotCreateRcc 
CannotGenerateJavaQmlComponents 
Success 
SyntaxErrorOrHelpRequested 
CannotReadInputFile 
CannotCopyAndroidTemplate 
CannotReadDependencies 
CannotCopyGnuStl 
CannotCopyQtFiles 
CannotFindApplicationBinary 
CannotCopyAndroidExtraLibs 
CannotCopyAndroidSources 
CannotUpdateAndroidFiles 
CannotCreateAndroidProject 
CannotBuildAndroidProject 
CannotSignPackage 
CannotInstallApk 
CannotCopyAndroidExtraResources 
CannotCopyApk 
CannotCreateRcc 
CannotGenerateJavaQmlComponents 

Definition at line 3413 of file main.cpp.

◆ ErrorCode [2/2]

enum ErrorCode
Enumerator
Success 
SyntaxErrorOrHelpRequested 
CannotReadInputFile 
CannotCopyAndroidTemplate 
CannotReadDependencies 
CannotCopyGnuStl 
CannotCopyQtFiles 
CannotFindApplicationBinary 
CannotCopyAndroidExtraLibs 
CannotCopyAndroidSources 
CannotUpdateAndroidFiles 
CannotCreateAndroidProject 
CannotBuildAndroidProject 
CannotSignPackage 
CannotInstallApk 
CannotCopyAndroidExtraResources 
CannotCopyApk 
CannotCreateRcc 
CannotGenerateJavaQmlComponents 
Success 
SyntaxErrorOrHelpRequested 
CannotReadInputFile 
CannotCopyAndroidTemplate 
CannotReadDependencies 
CannotCopyGnuStl 
CannotCopyQtFiles 
CannotFindApplicationBinary 
CannotCopyAndroidExtraLibs 
CannotCopyAndroidSources 
CannotUpdateAndroidFiles 
CannotCreateAndroidProject 
CannotBuildAndroidProject 
CannotSignPackage 
CannotInstallApk 
CannotCopyAndroidExtraResources 
CannotCopyApk 
CannotCreateRcc 
CannotGenerateJavaQmlComponents 

Definition at line 3413 of file main.cpp.

◆ PackageType [1/2]

Enumerator
AAB 
AAR 
UnsignedAPK 
SignedAPK 
AAB 
AAR 
UnsignedAPK 
SignedAPK 

Definition at line 3089 of file main.cpp.

◆ PackageType [2/2]

Enumerator
AAB 
AAR 
UnsignedAPK 
SignedAPK 
AAB 
AAR 
UnsignedAPK 
SignedAPK 

Definition at line 3089 of file main.cpp.

Function Documentation

◆ absoluteFilePath()

QString absoluteFilePath ( const Options * options,
const QString & relativeFileName )
static

Definition at line 1982 of file main.cpp.

◆ allFilesInside()

QStringList allFilesInside ( const QDir & current,
const QDir & rootDir )

Definition at line 1597 of file main.cpp.

◆ alwaysOverwritableFile()

bool alwaysOverwritableFile ( const QString & fileName)

Definition at line 613 of file main.cpp.

◆ architectureFromName()

QString architectureFromName ( const QString & name)

Definition at line 275 of file main.cpp.

◆ batSuffixAppended()

QString batSuffixAppended ( QString path)
static

Definition at line 292 of file main.cpp.

◆ buildAndroidProject()

bool buildAndroidProject ( const Options & options)

Definition at line 2939 of file main.cpp.

◆ checkArchitecture()

bool checkArchitecture ( const Options & options,
const QString & fileName )

Definition at line 349 of file main.cpp.

◆ checkCanImportFromRootPaths()

bool checkCanImportFromRootPaths ( const Options * options,
const QString & absolutePath,
const QString & moduleUrl )

Definition at line 2515 of file main.cpp.

◆ cleanAndroidFiles()

void cleanAndroidFiles ( const Options & options)

Definition at line 1464 of file main.cpp.

◆ cleanPackageName()

QString cleanPackageName ( QString packageName,
bool * cleaned = nullptr )

Definition at line 720 of file main.cpp.

◆ cleanTopFolders()

void cleanTopFolders ( const Options & options,
const QDir & srcDir,
const QString & dstDir )

Definition at line 1455 of file main.cpp.

◆ containsApplicationBinary()

bool containsApplicationBinary ( Options * options)

Definition at line 2662 of file main.cpp.

◆ copyAndroidExtraLibs()

bool copyAndroidExtraLibs ( Options * options)

Definition at line 1548 of file main.cpp.

◆ copyAndroidExtraResources()

bool copyAndroidExtraResources ( Options * options)

Definition at line 1612 of file main.cpp.

◆ copyAndroidSources()

bool copyAndroidSources ( const Options & options)

Definition at line 1531 of file main.cpp.

◆ copyAndroidTemplate() [1/2]

bool copyAndroidTemplate ( const Options & options)

Definition at line 1511 of file main.cpp.

◆ copyAndroidTemplate() [2/2]

bool copyAndroidTemplate ( const Options & options,
const QString & androidTemplate,
const QString & outDirPrefix = QString() )

Definition at line 1475 of file main.cpp.

◆ copyFileIfNewer()

bool copyFileIfNewer ( const QString & sourceFileName,
const QString & destinationFileName,
const Options & options,
bool createSymlinksOnly = false,
bool forceOverwrite = false )

Definition at line 621 of file main.cpp.

◆ copyFiles()

bool copyFiles ( const QDir & sourceDirectory,
const QDir & destinationDirectory,
const Options & options,
bool forceOverwrite = false )

Definition at line 1426 of file main.cpp.

References Options::useLegacyPackaging.

◆ copyGradleTemplate()

bool copyGradleTemplate ( const Options & options)

Definition at line 1493 of file main.cpp.

References Options::isZstdCompressionEnabled.

◆ copyPackage()

bool copyPackage ( const Options & options)

Definition at line 3164 of file main.cpp.

◆ copyQtFiles()

bool copyQtFiles ( Options * options)

Definition at line 2740 of file main.cpp.

◆ copyStdCpp()

bool copyStdCpp ( Options * options)

Definition at line 3172 of file main.cpp.

◆ createRcc()

bool createRcc ( const Options & options)

Definition at line 2546 of file main.cpp.

◆ defaultLibexecDir()

QString defaultLibexecDir ( )

Definition at line 300 of file main.cpp.

◆ deleteMissingFiles()

void deleteMissingFiles ( const Options & options,
const QDir & srcDir,
const QDir & dstDir )

Definition at line 354 of file main.cpp.

◆ detectLatestAndroidPlatform()

QString detectLatestAndroidPlatform ( const QString & sdkPath)

Definition at line 792 of file main.cpp.

◆ execSuffixAppended()

QString execSuffixAppended ( QString path)
static

Definition at line 284 of file main.cpp.

◆ extractPackageName()

QString extractPackageName ( Options * options)

Definition at line 812 of file main.cpp.

◆ fileArchitecture()

QString fileArchitecture ( const Options & options,
const QString & path )

Definition at line 317 of file main.cpp.

◆ findFilesRecursively() [1/2]

QList< QtDependency > findFilesRecursively ( const Options & options,
const QFileInfo & info,
const QString & rootPath )

Definition at line 2023 of file main.cpp.

◆ findFilesRecursively() [2/2]

QList< QtDependency > findFilesRecursively ( const Options & options,
const QString & fileName )

Definition at line 2046 of file main.cpp.

◆ findInPath()

QString findInPath ( const QString & fileName)

Definition at line 2840 of file main.cpp.

◆ generateJavaQmlComponents()

int generateJavaQmlComponents ( const Options & options)

Definition at line 3466 of file main.cpp.

◆ getLibraryProjectsInOutputFolder()

QStringList getLibraryProjectsInOutputFolder ( const Options & options)

Definition at line 2811 of file main.cpp.

◆ getQtLibsFromElf()

QStringList getQtLibsFromElf ( const Options & options,
const QString & fileName )

Definition at line 2194 of file main.cpp.

◆ goodToCopy()

bool goodToCopy ( const Options * options,
const QString & file,
QStringList * unmetDependencies )

Definition at line 2717 of file main.cpp.

◆ gradleBuildConfigs()

GradleBuildConfigs gradleBuildConfigs ( const QString & path)

Definition at line 674 of file main.cpp.

◆ installApk()

bool installApk ( const Options & options)

Definition at line 3130 of file main.cpp.

◆ isDeployment()

bool isDeployment ( const Options * options,
Options::DeploymentMechanism deployment )

Definition at line 1421 of file main.cpp.

◆ llvmReadobjPath()

QString llvmReadobjPath ( const Options & options)
static

Definition at line 309 of file main.cpp.

◆ main()

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

[ctor_close]

[0] [1]

[main_cpp]

[main.cpp body]

The main function for the string list model example.

Create a default directory model and, using the index-based interface to the model and some QLabel widgets, populate the window's layout with the names of objects in the directory.

[0] //! [1]

[1]

[using a custom style]

[4]

[QApplication subclass]

[2]

[21]

[getter functions]

[0]

[3]

[main]

This creates and populates a model with values from a string list then displays the contents of the model using a QListView widget. [0]

[ctor_close]

[printing a custom type]

[printing a custom type] [storing a custom value]

[storing a custom value]

[retrieving a custom value]

[retrieving a custom value]

[0]

[0] [1]

[1]

[0]

[0]

[1]

[1] [2]

[2]

[0]

[0]

[2]

[2]

[22]

[22]

[3]

[3]

[4]

[4]

[10]

[10]

[qcinfo_stream]

[qcinfo_stream]

[11]

[11]

[12]

[12]

[13]

[13]

[qcinfo_printf]

[qcinfo_printf]

[14]

[14]

[15]

[15]

[16]

[16]

[17]

[17]

[0]

[0]

[1]

[1]

[2]

[2]

[Window class using revision]

[Window class using revision]

[0]

[0]

[1]

[1]

[2]

[2]

[write output] [start stream]

[start stream]

[write element]

[write element]

[finish stream]

[finish stream] [write output]

[1]

[1]

[0]

[0]

[0]

[0] //! [1]

[1]

[0]

[0] //! [1]

[1]

[0]

[0] //! [1]

[1] //! [2]

[2]

[0]

[0]

[1]

[1]

[Adding a resource]

[Adding a resource]

[Inserting an image with a cursor]

[Inserting an image with a cursor]

[Inserting an image using HTML]

[Inserting an image using HTML]

[0]

[0] //! [1]

[1]

[1]

[2]

[2]

[3]

[0]

[1]

[1]

Definition at line 3972 of file main.cpp.

◆ mergeGradleProperties()

bool mergeGradleProperties ( const QString & path,
GradleProperties properties )
static

Definition at line 2881 of file main.cpp.

◆ openProcess()

auto openProcess ( const QString & command)

Definition at line 51 of file main.cpp.

◆ packagePath()

QString packagePath ( const Options & options,
PackageType packageType )

Definition at line 3096 of file main.cpp.

◆ parseCmakeBoolean()

bool parseCmakeBoolean ( const QJsonValue & value)

Definition at line 839 of file main.cpp.

◆ parseOptions()

◆ printHelp()

void printHelp ( )

Definition at line 592 of file main.cpp.

◆ quasiLexicographicalReverseLessThan()

bool quasiLexicographicalReverseLessThan ( const QFileInfo & fi1,
const QFileInfo & fi2 )

Definition at line 600 of file main.cpp.

◆ readAndroidDependencyXml()

bool readAndroidDependencyXml ( Options * options,
const QString & moduleName,
QSet< QString > * usedDependencies,
QSet< QString > * remainingDependencies )

Definition at line 2101 of file main.cpp.

◆ readDependencies()

bool readDependencies ( Options * options)

Definition at line 2599 of file main.cpp.

◆ readDependenciesFromElf()

bool readDependenciesFromElf ( Options * options,
const QString & fileName,
QSet< QString > * usedDependencies,
QSet< QString > * remainingDependencies )

Definition at line 2241 of file main.cpp.

◆ readDependenciesFromFiles()

void readDependenciesFromFiles ( Options * options,
const QList< QtDependency > & files,
QSet< QString > & usedDependencies,
QSet< QString > & remainingDependencies )

Definition at line 2075 of file main.cpp.

◆ readGradleProperties()

GradleProperties readGradleProperties ( const QString & path)
static

Definition at line 2861 of file main.cpp.

◆ readInputFile()

bool readInputFile ( Options * options)

Definition at line 909 of file main.cpp.

◆ readInputFileDirectory()

bool readInputFileDirectory ( Options * options,
QJsonObject & jsonObject,
const QString keyName )

Definition at line 849 of file main.cpp.

◆ runAdb()

auto runAdb ( const Options & options,
const QString & arguments ) -> decltype(openProcess({}))

Definition at line 2691 of file main.cpp.

◆ runCommand()

bool runCommand ( const Options & options,
const QString & command )

Definition at line 2525 of file main.cpp.

◆ scanImports()

bool scanImports ( Options * options,
QSet< QString > * usedDependencies )

Definition at line 2286 of file main.cpp.

◆ signAAB()

bool signAAB ( const Options & options)

Definition at line 3211 of file main.cpp.

◆ signPackage()

bool signPackage ( const Options & options)

Definition at line 3298 of file main.cpp.

◆ uninstallApk()

bool uninstallApk ( const Options & options)

Definition at line 3061 of file main.cpp.

◆ updateAndroidFiles()

bool updateAndroidFiles ( Options & options)

Definition at line 1968 of file main.cpp.

◆ updateAndroidManifest()

bool updateAndroidManifest ( Options & options)

Definition at line 1860 of file main.cpp.

◆ updateFile()

bool updateFile ( const QString & fileName,
const QHash< QString, QString > & replacements )

Definition at line 1657 of file main.cpp.

References Options::deploymentMechanism, and Options::verbose.

◆ updateLibsXml()

bool updateLibsXml ( Options * options)

Definition at line 1706 of file main.cpp.

◆ updateStringsXml()

bool updateStringsXml ( const Options & options)

Definition at line 1831 of file main.cpp.

◆ writeDependencyFile()

bool writeDependencyFile ( const Options & options)

Definition at line 3436 of file main.cpp.

◆ zipalignPath()

QString zipalignPath ( const Options & options,
bool * ok )
static

Definition at line 3195 of file main.cpp.

Variable Documentation

◆ dependenciesForDepfile

QStringList dependenciesForDepfile
static

Definition at line 49 of file main.cpp.

◆ elfArchitectures

const QHash< QByteArray, QByteArray > elfArchitectures
static
Initial value:
= {
{"aarch64", "arm64-v8a"},
{"arm", "armeabi-v7a"},
{"i386", "x86"},
{"x86_64", "x86_64"}
}

Definition at line 262 of file main.cpp.

◆ mustReadOutputAnyway

const bool mustReadOutputAnyway = true
static

Definition at line 47 of file main.cpp.