summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2013-12-12 14:50:38 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-12-12 18:25:34 +0100
commitf5b851f83cfb315bbc87ef878bde0b2573f225cf (patch)
tree55ae75b9f1611280bb9b25876d0c3283d0e7ad5e
parentcde68778210d42f28e76c176a818887e74b52638 (diff)
downloadqttools-f5b851f83cfb315bbc87ef878bde0b2573f225cf.tar.gz
windeployqt: Change option -qmldir to accept multiple values.
When deploying large applications like Qt Creator, it is then possible to restrict scanning by qmlimportscanner to the modules that actually use Quick2. Change-Id: I39d138d5f67a56b251e27c9b48b4ccee020b97aa Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
-rw-r--r--src/windeployqt/main.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/windeployqt/main.cpp b/src/windeployqt/main.cpp
index 6a8e651c5..c6b1f0bf9 100644
--- a/src/windeployqt/main.cpp
+++ b/src/windeployqt/main.cpp
@@ -192,7 +192,7 @@ struct Options {
unsigned additionalLibraries;
unsigned disabledLibraries;
unsigned updateFileFlags;
- QString qmlDirectory; // Project's QML files.
+ QStringList qmlDirectories; // Project's QML files.
QString directory;
QString libraryDirectory;
QString binary;
@@ -356,7 +356,7 @@ static inline int parseArguments(const QStringList &arguments, QCommandLineParse
options->directory = parser->value(dirOption);
if (parser->isSet(qmlDirOption))
- options->qmlDirectory = parser->value(qmlDirOption);
+ options->qmlDirectories = parser->values(qmlDirOption);
const QString &file = posArgs.front();
const QFileInfo fi(QDir::cleanPath(file));
@@ -716,8 +716,15 @@ static DeployResult deploy(const Options &options,
// Scan Quick2 imports
QmlImportScanResult qmlScanResult;
if (options.quickImports && usesQml2) {
- const QString qmlDirectory = options.qmlDirectory.isEmpty() ? findQmlDirectory(options.platform, options.directory) : options.qmlDirectory;
- if (!qmlDirectory.isEmpty()) {
+ QStringList qmlDirectories = options.qmlDirectories;
+ if (qmlDirectories.isEmpty()) {
+ const QString qmlDirectory = findQmlDirectory(options.platform, options.directory);
+ if (!qmlDirectory.isEmpty())
+ qmlDirectories.append(qmlDirectory);
+ }
+ foreach (const QString &qmlDirectory, qmlDirectories) {
+ if (optVerboseLevel >= 1)
+ std::printf("Scanning %s:\n", qPrintable(QDir::toNativeSeparators(qmlDirectory)));
qmlScanResult = runQmlImportScanner(qmlDirectory, qmakeVariables.value(QStringLiteral("QT_INSTALL_QML")), options.platform, isDebug, errorMessage);
if (!qmlScanResult.ok)
return result;