diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2013-12-12 14:50:38 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-12-12 18:25:34 +0100 |
commit | f5b851f83cfb315bbc87ef878bde0b2573f225cf (patch) | |
tree | 55ae75b9f1611280bb9b25876d0c3283d0e7ad5e | |
parent | cde68778210d42f28e76c176a818887e74b52638 (diff) | |
download | qttools-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.cpp | 15 |
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; |