aboutsummaryrefslogtreecommitdiffstats
path: root/tools/qmltc
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2021-12-09 11:22:52 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-12-13 16:31:51 +0000
commit17feb7753607c51eee8a624fd9e4e19d48a0a793 (patch)
treec3307e0931216f0fcbdcd67204c9e82518515caa /tools/qmltc
parent9d2bd53fda855dd8795bca583cbcb3eca66a6bc6 (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.cpp12
-rw-r--r--tools/qmltc/qmltcvisitor.cpp4
-rw-r--r--tools/qmltc/qmltcvisitor.h2
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;