aboutsummaryrefslogtreecommitdiffstats
path: root/tools/qmlimportscanner
Commit message (Collapse)AuthorAgeFilesLines
* Add support for scanning qrc files in qmlimportscannerAndy Shaw2019-10-242-1/+11
| | | | | | | | | | | This reuses the ResourceFileMapper and extends it slightly to return full paths on request. Subsequently, this is moved into a shared directory inside tools. Fixes: QTBUG-55259 Change-Id: Ice5fc68d03b767a4185742e182556ab4290bd28d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* CMake: Provide API to allow handling of QML static pluginsAlexandru Croitor2019-08-174-3/+277
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change adds a new -cmake-output command line argument to qmlimportscanner which outputs its result in a format which is consumable by CMake. This change also adds a new CMake package called Qt5QmlImportScanner. It provides a function called QT5_IMPORT_QML_PLUGINS() which is useful for projects that use a static build of Qt and which also use QML plugins. Calling it with the target name of your application does the following: - Runs qmlimportscanner at configure time to find out which QML / QtQuick plugins are used by your project - Links the imported QML plugins into the target - Links the static dependencies of the QML plugins into the target - Generates a .cpp file that initializes imported QML plugins, which is subsequently compiled and linked into the given target When Qt is built in a shared library config, the introduced function is a no-op. [ChangeLog][CMake] Added ability to import static qml plugins with CMake builds using the new QT5_IMPORT_QML_PLUGINS function. Task-number: QTBUG-38913 Change-Id: Ib9b9a69654eab13dfbe12d10f5cb28ba3c307d1b Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* extend grammar for better version parsing supportFabian Kosmale2019-07-041-3/+4
| | | | | | | | | | | | | | | | | | Be more strict in parsing version numbers This also makes it easier to access the version number in other places using the Visitor interface, like (soon) the linter and avoids reparsing the text twice. Potential disadvantages: previously allowed import statements will rejected at parse time, e.g. import QtQuick 0b10 Potential further advantage: Weird import statements like import QtQuick 0b10 will be rejected earlier Change-Id: Ifcd187b79a90952bc964c688afa4ea9b158e5109 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Simplify errors and diagnosticsUlf Hermann2019-06-141-1/+2
| | | | | | | | | | | | | | | | We only need two classes to describe all possible diagnostics: * A low-level private POD DiagnosticMessage. This is easily copied and passed around internally. It doesn't need to adhere to a stable API and it doesn't carry any extra baggage. * The high-level public QQmlError with its stable interface. This can internally also use a DiagnosticMessage as storage. Change-Id: I52be88d9b5d9855a661b8032b01eedb43a0fb0b3 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Split QV4::Value into a static and a dynamic partUlf Hermann2019-05-311-1/+1
| | | | | | | | The static part can be used for compilation and won't resolve managed objects. This allows us to remove all the remaining V4_BOOTSTRAP. Change-Id: Id2f6feb64c48beb2a407697881aea8c0d791a532 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* qmlimportscanner: Fix commentsKai Koehne2019-03-211-11/+10
| | | | | Change-Id: I435662abafbe7b76fed7b012bfed2f99aa7158a3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qmlimportscanner: add some literal strings definitionsMarco Benelli2018-07-121-9/+12
| | | | | Change-Id: Ie65e7541b5a189867b27471b83e52dc2e4416183 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Use anonymous namespace instead of static declarationsMarco Benelli2018-07-121-11/+15
| | | | | Change-Id: Iced889303616fdae0074149a3f10572425275085 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* use nullptr consistently (clang-tidy)Shawn Rutledge2018-02-261-1/+1
| | | | | | | | | | | | | From now on we prefer nullptr instead of 0 to clarify cases where we are assigning or testing a pointer rather than a numeric zero. Also, replaced cases where 0 was passed as Qt::KeyboardModifiers with Qt::NoModifier (clang-tidy replaced them with nullptr, which waas wrong, so it was just as well to make the tests more readable rather than to revert those lines). Change-Id: I4735d35e4d9f42db5216862ce091429eadc6e65d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge remote-tracking branch 'origin/5.9' into 5.10Lars Knoll2017-09-201-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/compiler/qv4compileddata.cpp src/qml/compiler/qv4compileddata_p.h src/qml/jsruntime/qv4engine.cpp src/qml/jsruntime/qv4qmlcontext.cpp src/qml/jsruntime/qv4qmlcontext_p.h src/qml/jsruntime/qv4regexpobject.cpp src/qml/jsruntime/qv4regexpobject_p.h src/qml/types/qqmllistmodel.cpp src/quick/items/qquickanimatedimage_p.h src/quick/scenegraph/qsgrenderloop.cpp tests/auto/qml/qmlcachegen/tst_qmlcachegen.cpp Change-Id: If20ef62b2c98bdf656cb2f5d27b1897b754d3dc0
| * qmlimportscanner: Scan the root directory againMorten Johan Sørvig2017-09-191-1/+1
| | | | | | | | | | | | | | | | | | | | “qmlimportscanner -rootPath /path/to/foo” should scan QML files in the “foo” directory. Remove QDir::NoDot, which was added in commit 6ff0e9a6. Change-Id: I15cc4a289cf246786cdf8fe2020c7f3d2798b7a5 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-09-051-2/+2
|\| | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickwindow.cpp src/quick/scenegraph/qsgrenderloop.cpp Change-Id: Idd7106995b5545fcac869e9056a365ef9edb36ca
| * qmlimportscanner: Only skip debug/release directories if the path ends with themAndy Shaw2017-09-041-2/+2
| | | | | | | | | | | | | | | | | | Since the preceding path may contain debug or release in it, then we only want to check if the path ends with it as opposed to containing it. Change-Id: Ib4d466987fccb75771fcd2fa018b6f1375df7dc4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Marco Benelli <marco.benelli@qt.io>
* | Adjust QMAKE_TARGET_PRODUCT, QMAKE_TARGET_DESCRIPTIONKai Koehne2017-07-281-2/+1
| | | | | | | | | | | | | | | | | | | | The product should be Qt5 (the default). The QMAKE_TARGET_DESCRIPTION is actually less than a description but a beautified name, that is shown e.g. in the task manager, crash reporting tool etc. Make it title case, like most Windows applications do. Change-Id: I570aee2c2016e78fdb7a93c2d7a66b70fdcb0cff Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Remove custom setting of qmake VERSION field in toolsKai Koehne2017-07-281-6/+0
| | | | | | | | | | | | | | | | qt_tool.prf sets the VERSION to MODULE_VERSION by default. Also, qmake automatically makes it a quadruple for the .rc file metadata. Change-Id: Ie2d0f2022c4416ce824a6786eef4a8c461ed70f1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-03-021-0/+9
|\| | | | | | | Change-Id: I6cbd83b61fac34c2ba6936711289ec09a490719a
| * Merge remote-tracking branch 'origin/5.8' into 5.9Liang Qi2017-02-241-0/+9
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/compiler/qv4ssa.cpp src/quick/accessible/qaccessiblequickview_p.h src/quick/items/qquickmousearea.cpp src/quick/util/qquickanimatorjob.cpp tools/qmlplugindump/main.cpp Change-Id: I84474cf39895b9b757403971d2e9196e8c9d1809
| | * Tools: Add product name, version and description to the .pro filesFriedemann Kleint2017-01-311-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | This information will then be visible in Windows explorer. Change-Id: I9d2f936584308394b4e3246d57bed44083b3cbca Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
* | | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-02-281-1/+1
|\| | | | | | | | | | | Change-Id: I92b13a9c1727644d63e125c1e6f1fdac72720ad7
| * | qmlimportscanner: allow "-" as value for qmlFilesMarco Benelli2017-02-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Passing "-" as an argument for -qmlFiles instructs qmlimportscanner to read the qml file from stdin. This is how qmlimportscanner is invoked by qmlplugindump. Task-number: QTBUG-58930 Change-Id: Ie43292988a31f9821887fbb704b903c03012fd3d Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | | sources: Add missing override and remove redundant virtualAlexander Volkov2017-02-231-2/+2
|/ / | | | | | | | | | | | | Change-Id: I48e26b1491024d41ebf75d40f0d1a7e9a1b20f22 Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru> Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-12-251-14/+22
|\| | | | | | | | | | | | | Conflicts: tools/qmlimportscanner/main.cpp Change-Id: I01e17581f6691a03f83788773364d0cf96319514
| * qmlimportscanner: Output the relative path of a pluginFriedemann Kleint2016-12-201-14/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | Change 3c5e438890db63ecde98c84d221f87a3af52e1bf enabling using the target path version of a parent module made it harder to determine the deployment target path from the module name. Output the relative path in addition to remove the need to do that in deployment tools. Task-number: QTBUG-57494 Task-number: QTBUG-52556 Change-Id: Ib76f40f19b530f9351205df9109f2fef6191979d Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-12-141-2/+4
|\| | | | | | | Change-Id: I905dcd29377bf1b2e0ee086823b54277d18e78dd
| * qmlimportscanner: Output application name in generic error messagesFriedemann Kleint2016-11-241-2/+4
| | | | | | | | | | | | | | | | This makes it easier to spot issues in build logs. Amends change a23bcdf91971510b79c541fdff4a9467ead08751. Change-Id: I68e440c2ce79504fb5f5fa08392a91d39e631e25 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-11-231-1/+7
|\| | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4object_p.h Change-Id: Iff4d3aba7710a999b8befdc493cbe959e1ce02f9
| * qmlimportscanner: When passed an invalid file/directory it should cause an errorAndy Shaw2016-11-101-1/+6
| | | | | | | | | | | | | | | | Task-number: QTBUG-56617 Change-Id: I82eb9c07fd6350b2a63f80e62af4c0adf52656c7 Reviewed-by: J-P Nurmi <jpnurmi@qt.io> Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * Set Qt version on toolsFriedemann Kleint2016-11-091-0/+1
| | | | | | | | | | Change-Id: I21d77b2eba7107528fc00db0cf5d87f8347b63be Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | tools: use const (and const APIs) moreAnton Kudryavtsev2016-08-221-3/+3
| | | | | | | | | | | | | | For CoW types, prefer const methods to avoid needless detach()ing. Change-Id: If9018391c001eba3b4b2061d06c4caa8136811ab Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | tools: replace 'foreach' with 'range for'Anton Kudryavtsev2016-08-221-2/+4
|/ | | | | | | | Catch rvalues to prevent detach()'ing. Change-Id: I7be159a405c994429c0eee10805bfe96fcf4c806 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* tools: replace 'foreach' with 'range for'Anton Kudryavtsev2016-08-201-9/+9
| | | | | | | | | Mark some local variables or parameters as const to prevent detach()'ing. Use qAsConst where is not possible mark as const. Change-Id: I0a777c3bd855abd3bb1ad0907152360cf4a1050e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* qmlimportscanner: fix MSVC buildAnton Kudryavtsev2016-08-181-32/+40
| | | | | | | | | | | | | | MSVC does not like QStringLiteral in operator[]. And the follow-up patch, which replaces 'foreach' with 'range for' triggers this MSVC bug. So this prequel patch resolves 2 issues: 1. fix MSVC build - the main issue. 2. de-duplicate QStringLiteral data (.rodata) - as drive-by issue. Change-Id: Ic6607edf324e9330d2b8dccd34561abb90f79cf1 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* qmlimportscanner: use QStringLiteral more judiciouslyAnton Kudryavtsev2016-08-181-2/+2
| | | | | | | Replace it with QL1S or with QL1C in QStringBuilder expressions Change-Id: I894c546d2d010a713cc476d60b7966e77df996af Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* tools: use QStringRef moreAnton Kudryavtsev2016-08-121-3/+3
| | | | | | Change-Id: I4fccbfb2b965daf3a31846d1d51d39eb74ad944d Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix qmlimportscanner to find Qt Quick Controls 2 stylesJ-P Nurmi2016-05-021-12/+34
| | | | | | | | | | | The styles are installed to eg. qml/QtQuick/Controls.2/Material. That is, the version is in the parent module. See 3c5e438 for more details. Change-Id: Id5083c7934071666dd5e11511f16dea07d3104bf Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Marco Benelli <marco.benelli@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-02-121-8/+8
|\ | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I356ec83cf687bd2833f9a7c5e820d56b1efa8979
| * QuickTest, QmlImportScanner: replace QStringLiteral with QLatin1StringAnton Kudryavtsev2016-02-101-8/+8
| | | | | | | | | | | | | | ... in string comparisons. It's more efficient. Change-Id: Ia157618cf870870f24c4a2962a385962da819275 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-01-291-13/+18
|\| | | | | | | Change-Id: Iec1b2de53c275996364c4bab0123ccb3e6e9895e
| * qmlimportscanner: do not use local predicates.Marco Benelli2016-01-281-13/+18
| | | | | | | | | | | | | | | | Some (?) pre C++11 compilers are not able to resolve template arguments for std::find_if when the predicates are local to the function. Change-Id: I1e5c4adc3409bd32081ddedff158ab9dcc2eaa9a Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Updated license headersJani Heikkinen2016-01-201-17/+12
|/ | | | | | | | | | | | From Qt 5.7 -> tools & applications are lisenced under GPL v3 with some exceptions, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new GPL-EXCEPT header instead of LGPL21 one (in those files which will be under GPL 3 with exceptions) Change-Id: I04760a0801837cfc516d1c7c02d4f503f6bb70b6 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* qmlimportscanner: Improve command line help.Friedemann Kleint2015-11-161-6/+13
| | | | | | | | | Output example line containing the Qt import path ready for copy & paste. Task-number: QTBUG-48424 Change-Id: I44d0793ade4322d376ed2b72e5c3935b19ba2c7d Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
* Skip designer-related directories while scanning imports.Marco Benelli2015-10-191-4/+31
| | | | | | | | | | | The qtcreator's qmldesigner plugin contains some directories that are not reacheable during the import scan, resulting in qmlplugindump complaing for missing dependencies. Since these components are not needed, let the scanner just ignore them. Change-Id: Icdf7c9e841cf5bcc1e737a0fc75a63b1e02f87f9 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* Tools: Fix single-character string literals.Friedemann Kleint2015-10-131-3/+3
| | | | | | | Use character literals where applicable. Change-Id: I55679dcc13c4c79567712c0dfaaabc2b84fee010 Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
* Remove unused QQmlPoolFrank Meerkoetter2015-07-311-1/+0
| | | | | | | This code is no longer in use. Change-Id: If0cb009ac6622ed36cba5886d6685d3f242c3c87 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Use by-ref in foreach when T is large or non-trivialSérgio Martins2015-07-181-1/+1
| | | | | Change-Id: I79271fdc3fa064e362dfaa64ff11d8a4c6b7e8c3 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Get rid of qv4value_inl_p.h and replace it by qv4typedvalue_p.hLars Knoll2015-04-241-1/+1
| | | | | | | | This is a cleaner separation and further reduces include dependencies in the definitions of our basic data structured. Change-Id: I18aa86cdea0c0dfbc16075d4d617af97e638811e Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Update copyright headersJani Heikkinen2015-02-121-7/+7
| | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: I61120571787870c0ed17066afb31779b1e6e30e9 Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
* Clean up JS .import/.pragma directive scanningSimon Hausmann2015-01-081-32/+47
| | | | | | | | | | | There's a scanner in QQmlJS::Lexer::scanDirectives that can parse those, so let's get rid of extra parser that operates on a string. Instead this way we can do the scanning all in one shot, avoid detaching a copy of the source code string and (most importantly) bring the parser closer to the copy in Qt Creator, which uses the directives approach to extract imports and pragma. Change-Id: Iff6eb8d91a45d8a70f383f953115692be48259de Reviewed-by: Fawzi Mohamed <fawzi.mohamed@theqtcompany.com>
* qmlimportscanner: parse "depends" lines in qmldir filesShawn Rutledge2014-10-011-2/+23
| | | | | | | | | | | | | These lines specify additional hidden dependencies. The first use case is in QtQuick.Dialogs: DefaultFileDialog.qml uses FolderListModel, but this file is not listed in the qmldir because the decision whether to use it is made at runtime. So QtQuick.Dialogs qmldir contains this: depends Qt.labs.folderlistmodel 1.0 Task-number: QTBUG-41489 Change-Id: Ide4bca2ce2e342b95e9a87cc418d26f331372d12 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* qmlimportscanner: allow a qmlFile to come from stdinFawzi Mohamed2014-09-251-16/+26
| | | | | Change-Id: I22b0e45a8aa25d232791cdbeca15b5bc7400ae7d Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>