aboutsummaryrefslogtreecommitdiffstats
path: root/tools/qmllint/main.cpp
diff options
context:
space:
mode:
authorMaximilian Goldstein <max.goldstein@qt.io>2020-03-26 10:57:12 +0100
committerMaximilian Goldstein <max.goldstein@qt.io>2020-03-26 13:41:46 +0100
commita5b4d3dbab70c8e0cc57e895007fc4a798e129c7 (patch)
tree161d4db067c1f885830588506e4005712b0b76a3 /tools/qmllint/main.cpp
parent7aac345415ca8970f3e5f094ec8fa1a26b36587b (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.cpp24
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;
}