aboutsummaryrefslogtreecommitdiffstats
path: root/tools
Commit message (Collapse)AuthorAgeFilesLines
* qml-tool: Treat all arguments passed after "--" as positionalOlivier De Cannière7 days1-0/+3
| | | | | | | | | | | The argument "-a" passed after "--" was being interpreted as the -a option of the qml tool itself instead of being passed along to the qml program as a positional argument. Fixes: QTBUG-136120 Pick-to: 6.9 6.8 6.5 Change-Id: I602aea84e4766abeb47adce0f739f12315a70b24 Reviewed-by: Fabian Kosmale <[email protected]>
* qmlls: add --version command line parameterSami Shalayel7 days1-0/+5
| | | | | | | | | | Add a command line parameter to print the qmlls version, required by qmlls clients to check the version of downloaded qmlls binaries. Fixes: QTBUG-132692 Change-Id: I7903f6859b6da2f3849a899e46fe4c5ce1cf4c42 Reviewed-by: Ulf Hermann <[email protected]> Reviewed-by: Fabian Kosmale <[email protected]>
* qmltc: Cleanly reject custom parsed propertiesUlf Hermann2025-04-153-1/+19
| | | | | | | | | | | | Process all properties of custom parsed types and generate errors if the custom parsed properties are actually used. Then print an extra error stating that qmltc does not support custom parsers. Pick-to: 6.9 6.8 Fixes: QTBUG-134206 Change-Id: I37e4f3f8d0ee4e0926c0d64c99a4a521b093a1ab Reviewed-by: Sami Shalayel <[email protected]> Reviewed-by: Olivier De Cannière <[email protected]>
* Port away from QPairZhao Yuhang2025-04-124-12/+12
| | | | | | | | QPair is just an alias of std::pair anyway. Task-number: QTBUG-115841 Change-Id: I26fc90adcc775aac9955ad57304af914dc4ed48f Reviewed-by: Ulf Hermann <[email protected]>
* qmltc: Properly escape translation stringsUlf Hermann2025-04-111-15/+17
| | | | | | | | | We have QQmlJSUtils::toLiteral() for that. Extend it to handle byte arrays in addition to strings and use it. Fixes: QTBUG-134726 Change-Id: Ibde1f56b25794fc8c49b796303c4f39933aedb42 Reviewed-by: Olivier De Cannière <[email protected]>
* QtQml: Dissolve qqmltranslation.cppUlf Hermann2025-04-111-1/+40
| | | | | | | | | We don't want to export those symbols from QtQml. Move the code that's exclusive to the debug service into the debug service and the code exclusive to qmltc into qmltc. The remaining code can be inline. Change-Id: Icf146af8d4e5931b7ac7bac61a5ba94449ca9402 Reviewed-by: Sami Shalayel <[email protected]>
* Implement item generator via QML generatorEskil Abrahamsen Blomfeldt2025-04-111-1/+1
| | | | | | | | | | | | | | | | | We were spending time doing the same implementation twice, since the item generator and QML generator were two separate code paths. We also risked having bugs which only occurred in one of the code paths. This may at some point be a valid optimization, but during development it is premature. The parsing of the QML is a one-time cost when loading the SVG and this is an acceptable cost for now. Optimizations can come later when we have a more stable state. Fixes: QTBUG-135269 Change-Id: I649a89d7a2e18ef1c0213658dc106f2cc1194841 Reviewed-by: Eirik Aavitsland <[email protected]>
* CMake: Force override while code signing qmltestrunnerAlexandru Croitor2025-04-101-1/+1
| | | | | | | | | | | | | | | | Some clang toolchains use implicit adhoc codesigning when compiling and linking executables. This causes an error for the qmltestrunner codesign call, saying that the executable is already signed. Force the codesign command to override the existing signature in that case. This is safe, because we build the executable from scratch. Amends 1f7b87cd3d0dff022b3c072016c6257cc5d9e93a Pick-to: 6.8 6.9 Fixes: QTBUG-135279 Change-Id: I0e0a989eb018c75ad1463700782bef9c7b999fa0 Reviewed-by: Joerg Bornemann <[email protected]>
* qmllint: fix setting for alias cycle and unresolved aliasSami Shalayel2025-03-251-0/+3
| | | | | | | | | | | Make sure both have their own setting key, but still support the previous "buggy" setting key. Print a deprecated warning when finding the buggy setting key in a setting file. Task-number: QTBUG-135020 Change-Id: I364e7e41380de43a0883bcf4d3f6cefcf11b6c90 Reviewed-by: Olivier De Cannière <[email protected]> Reviewed-by: Ulf Hermann <[email protected]>
* qmake: Don't pass empty foreign-types list to qmltyperegistrarFabian Kosmale2025-02-251-1/+1
| | | | | | | | | | | | | | Use join's before parameter to only add the foreign-types parameter to the command invocation if there is actually a list of foreign-types to handle. This avoids "cannot open foreign types file" warnings during the build process. Pick-to: 6.9 6.8 Change-Id: I142d0fab44201a3314354173ea30d2f90841a6f4 Reviewed-by: Ulf Hermann <[email protected]> Reviewed-by: Joerg Bornemann <[email protected]>
* QmlCompiler: Tighten detection of assignment to unknown propertiesUlf Hermann2025-02-212-4/+4
| | | | | | | | | | | | | | While those properties may be of type Component, they don't have to. We can in fact not resolve anything resembling an ID while inside one of those objects because we cannot determine the component boundaries. Amends commit dea8e38d95508acd67da997d0c2a9c91ef1bc887 Pick-to: 6.9 6.8 Fixes: QTBUG-133460 Change-Id: Iac7294166d38ce591c45c0d31b139a52eda70fc1 Reviewed-by: Fabian Kosmale <[email protected]> Reviewed-by: Olivier De Cannière <[email protected]>
* qmltc: Post an error message rather than crashing on unresolved typesUlf Hermann2025-02-181-1/+10
| | | | | | Change-Id: I3124d7d21503da9a4189ccdb23fa1ac31ac10283 Reviewed-by: Sami Shalayel <[email protected]> Reviewed-by: Fabian Kosmale <[email protected]>
* qmllint: Update help to correctly describe warning behaviorFabian Kosmale2025-02-181-1/+1
| | | | | | | | | | Amends 74ec76d5edc2446927523dc1b301bf8cc75beb7d Pick-to: 6.9 6.8 Change-Id: Ibeeeff03587abaff3853b2983cceb76c8d74dd33 Reviewed-by: Olivier De Cannière <[email protected]> Reviewed-by: Albert Astals Cid <[email protected]> Reviewed-by: Sami Shalayel <[email protected]>
* CMake: Temporary workaround for missing dependencies in qml_toolAlexandru Croitor2025-02-181-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | Due to unknown reasons, if the qml_tool target links twice to the Qt6::Qml target, the qml_tool_autogen target loses almost all dependencies on other autogen and sync_headers targets, but most importantly on Qml_sync_headers. This can cause bad race conditions during the build. Apply a hacky workaround of removing the duplicate linking to Qt6::Qml which appears to resolve the issue, and brings back the correct dependency. This might be an issue in upstream CMake, but requires further investigation. This change is meant to unblock merges to qtdeclarative. Pick-to: 6.8 6.9 Task-number: QTBUG-133725 Change-Id: Ib6b41d36a19f5d9e1c9fa96aabfbc00f5870990f Reviewed-by: Fabian Kosmale <[email protected]> Reviewed-by: Alexey Edelev <[email protected]>
* qml tool: Explictily register typesFabian Kosmale2025-02-121-0/+5
| | | | | | | | | | | | We are sporadically seeing weird failures on macOs that the types from the module are not available. This could not be reproduced reliably, but we suspect that the linker might discard the (static ctor invoking the) registration function. Avoid this by calling it explictily. Change-Id: Ic405dd5f226af3580efe7dd5d8202a6a263a367e Reviewed-by: Ulf Hermann <[email protected]>
* qmlformat: don't build if commandlineparser not foundSemih Yavuz2025-01-291-1/+1
| | | | | | Task-number: QTBUG-133225 Change-Id: I8d21d16cc90e50b2ef56fcaeed5b8c3933ecbc9b Reviewed-by: Sami Shalayel <[email protected]>
* qmlformat: move configuration functions into librarySemih Yavuz2025-01-291-143/+3
| | | | | | | | | | ...Then we can add tests for them. More tests to be added in the next commit. Pick-to: 6.8 6.9 Task-number: QTBUG-133225 Change-Id: I3f40ddc3d0895a785d6bce359c63ad6ad4d70606 Reviewed-by: Sami Shalayel <[email protected]>
* qmlformat: remove non-existing data from buildCommandlineOptionsSemih Yavuz2025-01-291-6/+2
| | | | | | | | | | We no longer have Options{} data structure. Use QQmlFormatOptions instead. Pick-to: 6.8 6.9 Task-number: QTBUG-133225 Change-Id: I0a3625a4e41948c4fd010a52d71b8c5fb352ba82 Reviewed-by: Sami Shalayel <[email protected]>
* qmlformat: simplify getSettingsSemih Yavuz2025-01-291-12/+4
| | | | | | | Pick-to: 6.8 6.9 Task-number: QTBUG-133225 Change-Id: I7b282e13e3767787d9b9e94f3a74702876531068 Reviewed-by: Sami Shalayel <[email protected]>
* qmlls: librarify into QQmlLSPrivateSami Shalayel2025-01-272-372/+2
| | | | | | | | | | | | | | | Move the tool's code to the library and make qmllanguageservertool.cpp as small as possible. Fix the strings to have _L1 to avoid warnings. This would allow to have a duplicate version of qmllanguageservertool.cpp outside of qtdeclarative, which then could be statically linked to the help plugin in qttools. This would enable the documentation support in the standalone qmlls build (which currently can't provide any documentation hints). Task-number: QTBUG-132773 Change-Id: Ia1717c0f71f70f6bb5d863017fe050117688d9e7 Reviewed-by: Fabian Kosmale <[email protected]>
* QmlCompiler: Introduce transactions for the loggerUlf Hermann2025-01-211-5/+5
| | | | | | | | | | | | | | Certain compile passes may be run multiple times and only the last run counts. We need to be able to roll back the logger to the state before the pass in that case. Amends commit d70abd83dc94d722cde6d4b19b9d35c5f4f19946 Pick-to: 6.9 Task-number: QTBUG-124913 Change-Id: Ie6174fc3d6ce60ca3f0a3fa27484a58e6febcc17 Reviewed-by: Olivier De Cannière <[email protected]> Reviewed-by: Fabian Kosmale <[email protected]>
* macOS: Enable crash reporting for qmltestrunner via SwiftTor Arne Vestbø2025-01-141-0/+12
| | | | | | | | | | | | | | | | | Swift 5.9 includes built in crash reporting, printing stack traces, libraries, and registers to stdout/err. https://www.swift.org/blog/swift-5.9-backtraces/ As (Core)Foundation is written in Swift nowadays, we get this feature for free even in our "C++" apps, as we always link to CoreFoundation. To enable the feature the binary needs the com.apple.security.get-task-allow entitlement, so we add it for qmltestrunner. Pick-to: 6.9 6.8 Change-Id: I31090efee06460f45522093e17f900e76590b282 Reviewed-by: Alexandru Croitor <[email protected]>
* qmltc: Add READ before WRITE in generated Q_PROPERTYsOlivier De Cannière2025-01-141-8/+8
| | | | | | | | | We currently have two orderings for the READ and WRITE elements of the macro depending on whether we compile a property or an alias. Make them uniform by having READ before WRITE in both cases. Change-Id: I1dd308c921b8948347029c603bc3bca2be87abda Reviewed-by: Ulf Hermann <[email protected]>
* qmlformat: Reorder imports alphabeticallyOvidiu Tepescu2025-01-131-1/+7
| | | | | | | | | | | Reorder imports alphabetically. [ChangeLog][qmlformat] qmlformat now supports sorting of imports, there is a new commandline option -S that is used to sort imports. Fixes: QTBUG-132061 Change-Id: Ic163456d2beed84833f7aadef0688d37292ef0f2 Reviewed-by: Semih Yavuz <[email protected]>
* qmlformat: fix error message outputSemih Yavuz2025-01-091-2/+0
| | | | | | | | | | | | | | We don't need m_valid to check if there is an error. Do validity check by m_error.isEmpty(). Prior to this commit, an invalid command line option given to qmlformat wouldn't spit out the error message and qmlformat would silently ignore the error and run with default settings. For example, the command qmlformat -W -342523 <filepath> should error out with this commit since a negative line length is given. Change-Id: Ie7d07e3b2b3714793f9abed4558003cc5ad77b34 Reviewed-by: Sami Shalayel <[email protected]>
* CMake: Fix installation of qmlcache's .prf files in cross-buildsJoerg Bornemann2025-01-031-33/+2
| | | | | | | | | | | | | | In cross-builds of Qt we missed to install qtquickcompiler.prf and qmlcache.prf. Fix that by installing these files before the qt_internal_return_unless_building_tools call. Remove qmake2cmake conversion cruft as drive-by. Fixes: QTBUG-132423 Pick-to: 6.5 6.8 6.9 Change-Id: Ic7a63af90985e42c221cce2c54de285f03b09999 Reviewed-by: Alexey Edelev <[email protected]> Reviewed-by: Alexandru Croitor <[email protected]>
* Transform animations for VectorImageEskil Abrahamsen Blomfeldt2024-12-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This works by first creating a transform object per animated property we have in SVG. Then it creates a set of key frames based on these. All key frames will touch all animations, so that they can also control activating and deactivating an animation, freezing the end result of one, etc. The frames we generate are based on the end points of animations as well as right after (and sometimes right before) the animation to record the state when it is inactive. If any of the animations have infinite repeats, we create a set of key frames for the finite part first and then the infinite loop, so that these are separated into two different animations in QML. At each key frame we check all animations to see if they affect their corresponding transform at this time. If they are inactive, the transform will be set to a default value. But if they are active (either running or frozen), we query the interpolated value from the animator to get the value at the specific time. Pick-to: 6.9 Fixes: QTBUG-127590 Change-Id: I0102cefb3713a0c36661fb3da008b25b19a80427 Reviewed-by: Hatem ElKharashy <[email protected]>
* Adapt to QFile::open being [[nodiscard]]Volker Hilsheimer2024-12-151-1/+4
| | | | | Change-Id: Iaab88c44e16c60af535608ff7d7f405fca540dac Reviewed-by: Alexey Edelev <[email protected]>
* qmlls: wait for exit-notification before shutdownSami Shalayel2024-12-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The LSP states that qmlls should only shutdown after having received an "exit" notification. Previously to this patch, qmlls would shutdown right after receiving the shutdown request, without waiting to receive an exit notication (that is supposed to be send from the client to the server after the shutdown request). Amends 9aa5abbda76db44b7ead30c221675183285b420c that fixed qmlls not being able to shutdown by making it shutdown correctly. Add a new enum value WaitingForExit to RunStatus that describes the state between receiving a shutdown request and before receiving the exit notification from the client. Use it to make sure that qmlls waits for the exit notification and that qmlls does not read again from stdin after the exit notification was received. Also don't exit qmlls on QLanguageServer::shutdown when the shutdown request gets processed but rather on QLanguageServer::exit when the exit notification has been received. This is required for QTCREATORBUG-31897 to avoid qt creator complaining about qmlls returning 1 when it is restarted, despite qmlls having done a graceful shutdown. Also make the tst_lifecycle code reusable and write tests for the linux/macos case (where the shutdown and the exit notifications are read in two parts) and for the windows case (where sometimes both shutdown and exit are read in the same block from stdin). Pick-to: 6.8 6.9 Task-number: QTCREATORBUG-31897 Change-Id: I0cd663a351027e100469e273b4bb21f47b817a49 Reviewed-by: Ulf Hermann <[email protected]>
* qmllint: add an "error" logging categorySami Shalayel2024-12-121-0/+1
| | | | | | | | | | | | | | Add support for a critical error category in qmllint called "error", so that the qds plugin can show errors for unsupported components for example. Add a test. The error category makes qmllint return -1. Simplify a bit the logic of the "success" bool in lintFile() by making it a LintResult and returning it. Change-Id: Ide6a6a265f1aeede0fcbc35d9e4d0abe3f5c2aa3 Reviewed-by: Fabian Kosmale <[email protected]>
* QtQml: Add some consistency to QV4::RegExpUlf Hermann2024-12-121-10/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The RegExp JIT should behave the same as the V4 JIT. In particular, it should honor the same JIT call threshold and not second guess any manually set thresholds. To do this we need to store the match count in 32 bits. In turn we can store the 5 flags we may have in 8 bits. To make this safe, pass typed flags to the initialization functions. Also, consider the flags when calculating hash values. Finally, in the init() function, we don't need to initialize members to zero, since that is already guaranteed by the memory manager. And we can delete the flagsAsString() method since it's unused. This requires shuffling some #includes into the places where they actually belong. [ChangeLog][QtQml] The JavaScript regular expression engine now honors QV4_JIT_CALL_THRESHOLD for its own JIT. If QV4_JIT_CALL_THRESHOLD is not set, it uses the JIT after 3 interpreted matches for any regular expression, rather than the previous 5. Matching a regular expression on a string longer than 1024 bytes counts as 3 matches. This is to retain the default behavior of JIT'ing regular expressions right away when encountering long strings. Task-number: QTBUG-131957 Change-Id: I269ccea55d34b191ef18d7cd5fccd4cad8aec7cd Reviewed-by: Sami Shalayel <[email protected]> Reviewed-by: Fabian Kosmale <[email protected]>
* qmlls: fix compatibility issue due to removal of "p" flagSemih Yavuz2024-12-081-3/+5
| | | | | | | | | | | | | | | | We overlooked the fact that changing a flag in the CLIi of public tools might lead to compatibility issue. Don't remove p flag. Amends be5ae2cd0991d780f053d2fab1676b2a87f95ae3. [ChangeLog][Qml][Qmlls] qmlls tool can take both -p and -d flag to pass documentation path. Pick-to: 6.8 Fixes: QTBUG-131807 Change-Id: I80da1ea3d83806bed1439f4d1c5118250d27a235 Reviewed-by: Sami Shalayel <[email protected]> Reviewed-by: Soheil Armin <[email protected]>
* QtQml: Model native modules as compilation unitsUlf Hermann2024-12-061-6/+4
| | | | | | | | | | | | | | | | | | | | | | | QQmlTypeLoader::injectedScript() was unsafe and impossible to fix because it had to query the engine from the type loader thread in order to find out whether to load a script from an actual file. By removing the whole special-casing of native modules, we can make the script loading thread safe. A native module is now also a compilation unit, with a regular QV4::Module as value. This means we can remove a lot of code that deals with the native modules in the engine. The downside is that native modules are now a lot larger than before. However, given that they don't appear in any examples and hardly any bugs have been filed about native modules since their introduction, we can assume that they are not a very popular feature. The reduction in complexity and the removal of the native modules map in the engine is expected to outweigh the extra memory overhead for native modules. Task-number: QTBUG-131721 Pick-to: 6.8 Change-Id: Ia7388d7ba8d71637559a791d874257fba4646330 Reviewed-by: Fabian Kosmale <[email protected]>
* qmlformat: use indenting line writer if column break is in useSemih Yavuz2024-12-051-5/+6
| | | | | | Task-number: QTBUG-113590 Change-Id: I24e1d8df81736b63d8b2eb25aa8625b9e22b211a Reviewed-by: Fabian Kosmale <[email protected]>
* qmlformat: allow customizable line breakSemih Yavuz2024-12-051-0/+16
| | | | | | | | | Set line break width from commandline or settings file. Introduce -W option to set the maximum line width. Task-number: QTBUG-113590 Change-Id: Ieb0c4bd728139eec6dacaf629a640a0f2c88557f Reviewed-by: Sami Shalayel <[email protected]>
* Move inlineComponentName from CU to ObjectCreatorFabian Kosmale2024-12-041-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | A (base) compilation unit should ideally be immutable, as we otherwise open a can of worms when it comes to cross-thread usage of CUs. However, so far, we've been using a mutable inlineComponentName member of the compilation unit to select whether the root component of a CU should be constructed, or one of its inline components. This patch change prepares for making the CU immutable, by moving the inline component name tracking into the ObjectCreator itself, requiring that the name gets passed into its constructor – or that an empty string gets passed in case of the main component. The resulting refactoring makes it apparent that deferred properties did not handle inline components at all. Support for them gets added by also storing the inline component name inside of DeferredData, and passing it along when needed. A test case which verifies that deferred properties are now fixed is added as a follow-up commit. Besides the core engine, we also need to adjust qmltc which also generates code to handle deferred properties. Consequently, we also need to pass the inline component name along in the qmltc generated code. Task-number: QTBUG-131442 Pick-to: 6.5 6.8 Change-Id: Ide9bc98223c01225b954662b3f4989bbbfda7672 Reviewed-by: Ulf Hermann <[email protected]>
* qmlls: add --bare option to fix Qt QML import pathSami Shalayel2024-12-041-29/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Ignore the import path from QLibraryInfo when --bare is set. In Boot2Qt builds, qmlls uses an qt.conf file that contains unsysrootified entries. Tooling like qmlls does not know how to use sysroots (a qmake extension), and therefore will get an invalid path from QLibraryInfo for the QML import path. Instead, the Qt QML import paths should be passed from the user or IDE by commandline or settings file. Also, the current implementation does prefer the path from QLibraryInfo before any path passed by the -I option or the settings, which is not good: the paths passed by the user should have preferences over the default fallback option. Also move the code to collect import paths into a static helper method This allows to use non-standalone qmlls of a specific Qt version with projects targeting a different (older?) Qt versions. Add a test. Fixes: QTBUG-131363 Change-Id: I9ab34d4fe62e92597a32ebe8e37e7b811230cd86 Reviewed-by: Fabian Kosmale <[email protected]> Reviewed-by: Ulf Hermann <[email protected]>
* qmllint: Flip back argc and argv in mainOlivier De Cannière2024-11-221-2/+2
| | | | | | | | For some reason, the argument count is called argv and the argument values are stored in argc. That should probably be the other way around. Change-Id: I60361cc6d84cefb9599ea349a40e77c5eaf0c581 Reviewed-by: Fabian Kosmale <[email protected]>
* Decouple the Quick vector graphics generator from qtsvgEirik Aavitsland2024-11-141-1/+1
| | | | | | | | | | | To allow other usages of QQuickGenerator and related classes, remove (most of) the hardcoding against qtsvg and restructure the api a bit. As a driveby, also ensure that all members in the generator's NodeInfo structs are initialized by default. Change-Id: I731a99422ff03ec7bd0301b124e3b3264c6cc0b7 Reviewed-by: Hatem ElKharashy <[email protected]>
* qmlcachegen: Fix resource import pathsUlf Hermann2024-11-141-2/+2
| | | | | | | | Amends commit 2cf9aeccddbd06a66df94bd27916714c4a5c7e24. Pick-to: 6.8 Change-Id: Ic280eb3caa67c17c87cd5419fad0f6b8801a46a9 Reviewed-by: Sami Shalayel <[email protected]>
* qmllint: load plugins from the correct pathsSami Shalayel2024-11-131-1/+1
| | | | | | | | | | | | | | | | | | | | Make qmllint load plugins from the same default directories as QFactoryLoader does, in addition to the extra paths passed by command line arguments to qmllint. Remove the static helper method to get the custom qmllint default plugin directories and use QCoreApplication::libraryPaths() instead. This allows to ship the qmllint plugins with qmlls's standalone build, because QCoreApplication::libraryPaths() contains the current application path and allows a standalone qmlls to load plugins for linting or completion from a subfolder. Fix tst_sanity to continue ignoring the warnings from all other plugin as QQmlJSLinter will load all available default plugins now, like the Quick plugin for example. Change-Id: I9edaddb0fd5da27f68da9ceca76a9351fc0c6aee Reviewed-by: Fabian Kosmale <[email protected]>
* qmltc: Refactor iteration methods to be less repetitiveUlf Hermann2024-11-111-32/+15
| | | | | | | | Iterating types and iterating bindings is pretty much the same thing except for different predicates being applied. Change-Id: I52044b0d2a98ef51035cc5ebb0990ac03788eec2 Reviewed-by: Luca Di Sera <[email protected]>
* QmlCompiler: Rename attachingType() to attachedType()Ulf Hermann2024-11-112-2/+2
| | | | | | | | That's what it actually is. It doesn't return the attacher but rather the attachment! Change-Id: I05e391d9d56ec0b8f56811eba491654dfa386bd9 Reviewed-by: Olivier De Cannière <[email protected]>
* Fix "MaxWarnings" settings in .qmllint.iniAndré Klitzing2024-11-081-3/+5
| | | | | | | | | This amends 74ec76d5edc2446927523dc1b301bf8cc75beb7d. Task-number: QTBUG-128221 Pick-to: 6.8 Change-Id: Ia7ccf4212fdca35fb3ecaae8e97bb046765b61ba Reviewed-by: Sami Shalayel <[email protected]>
* qmlls: fix setting documentation path from commandlineSemih Yavuz2024-11-081-2/+3
| | | | | | | | | Change commandline option to -d and make it accept value. Pick-to: 6.8 Task-number: QTCREATORBUG-31897 Change-Id: I275a4a8274034dc58528aa5b55b5b1814e23788f Reviewed-by: Sami Shalayel <[email protected]>
* qmltc: Fix usage of namespaced attached typesUlf Hermann2024-11-082-3/+12
| | | | | | | | | | | | We can't have a '.' in the variable name. Use '_' instead. In addition, disambiguate the names by always prepending a number to the part extracted from QML. This is safe because QML names can't start with numbers. Pick-to: 6.8 Fixes: QTBUG-130838 Change-Id: I1243070a3cb901bc4c2c108ecbec0c9cbbc57a55 Reviewed-by: Olivier De Cannière <[email protected]>
* qmltc: Retrieve types of attached and group propertiesUlf Hermann2024-11-081-6/+8
| | | | | | | | | | We need to recurse into those in order to find components assigned to properties of attached objects. Pick-to: 6.8 Fixes: QTBUG-130839 Change-Id: Ie08e7f992a262fa338038bae41c293229d5e3606 Reviewed-by: Olivier De Cannière <[email protected]>
* aotstats: Fix coverity warningsOlivier De Cannière2024-11-071-2/+2
| | | | | | | Coverity-Id: 469979 Coverity-Id: 469980 Change-Id: Ia26d66820b78a3ae9208c2a230bd2548fb9cbfc6 Reviewed-by: Ulf Hermann <[email protected]>
* aotstats: Keep track of files and modules with no functions or bindingsOlivier De Cannière2024-11-041-0/+1
| | | | | | | | | | | | Before this change, the report presented to the user would be completely silent about them. For the sake of consitency, register each file before trying to compile it. This will then add an entry for empty files and modules. Task-number: QTBUG-124667 Pick-to: 6.8 Change-Id: I502660b7a16a67a173763f9ea2b081cbcceb5658 Reviewed-by: Sami Shalayel <[email protected]>
* aotstats: Support --only-bytecode and modules with no qml filesOlivier De Cannière2024-11-042-1/+21
| | | | | | | | | | | | | | | | | | | | It is possible to pass --only-bytecode to qmlcachegen. As the name implies, this only generates the bytecode for the qml files and does not compile them. This case was not taken into account which could lead to files commands depend upon not being generated. Therefore, keep track of empty and only-bytecode modules in files generated by cmake and pass them to qmlaotstats upon aggregation such that it can include that information in the report. Also, only pass the arguments specific to aotstats to qmlcachegen if --only-bytecode is not set for that module. Fixes: QTBUG-130084 Task-number: QTBUG-124667 Pick-to: 6.8 Change-Id: I44b4a80e8a6fd2f9bc16ae1bb2c8d540ff3b697b Reviewed-by: Sami Shalayel <[email protected]>