diff options
author | Maximilian Goldstein <max.goldstein@qt.io> | 2020-03-26 10:57:12 +0100 |
---|---|---|
committer | Maximilian Goldstein <max.goldstein@qt.io> | 2020-03-26 13:41:46 +0100 |
commit | a5b4d3dbab70c8e0cc57e895007fc4a798e129c7 (patch) | |
tree | 161d4db067c1f885830588506e4005712b0b76a3 /tools/qmllint/main.cpp | |
parent | 7aac345415ca8970f3e5f094ec8fa1a26b36587b (diff) |
qmltyperegistrar: Use target instead of template name
Due to the fact that multiple targets may be present in the same
directory we have to ensure they all get a unique qmltypes.
Fixes: QTBUG-82710
Change-Id: I4d7966035644b68f7d3330a4c974369503c48bf2
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'tools/qmllint/main.cpp')
-rw-r--r-- | tools/qmllint/main.cpp | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/tools/qmllint/main.cpp b/tools/qmllint/main.cpp index fa601986b2..05519fc8d8 100644 --- a/tools/qmllint/main.cpp +++ b/tools/qmllint/main.cpp @@ -48,7 +48,7 @@ #endif static bool lint_file(const QString &filename, const bool silent, const bool warnUnqualied, - const QStringList &qmltypeDirs) + const QStringList &qmltypeDirs, const QStringList &qmltypeFiles) { QFile file(filename); if (!file.open(QFile::ReadOnly)) { @@ -84,7 +84,7 @@ static bool lint_file(const QString &filename, const bool silent, const bool war if (success && !isJavaScript && warnUnqualied) { auto root = parser.rootNode(); - FindUnqualifiedIDVisitor v { qmltypeDirs, code, filename, silent }; + FindUnqualifiedIDVisitor v { qmltypeDirs, qmltypeFiles, code, filename, silent }; root->accept(&v); success = v.check(); } @@ -118,6 +118,13 @@ int main(int argv, char *argc[]) QLatin1String("directory")); parser.addOption(qmltypesDirsOption); + QCommandLineOption qmltypesFilesOption( + QStringList() << "i" + << "qmltypes", + QLatin1String("Include the specified qmltypes files"), + QLatin1String("qmltypes")); + parser.addOption(qmltypesFilesOption); + parser.addPositionalArgument(QLatin1String("files"), QLatin1String("list of qml or js files to verify")); @@ -134,15 +141,20 @@ int main(int argv, char *argc[]) QStringList qmltypeDirs = parser.isSet(qmltypesDirsOption) ? parser.values(qmltypesDirsOption) # ifndef QT_BOOTSTRAPPED - : QStringList { QLibraryInfo::location(QLibraryInfo::Qml2ImportsPath), - QLatin1String(".") }; + : QStringList { QLibraryInfo::location(QLibraryInfo::Qml2ImportsPath) }; # else - : QStringList { QLatin1String(".") }; + : QStringList {}; # endif + + if (!parser.isSet(qmltypesFilesOption)) + qmltypeDirs << "."; + + QStringList qmltypeFiles = parser.isSet(qmltypesFilesOption) ? parser.values(qmltypesFilesOption) : QStringList {}; #else bool silent = false; bool warnUnqualified = false; QStringList qmltypeDirs {}; + QStringList qmltypeFiles {}; #endif bool success = true; #if QT_CONFIG(commandlineparser) @@ -151,7 +163,7 @@ int main(int argv, char *argc[]) const auto arguments = app.arguments(); for (const QString &filename : arguments) #endif - success &= lint_file(filename, silent, warnUnqualified, qmltypeDirs); + success &= lint_file(filename, silent, warnUnqualified, qmltypeDirs, qmltypeFiles); return success ? 0 : -1; } |