[Interest] Extracting available imports from QML plugins for package dependencies

Ulf Hermann ulf.hermann at qt.io
Fri Mar 26 16:45:15 CET 2021


Hi Fabian,

In general, you should bug your upstream to provide a qmltypes file for 
each module. They know best what types they want to expose in what 
version and under what URI. I do understand that upstream may be less 
than delighted, though ...

Modern QML applications generate their qmltypes files at build time via 
CONFIG += qmltypes. Those qmltypes files should be installed alongside 
the qmldir file. They contain information about URIs and versions. The 
qmldir file, in turn, should have a "typeinfo" entry that points to the 
qmltypes file.

If you have an old project that doesn't provide a qmltypes file, you can 
indeed run qmlplugindump to generate qmltypes from a given binary. 
Indeed you currently have to give it the latest version it's supposed to 
expose. It should also list any older versions in the "export" entries, 
though. However, qmlplugindump might have bugs. Technically, it's also 
deprecated. Yet, I would still accept the occasional bug fix, or a 
change that makes the version argument optional. This way it could list 
everything without requiring the maximum version to be known beforehand.

Finally, the lack of information about the maximum acceptable version is 
a deficiency of the qmltypes format. We should add an entry about it in 
the top level scope. It wouldn't be too hard to teach qmltyperegistrar 
or qmlplugindump how to generate that.

best regards,
Ulf


More information about the Interest mailing list