11#include <QtCore/QDateTime>
12#include <QtCore/QJsonArray>
13#include <QtCore/QJsonObject>
14#include <QtCore/QJsonDocument>
61 str << reinterpret_cast<const wchar_t *>(
s.utf16());
82 for (
int i = m_files.
size() - 1;
i >= 0; --
i) {
83 if (m_files.
at(
i).second == targetDirectory)
92 for (
const SourceTargetMapping &
mapping : m_files) {
104 for (
const SourceTargetMapping &
mapping : m_files) {
128 SourceTargetMappings m_files;
171 QStringList *dependentLibraries = 0,
unsigned *wordSize = 0,
172 bool *isDebug = 0,
bool isMinGW =
false,
unsigned short *machineArch =
nullptr);
174 QStringList *dependentLibraries = 0,
unsigned *wordSize = 0,
179 unsigned *wordSize = 0,
bool *isDebug = 0,
unsigned short *machineArch =
nullptr)
188# if !defined(IMAGE_FILE_MACHINE_ARM64)
189# define IMAGE_FILE_MACHINE_ARM64 0xAA64
191QString getArchString (
unsigned short machineArch);
219template <
class DirectoryFileEntryFunction>
221 DirectoryFileEntryFunction directoryFileEntryFunction,
222 const QString &targetDirectory,
227 const QFileInfo sourceFileInfo(sourceFileName);
228 const QString targetFileName = targetDirectory + u
'/' + sourceFileInfo.
fileName();
230 std::wcout <<
"Checking " << sourceFileName <<
", " << targetFileName <<
'\n';
232 if (!sourceFileInfo.
exists()) {
237 const QFileInfo targetFileInfo(targetFileName);
242 if (relativeSource.
contains(u
'/')) {
252 if (targetFileInfo.
exists()) {
259 if (relativeSource == relativeTarget)
261 QFile existingTargetFile(targetFileName);
271 if (sourceFileInfo.
isDir()) {
277 bool created =
false;
278 if (targetFileInfo.
exists()) {
279 if (!targetFileInfo.
isDir()) {
285 QDir d(targetDirectory);
287 std::wcout <<
"Creating " << targetFileName <<
".\n";
289 created =
d.mkdir(sourceFileInfo.
fileName());
306 QDir d(targetFileName);
308 if (entries.isEmpty() || (entries.size() == 1 && entries.first() ==
QLatin1StringView(
"qmldir"))) {
309 if (!
d.removeRecursively()) {
321 if (targetFileInfo.
exists()) {
325 std::wcout << sourceFileInfo.
fileName() <<
" is up to date.\n";
327 json->
addFile(sourceFileName, targetDirectory);
330 QFile targetFile(targetFileName);
339 std::wcout <<
"Updating " << sourceFileInfo.
fileName() <<
".\n";
349 QFile targetFile(targetFileName);
358 json->
addFile(sourceFileName, targetDirectory);
void addFile(const QString &source, const QString &target)
void removeTargetDirectory(const QString &targetDirectory)
QByteArray toJson() const
QByteArray toList(ListOption option, const QDir &base) const
QStringList operator()(const QDir &dir) const
NameFilterFileEntryFunction(const QStringList &nameFilters)
static QChar separator()
Returns the native directory separator: "/" under Unix and "\\" under Windows.
QString relativeFilePath(const QString &fileName) const
Returns the path to fileName relative to the directory.
static QString toNativeSeparators(const QString &pathName)
\inmodule QtCore \reentrant
QDateTime lastModified() const
Returns the date and time when the file was last modified.
bool isSymLink() const
Returns true if this object points to a symbolic link, shortcut, or alias; otherwise returns false.
QString symLinkTarget() const
QString fileName() const
Returns the name of the file, excluding the path.
bool isDir() const
Returns true if this object points to a directory or to a symbolic link to a directory.
QString absolutePath() const
Returns a file's path absolute path.
bool exists() const
Returns true if the file exists; otherwise returns false.
bool setPermissions(Permissions permissionSpec) override
Sets the permissions for the file to the permissions specified.
bool copy(const QString &newName)
Copies the file named fileName() to newName.
bool remove()
Removes the file specified by fileName().
Permissions permissions() const override
\reimp
QString errorString() const
Returns a human-readable description of the last device error that occurred.
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
QByteArray toJson(JsonFormat format=Indented) const
\inmodule QtCore\reentrant
qsizetype size() const noexcept
void removeAt(qsizetype i)
const_reference at(qsizetype i) const noexcept
void append(parameter_type t)
\macro QT_RESTRICTED_CAST_FROM_ASCII
std::wstring toStdWString() const
Returns a std::wstring object with the data contained in this QString.
static QString fromLatin1(QByteArrayView ba)
This is an overloaded member function, provided for convenience. It differs from the above function o...
QString arg(qlonglong a, int fieldwidth=0, int base=10, QChar fillChar=u' ') const
bool contains(QChar c, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
QByteArray toUtf8() const &
Combined button and popup list for selecting options.
std::pair< T1, T2 > QPair
DBusConnection const char DBusError * error
#define Q_DECLARE_FLAGS(Flags, Enum)
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
GLsizei GLsizei GLenum void * binary
GLsizei GLsizei GLchar * source
GLsizei const GLchar *const * path
GLenum GLenum GLenum GLenum mapping
#define QStringLiteral(str)
static QString errorMessage(QUrlPrivate::ErrorCode errorCode, const QString &errorSource, qsizetype errorPosition)
QString findD3dCompiler(Platform platform, const QString &qtBinDir, unsigned wordSize)
@ WindowsDesktopClangMinGW
@ WindowsDesktopClangMsvc
bool runProcess(const QString &binary, const QStringList &args, const QString &workingDirectory=QString(), unsigned long *exitCode=0, QByteArray *stdOut=0, QByteArray *stdErr=0, QString *errorMessage=0)
QStringList findDxc(Platform platform, const QString &qtBinDir, unsigned wordSize)
QStringList findSharedLibraries(const QDir &directory, Platform platform, DebugMatchMode debugMatchMode, const QString &prefix=QString())
QString findInPath(const QString &file)
static const char unixSharedLibrarySuffix[]
QStringList findDependentLibraries(const QString &executableFileName, Platform platform, QString *errorMessage)
bool createSymbolicLink(const QFileInfo &source, const QString &target, QString *errorMessage)
std::wostream & operator<<(std::wostream &str, const QString &s)
bool platformHasDebugSuffix(Platform p)
@ RemoveEmptyQmlDirectories
@ SkipQmlDesignerSpecificsDirectories
bool createDirectory(const QString &directory, QString *errorMessage, bool dryRun)
static const char windowsSharedLibrarySuffix[]
bool readPeExecutable(const QString &peExecutableFileName, QString *errorMessage, QStringList *dependentLibraries=0, unsigned *wordSize=0, bool *isDebug=0, bool isMinGW=false, unsigned short *machineArch=nullptr)
bool updateFile(const QString &sourceFileName, const QStringList &nameFilters, const QString &targetDirectory, unsigned flags, JsonOutput *json, QString *errorMessage)
bool readExecutable(const QString &executableFileName, Platform platform, QString *errorMessage, QStringList *dependentLibraries=0, unsigned *wordSize=0, bool *isDebug=0, unsigned short *machineArch=nullptr)
bool isBuildDirectory(Platform platform, const QString &dirName)
bool readElfExecutable(const QString &elfExecutableFileName, QString *errorMessage, QStringList *dependentLibraries=0, unsigned *wordSize=0, bool *isDebug=0)
bool patchQtCore(const QString &path, QString *errorMessage)
QMap< QString, QString > queryQtPaths(const QString &qmakeBinary, QString *errorMessage)
const char * qmakeInfixKey
QString normalizeFileName(const QString &name)
QString sharedLibrarySuffix(Platform platform)