diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2021-12-09 11:22:52 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-12-13 16:31:51 +0000 |
commit | 17feb7753607c51eee8a624fd9e4e19d48a0a793 (patch) | |
tree | c3307e0931216f0fcbdcd67204c9e82518515caa /tools/qmltc | |
parent | 9d2bd53fda855dd8795bca583cbcb3eca66a6bc6 (diff) |
Pass qmldir to qmlcachegen, qmllint and qmltc, not the qmltypes file
The tools will still grudgingly accept qmltypes files being passed via
the -i option. We generally expect qmldir files, though. Ignoring the
qmldir file and importing the qmltypes directly, ignores qmldir imports,
dependencies and other component entries. This leads to unresolvable
types.
[ChangeLog][QML Tooling] qmllint expects qmldir files, not qmltypes
files to be passed via the -i option now. This enables it to see the
imports and dependencies of the module being imported. For backwards
compatibility it still accepts qmltypes files, with a warning.
Fixes: QTBUG-99043
Change-Id: I5ed32d7e78df1e604aaf1bfa2ebda09d5d57b628
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 576fafd1e69429d7387e4c35f6d15fc42af6513e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'tools/qmltc')
-rw-r--r-- | tools/qmltc/main.cpp | 12 | ||||
-rw-r--r-- | tools/qmltc/qmltcvisitor.cpp | 4 | ||||
-rw-r--r-- | tools/qmltc/qmltcvisitor.h | 2 |
3 files changed, 9 insertions, 9 deletions
diff --git a/tools/qmltc/main.cpp b/tools/qmltc/main.cpp index 49c68a3860..dd2dfb97ba 100644 --- a/tools/qmltc/main.cpp +++ b/tools/qmltc/main.cpp @@ -70,11 +70,11 @@ int main(int argc, char **argv) QCoreApplication::translate("main", "import directory") }; parser.addOption(importPathOption); - QCommandLineOption qmltypesOption { - u"i"_qs, QCoreApplication::translate("main", "Include extra qmltypes"), - QCoreApplication::translate("main", "qmltypes file") + QCommandLineOption qmldirOption { + u"i"_qs, QCoreApplication::translate("main", "Include extra qmldir files"), + QCoreApplication::translate("main", "qmldir file") }; - parser.addOption(qmltypesOption); + parser.addOption(qmldirOption); QCommandLineOption outputCppOption { u"impl"_qs, QCoreApplication::translate("main", "Generated C++ source file path"), QCoreApplication::translate("main", "cpp path") @@ -132,7 +132,7 @@ int main(int argc, char **argv) QStringList importPaths = parser.values(importPathOption); importPaths.append(QLibraryInfo::path(QLibraryInfo::QmlImportsPath)); importPaths.append(QFileInfo(url).absolutePath()); - QStringList qmltypesFiles = parser.values(qmltypesOption); + QStringList qmldirFiles = parser.values(qmldirOption); QString outputCppFile; if (!parser.isSet(outputCppOption)) { @@ -174,7 +174,7 @@ int main(int argc, char **argv) logger.setFileName(url); logger.setCode(sourceCode); setupLogger(logger); - QmltcVisitor visitor(&importer, &logger, implicitImportDirectory, qmltypesFiles); + QmltcVisitor visitor(&importer, &logger, implicitImportDirectory, qmldirFiles); QmltcTypeResolver typeResolver { &importer }; typeResolver.init(&visitor, document.program); diff --git a/tools/qmltc/qmltcvisitor.cpp b/tools/qmltc/qmltcvisitor.cpp index 7d9062a4db..691496d7c7 100644 --- a/tools/qmltc/qmltcvisitor.cpp +++ b/tools/qmltc/qmltcvisitor.cpp @@ -44,8 +44,8 @@ static QString uniqueNameFromPieces(const QStringList &pieces, QHash<QString, in } QmltcVisitor::QmltcVisitor(QQmlJSImporter *importer, QQmlJSLogger *logger, - const QString &implicitImportDirectory, const QStringList &qmltypesFiles) - : QQmlJSImportVisitor(importer, logger, implicitImportDirectory, qmltypesFiles) + const QString &implicitImportDirectory, const QStringList &qmldirFiles) + : QQmlJSImportVisitor(importer, logger, implicitImportDirectory, qmldirFiles) { m_qmlTypeNames.append(QFileInfo(logger->fileName()).baseName()); // put document root } diff --git a/tools/qmltc/qmltcvisitor.h b/tools/qmltc/qmltcvisitor.h index 17d5f02ebf..d69c84d3ca 100644 --- a/tools/qmltc/qmltcvisitor.h +++ b/tools/qmltc/qmltcvisitor.h @@ -46,7 +46,7 @@ class QmltcVisitor : public QQmlJSImportVisitor public: QmltcVisitor(QQmlJSImporter *importer, QQmlJSLogger *logger, const QString &implicitImportDirectory, - const QStringList &qmltypesFiles = QStringList()); + const QStringList &qmldirFiles = QStringList()); bool visit(QQmlJS::AST::UiObjectDefinition *) override; void endVisit(QQmlJS::AST::UiObjectDefinition *) override; |