summaryrefslogtreecommitdiffstats
path: root/src/tools
Commit message (Collapse)AuthorAgeFilesLines
...
* 3rdparty: update TinyCBOR to v0.6.1Thiago Macieira2025-03-121-0/+1
| | | | | | | | | [ChangeLog][Third-Party Code] The copy of TinyCBOR in Qt was updated to 0.6.1. Pick-to: 6.9 6.9.0 6.8 6.8.3 6.5 5.15 Change-Id: If5d5ef6220874ae8858efffd1712a567597b6317 Reviewed-by: Marc Mutz <[email protected]>
* qdbusxml2cpp: remove unneeded newlines in the end of the cpp filesIvan Solovev2025-03-121-4/+2
| | | | | | | | | | | | The tool was writing too many newlines, which either produced unneeded newlines directly in the end of the file, or before the moc-related include. Amends 351b7a31aa24a704dba09121d91cb34190892315. Task-number: QTBUG-133611 Change-Id: I38046cabe86625ecc3da827c434db0dca09a0d63 Reviewed-by: Juha Vuolle <[email protected]>
* qdbusxml2cpp: remove stray whitespaces in the end of the lineIvan Solovev2025-03-121-4/+4
| | | | | | | | | | | Found when trying to commit the updated QtBluetooth proxies into the repo. Amends 351b7a31aa24a704dba09121d91cb34190892315. Task-number: QTBUG-133611 Change-Id: Ifadd6fd8402a23a14e46cdb6beceae6b59e1dca1 Reviewed-by: Juha Vuolle <[email protected]>
* Expose the Vulkan 1.4 core APILaszlo Agocs2025-03-111-3/+15
| | | | | | | | | | | | | | | | | | | Non-trivial update this time. Recent vk.xml adds the option of listing "vulkiansc" in the api attribute, which we did not handle before in qvkgen for command elements at all, and was not treated as a comma-separated list for feature elements. Fix these up. Also add 1.4 in QVulkanDefaultInstance, so that 1.4 goes into VkApplicationInfo.apiVersion, when available, incl. in Qt Quick. [ChangeLog][QtGui] QVulkanFunctions and QVulkanDeviceFunctions are updated to expose the Vulkan 1.4 API as long as Qt is built against Vulkan 1.4 headers. [ChangeLog][Third-Party Code] Updated vk.xml to 1.4.308. Change-Id: I8bc4bb578575bcbb189286a26617cd0052241be5 Reviewed-by: Andy Nichols <[email protected]>
* moc: Add a hidden option to make QML macro warnings fatalFabian Kosmale2025-03-103-1/+11
| | | | | | | | | | | | | | | | We don't want to make them fatal by default, as that could break user projects with identifiers whose name collide with the macros (which is fine if they don't actually want to use the registration macros). However, when using qt_add_qml_module, we can assume that anything looking like a registration macro should actually be one. Prepare for this by adding a flag which makes the warning fatal, and which can then be set in qtdeclarative. Task-number: QTBUG-134148 Change-Id: I3a49968b05d66e4e4ca3a8a2dae1a7b543471c68 Reviewed-by: Ivan Solovev <[email protected]>
* Android: bump Android target API level to 35Rami Potinkara2025-03-061-1/+1
| | | | | | | | | | | | This patch -updated target API level to 35 into build tools -updated target API level to 35 in build.gradle files Task-number: QTBUG-129461 Task-number: QTBUG-130284 Pick-to: 6.9 6.9.0 Change-Id: Iebdc99e6f607352652c3f0022f17de60eae97d58 Reviewed-by: Assam Boudjelthia <[email protected]>
* moc: Add an error overload taking a Symbol and a messageFabian Kosmale2025-03-052-0/+7
| | | | | | | | This allows deferring warnigs about a certain error until later, by storing the symbol (while still allowing to print a custom message). Change-Id: Id434eec9b344b1f8b18c504dfda8fed90167cf12 Reviewed-by: Ivan Solovev <[email protected]>
* Warn about QML registration macro without includeFabian Kosmale2025-03-051-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In some setups, e.g. when using precompiled headers, the compiler will see all definitions necessary to compile a class containing a QML registration macro. However, moc won't be able to resolve the macro to its expanded text, and thus miss the information. This leads to a runtime failure when the QML engine cannot find the type, because it has not been registered (as qmltyperegistrar relies on the information collected by moc). To avoid this, teach moc about the registration macros, and warn when encountering them. We do this by comparing identifiers inside classes against the names of the QML registration macros. We do not error out, as a user might use the names of the macros as normal identifiers, especially in a non-QML project (as unlikely as this might be). Warning out when finding a registration macro might sound counter-intuitive, but works because moc should not actually see the macros at this stage: When the header is included, macro expansion will replace the macro with its expansion; only when the header is missing will we ever see the macro as an identifier. Task-number: QTBUG-134148 Pick-to: 6.8 6.9 Change-Id: I2f213444993a9d782a027c2dc25ffcbe0824ddca Reviewed-by: Ulf Hermann <[email protected]> Reviewed-by: Sami Shalayel <[email protected]>
* Add namespaces to qdbusxml2cppMatthias Rauter2025-03-051-2/+39
| | | | | | | | | | | [ChangeLog][QtDBus][qdbusxml2cpp] The Qt D-Bus XML compiler (qdbusxml2cpp) now supports the command-line argument -namespace <namespace>, which encapsulates all generated classes within the specified namespace to prevent class name conflicts. Fixes: QTBUG-133611 Change-Id: Ic3473dfc33dcf22f5be727236fe546b70b2b015b Reviewed-by: Ivan Solovev <[email protected]>
* Docs: Create \Q4A macro for "Qt for Android" and replace instancesNicholas Bennett2025-02-281-2/+2
| | | | | | | | | | | | | | "Android" is trademarked and needs to be referenced in a certain way. The following steps were taken: -Created qdoc macro. -Updated "Qt Android" and "Qt for Android" to use \Q4A in qdoc files. The macro will need to be adopted in all documentation projects. Task-number: QAA-2836 Pick-to: 6.9 6.8 6.5 Change-Id: I4b52247a4ed52047242a06404e6d3aa19de9c16c Reviewed-by: Assam Boudjelthia <[email protected]>
* moc: Do not accept empty input files on --collect-jsonUlf Hermann2025-02-214-12/+28
| | | | | | | | ... and also don't generate them on --output-json. That was an invitation for build time race conditions. Change-Id: I206ee47f08aa657f9b1cbec4e9e9b3ea97605cae Reviewed-by: Thiago Macieira <[email protected]>
* moc: Prefix messages from --collect-json with file namesUlf Hermann2025-02-211-12/+12
| | | | | | | | Unless we're reading from stdin or writing to stdout, in which case there are no file names. Change-Id: I583fe2a77f54c5d62d965384a2c316f37a9b2fd2 Reviewed-by: Thiago Macieira <[email protected]>
* Update PCRE2 to 10.45Giuseppe D'Angelo2025-02-171-0/+1
| | | | | | | | | | | | | | | | | | New upstream version. Importing note: 10.45 is missing a licence file for the sljit dependency. This is tracked upstream at https://github.com/PCRE2Project/pcre2/issues/686 so it may get fixed in 10.46 (in which case the import script / qt_attribution.json may need to be amended). [ChangeLog][Third-Party Code] PCRE2 was updated to version 10.45. Pick-to: 6.9 6.8 6.5 Change-Id: Ifa0430782bed8ffb1c26f44ca6eb06cd26aaa1f9 Reviewed-by: Mårten Nordheim <[email protected]>
* AndroidTestRunner: allow to call additional/extra adb callBartlomiej Moskal2025-02-112-0/+22
| | | | | | | | | | | | | | | | | | | This commit adds a new parameter (--pre-test-adb-command) to AndroidTestRunner. The new parameter allows to pass an extra adb command which will be called by AndroidTestRunner after installation and before running the test. To set the mentioned argument the new parameter for qt_internal_add_test was proposed: ANDROID_TESTRUNNER_PRE_TEST_ADB_COMMANDS. The new parameter is needed especially for multimedia screen capture tests. ScreenCapture feature needs an acceptation of Security Popup. It can be automatically accepted with additional adb command. Fixes: QTBUG-132249 Pick-to: 6.9 6.8 Change-Id: Ib70cd05d60d4594961ca68b554c7aae11cf42240 Reviewed-by: Assam Boudjelthia <[email protected]>
* uic: Add #ifdef depending on Qt version for QPalette::AccentFriedemann Kleint2025-02-101-0/+2
| | | | | | | | | Complements 17c589df94a2245ee92d45839c2cba73566d7310. Pick-to: 6.9 6.8 Fixes: QTBUG-133651 Change-Id: Ieb57df30863f8493cd170d80220ae09177842ede Reviewed-by: Jarek Kobus <[email protected]>
* Fix dangling references - GCC 15Liang Qi2025-01-311-1/+1
| | | | | | | | | | This amends 8a6750475410629741de0417c28f574c25c65338 and 18def77d27f88ce26b6af29fe56a80429fed555d. Pick-to: 6.9 6.8 Change-Id: I31068527458da3d25211743fb64e2624039bd78b Reviewed-by: Giuseppe D'Angelo <[email protected]> Reviewed-by: Thiago Macieira <[email protected]>
* Bootstrap: depopulate qcore_mac.mm to remove QOperatingSystemVersionThiago Macieira2025-01-241-3/+0
| | | | | | | | | | | | | | | We don't need anything that the class provided, but we needed it because everything is in a large .mm source file. I've also removed portions of qcore_mac.mm that aren't needed for bootstrapped tools, like telling whether dark mode is in effect (the bootstrapped tools aren't GUI). I've also had to remove the check for running under Rosetta, which hopefully is going to affect no one: running moc & cmake_automoc_parser under Rosetta is going to be mighty slow. Just use a native set of tools instead. Change-Id: I4c0c716a5b57833abf63fffdf0c66b9ebaccffdb Reviewed-by: Ivan Solovev <[email protected]>
* AndroidTestRunner: print failed build output when no --verbose is usedAssam Boudjelthia2025-01-241-2/+4
| | | | | | | | | | | This helps with better debugging where in most cases the tests are run without --verbose, but if there's a build error, it won't be clear what went wrong, and only re-running with --verbose would give such details, which is just annoying to deal with. Pick-to: 6.9 Change-Id: Icb8bcb8e5ba297d48b9e166c93523f25a21937b2 Reviewed-by: Ville Voutilainen <[email protected]>
* AndroidTestRunner: don't automatically print logcat unless its a crashAssam Boudjelthia2025-01-241-6/+7
| | | | | | | | | | | Print logcats only if it's explicitly requested with the respective argument or if there was a crash, i.e. where we can't get the test's exit code. Otherweise, in case of normal failure, we don't really need to pollute the output. Pick-to: 6.9 Change-Id: Ic4e6db5d9fd6786bd28204a3ec87f63a7ec9764a Reviewed-by: Ville Voutilainen <[email protected]>
* uic: Write Palette/Gradient code with fully qualified enumerationsFriedemann Kleint2025-01-211-10/+15
| | | | | | | Pick-to: 6.9 Task-number: PYSIDE-1735 Change-Id: Ica05108d8802f235fd067095072547c1461e7387 Reviewed-by: Jarek Kobus <[email protected]>
* AndroidDeployQt: explitly constuct the qmlDomCommand args listAssam Boudjelthia2025-01-201-9/+6
| | | | | | | | | | | | | Construct the arguments list explicilty to QStringList to avoid calling QProcess::splitCommand() and potentially splitting a path with spaces that shouldn't, this also saves from having to deal with shell quotes. Fixes: QTBUG-132891 Pick-to: 6.9 6.8 Change-Id: I48f6c219830269c507f146b654bcfa025f0e3203 Reviewed-by: Olli Vuolteenaho <[email protected]> Reviewed-by: Petri Virkkunen <[email protected]> Reviewed-by: Soheil Armin <[email protected]>
* Android: Handle dotted URI QML Modules in Java code genSoheil Armin2025-01-171-71/+82
| | | | | | | | | | | | | | | | | | | | | | | | | A QML module can have URI that include dot character. In this change, we refactor the code generator to create the same hierarchies as a Java package structure. Each QML module URI will be appended to the base application package name to form a package that represents the QML module as a Java package. Then the generated code of each QML component will be placed in a single file. This change, also refactor how to generated code should be written in the file, by buffering the generated code to a QByteArray first, and then flushing it into the target file. We also create a marker file inside the directories of each module, so that we can entirely remove the directory and all its files before generating new code during the next build. Fixes: QTBUG-125891 Fixes: QTBUG-125970 Fixes: QTBUG-125971 Pick-to: 6.8 6.9 Change-Id: Iebce6495d9d29af32c3f1f97274c252444d2864e Reviewed-by: Assam Boudjelthia <[email protected]>
* Android: Improve qmldir discovery of QML to Java codegenSoheil Armin2025-01-171-5/+23
| | | | | | | | | | | | | | | | | Recursively find all qml modules, built by this project. Later, the qmldir of these modules will be used to generated to code. The command line argument -i of qmldom tool had to be replaced with -I. The -i was incorrect as it expects the qmldir file while -I accepts a QML directory to be included. Fixes: QTBUG-125892 Fixes: QTBUG-125970 Pick-to: 6.8 6.9 Change-Id: I4099e488d3d7f4b79566e6ea19eca95f57f7c2fd Reviewed-by: Assam Boudjelthia <[email protected]>
* Bootstrap: remove qcoreapplication_{mac,win}.cpp & QStandardPathsThiago Macieira2025-01-151-10/+0
| | | | | | | | | We don't need to discover the application's name or file path. This also removes the only use of QStandardPaths::findExecutable(), so we can remove the entire class too. Change-Id: Id297dc9b56ada635cfc9fffd679ead9378fffb03 Reviewed-by: Ahmad Samir <[email protected]>
* Remove unused qdebug.h include from private headersAhmad Samir2025-01-161-1/+0
| | | | | | Pick-to: 6.9 Change-Id: I03c951d03ab2410298878d0689c0d50bdd4eedf2 Reviewed-by: Mårten Nordheim <[email protected]>
* Replace qdebug.h includes in public headers with forward-declarationsAhmad Samir2025-01-151-0/+1
| | | | | | | | | | | | | | | | | | | qdebug.h includes many Qt and STL headers, so if you include a Qt header you get all those transitive includes, which may affect build time. - Where appropriate use the printf-like syntax of qDebug() and co., these don't need the QDebug streaming operators - qfloat16 is used in an inline member function, so include it explicitly [ChangeLog][Potentially Source Incompatible Changes] Various Qt public headers don't include QDebug any more; if you need QDebug's streaming you'll have to include it in your code. Task-number: QTBUG-132439 Pick-to: 6.9 Change-Id: I750587e17a3b38fa226cd3af8eaccc8da580f436 Reviewed-by: Thiago Macieira <[email protected]>
* Remove unused qdebug.h includesAhmad Samir2025-01-131-1/+0
| | | | | | | Pick-to: 6.9 Change-Id: I09ad5987bde71ca37c7869c4dd63fb4f41c707ea Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Marc Mutz <[email protected]>
* Bootstrap: remove QSystemLibrary and QWinRegistryKeyThiago Macieira2025-01-131-2/+0
| | | | | | | | They're unused. Pick-to: 6.9 Change-Id: I781690cca811cdbab757fffd30b64fccb197ef46 Reviewed-by: Ivan Solovev <[email protected]>
* Bootstrap: disable all debug/info/warning messages and assertionsThiago Macieira2025-01-131-1/+0
| | | | | | | | | | The three bootstrapped tools should validate their arguments properly, so there's no need to have them print something. They aren't means to test the Qt classes either, so assertions shouldn't apply. Change-Id: I580758610c7262414b64fffd54f84eb16743673d Reviewed-by: Volker Hilsheimer <[email protected]> Reviewed-by: Ahmad Samir <[email protected]>
* Bootstrap: remove the QDebug streaming classThiago Macieira2025-01-131-1/+0
| | | | | | | | | And fix some compilation bugs if QT_NO_DEBUG_STREAM is defined. Drive-by fix the grammar in the qcommandlineparser.cpp qWarning(). Change-Id: Ia9287ea189ae4a4b7545fffdbff7dbb9196de519 Reviewed-by: Ahmad Samir <[email protected]>
* Bootstrap: remove unused sourcesThiago Macieira2025-01-131-3/+0
| | | | | | | None of this is used. Change-Id: I8ced5410f276d47065fafffd4bcad394de968599 Reviewed-by: Ahmad Samir <[email protected]>
* macdeployqt: port to QSaveFileIvan Solovev2025-01-021-10/+14
| | | | | | | | ... to avoid loosing file content in case of write errors. Change-Id: If3f7af1e7260e3b9c3df201ed869988b0bd6df2a Reviewed-by: Volker Hilsheimer <[email protected]> Reviewed-by: Joerg Bornemann <[email protected]>
* Replace qgetenv() calls converted to QString with qEnvironmentVariable()Thiago Macieira2025-01-011-1/+1
| | | | | | | | It's slightly more efficient. Pick-to: 6.9 Change-Id: Id5ac04fc27eee108c8e5fffd786c3d5f793a0a9d Reviewed-by: Ahmad Samir <[email protected]>
* moc: fix GCC -Wextra-semi colon after member function definitionsAhmad Samir2025-01-011-1/+1
| | | | | | | | | | As pointed out by Thiago the QT_DECLARE_METATYPE calls are redundant, so remove them. Task-number: QTBUG-132101 Pick-to: 6.9 6.8 Change-Id: I73800e70d3f270fb87941d4e053aa7ac5ed1841c Reviewed-by: Thiago Macieira <[email protected]>
* Bootstrap: remove QUuid and QCryptographicHash: they're now unusedThiago Macieira2024-12-301-2/+0
| | | | | | | | The previous commit removed the one use of QUuid and, through it, QCryptographicHash in one of the three bootstrapped tools. Change-Id: I31b7f9f6aa402709bad7fffd3a65e86be7f6d882 Reviewed-by: Ahmad Samir <[email protected]>
* tracegen: Remove the use of QUuid and therefore QCryptographicHashThiago Macieira2024-12-301-17/+35
| | | | | | | | | | | | | | | | | By bypassing the two completely and just using the SHA1 algorithm directly. This removes the only use of either class in bootstrapped tools. The use of the null UUID as a namespace is non-standard, so I've scheduled it for removal in Qt 7, which will also simplify the code. It will be closer to Microsoft's suggestion in [1]. Until then, this keeps the exact same algorithm as Qt 6.8's tracegen so the two versions generate the same IDs. [1] https://learn.microsoft.com/en-us/windows/win32/api/traceloggingprovider/nf-traceloggingprovider-tracelogging_define_provider#provider-name-and-id Change-Id: I5056b93971c9b03d7d82fffd53bf27228074d9f4 Reviewed-by: Ahmad Samir <[email protected]>
* uic: Generate fully qualified enumerations for QFormLayoutFriedemann Kleint2024-12-301-2/+3
| | | | | | | | | | This is required for Python. Pick-to: 6.9 Task-number: PYSIDE-1735 Change-Id: I92108009dd23565adaa2ee77300059cb197a89c5 Reviewed-by: Cristian Maureira-Fredes <[email protected]> Reviewed-by: Shyamnath Premnadh <[email protected]>
* Android: document androidtestrunner toolAssam Boudjelthia2024-12-191-0/+127
| | | | | | | | | Add documentation and usage of androidtestrunner tool. Pick-to: 6.9 6.8 Fixes: QTBUG-84330 Change-Id: I03aa67ebf0ba807f20595547f2598d905080a878 Reviewed-by: Nicholas Bennett <[email protected]>
* Android: Fix for multi-ABI build in androiddeployqtBartlomiej Moskal2024-12-171-2/+7
| | | | | | | | | | | | | | | | | | 7499fd0229d63f969bf6ca58d3b764b96395bed2 commit cleans up the localLibs to not add dependencies to the libs.xml file as they will not be satisfied. Mentioned change created a regression with multi-ABI build. It happens because in qtDependencies[ARCH] container, some libs just have different atchitecture prefix. This commit remove architecture prefix when checking libs in qtDependencies container. Fixes: QTBUG-131707 Pick-to: 6.8 6.9 Change-Id: Iae54779bfa4bd143ec35353604724d8ec4e35ef2 Reviewed-by: Assam Boudjelthia <[email protected]>
* Android: handle quotes in hard-coded namespace in build.gradleAssam Boudjelthia2024-12-131-1/+8
| | | | | | | | | | Remove quotes from the namespace values if they're set directly to build.gradle. Fixes: QTBUG-132150 Pick-to: 6.9 6.8 Change-Id: I7f5e132c2600bf5079850c99dc500b1dff7e6a96 Reviewed-by: Ivan Solovev <[email protected]>
* moc: Always indentify as mocFabian Kosmale2024-12-131-0/+2
| | | | | | | | | | | | | | | | | | External tools might rely on the output of "moc --version" to identify moc, and, depending on how robust their parsing is, could break if the reported name does not equal "moc". Explicitly set the application name to moc, so that even if the moc binary gets renamed and invoked via a symlink, it will still correctly identify itself. This might help with both binaries from the Qt Company's installer, as well as with distros which rename moc to moc6. Pick-to: 6.9 6.8 6.5 Task-number: QLS-1605 Change-Id: Id85e2ffa17d445213da0b37e7bd038d7b68e2c2a Reviewed-by: Ulf Hermann <[email protected]>
* macdeployqt: adjust to [[nodiscard]] QFile::open()Ivan Solovev2024-12-112-8/+14
| | | | | | | | | | | | The QFile::open() method becomes [[nodiscard]] in Qt 6.10. However, macdeployqt was not adapted to this change. As a result, an attempt to bump the Qt version fails in the CI. This patch fixes the tool. Amends 7466831509fe163f3fd1e3a6bbf38f6f5a32ef00. Change-Id: I0dc0bc4c892f42e58d80da2407ddd83781ad8246 Reviewed-by: Volker Hilsheimer <[email protected]>
* Replace a few toString() or fromUtf8() QString::arg() parametersMarc Mutz2024-12-032-4/+4
| | | | | | | | | | ...and fromUtf8() format strings. QString::arg() is now available on QUtf8StringView, too and can handle UTF-8 arguments directly. Change-Id: Ifa8b1ea0f41414d15a6919b1967e0a45e4d7929f Reviewed-by: Ahmad Samir <[email protected]>
* moc: Do not get confused by constexpr token in functionsFabian Kosmale2024-11-294-386/+400
| | | | | | | | | | | | | | Surprisingly, moc had no awareness of constexpr at all. This would still mostly work, as we were just skipping it, except for the case where constexpr appears as the last keyword – in which case we'd pick it up as the type name. Fix this by adding constexpr as a known token, and add it to the list of things we ignore in testForFunctionModifiers. Pick-to: 6.5 6.8 Fixes: QTBUG-122609 Change-Id: I0ae0c0477e611ff83fbb841233035bea52216be2 Reviewed-by: Ulf Hermann <[email protected]>
* AndroidDeployQt: don't use QFile pointerAssam Boudjelthia2024-11-291-13/+12
| | | | | | | | | The file is used only in the local scope so no need to have it as a pointer. As a pass-by, use WriteOnly open mode. Pick-to: 6.8 Change-Id: I9999f4aed0f888af9a3e08ed6c3573432c29d195 Reviewed-by: Petri Virkkunen <[email protected]>
* QMetaType & moc: remove the pair type from qTryMetaTypeInterfaceForType()Thiago Macieira2024-11-281-3/+3
| | | | | | | | | We can detect whether the intent is to require completeness by having Unique = void. This simplifies QtMocHelpers as well, removing one more class that needed to be instantiated for each metatype. Change-Id: I3a256568bb6ce1754399fffd6f61144d0a3e8deb Reviewed-by: Fabian Kosmale <[email protected]>
* moc: move the StringData creation into qt_create_metaobjectdata()Thiago Macieira2024-11-222-30/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This removes the last file-scope static variable by moving the stringdata into a merged MetaObjectContents resulting structure. We now only have two class-scope private static inline member template variables. It also removes the wish to merge the strings' integer data into the regular uint array, since effectively they are now merged. Eventually, this should lead to moving the strings into the XxxxData classes so moc doesn't have to collect them early. I don't have a solution for this yet but have some ideas. I've left the StringData class behind because I've found it useful for QMetaObjectBuilder::toCode(). Generated code for QDeviceClosedNotifier (qtextstream.cpp), c++filt'ered: .section .rodata,"a",@progbits QDeviceClosedNotifier::qt_staticMetaObjectStaticContent<(anonymous namespace)::qt_meta_tag_ZN21QDeviceClosedNotifierE_t>: .long 13 # 0xd .long 0 # 0x0 .long 0 # 0x0 .long 0 # 0x0 .long 1 # 0x1 .long 14 # 0xe .long 0 # 0x0 .long 0 # 0x0 .long 0 # 0x0 .long 0 # 0x0 .long 0 # 0x0 .long 0 # 0x0 .long 0 # 0x0 .long 0 # 0x0 .long 1 # 0x1 .long 0 # 0x0 .long 20 # 0x14 .long 2 # 0x2 .long 10 # 0xa .long 1 # 0x1 .long 43 # 0x2b .long 0 # 0x0 .long 24 # 0x18 .long 21 # 0x15 .long 46 # 0x2e .long 11 # 0xb .long 58 # 0x3a .long 0 # 0x0 .asciz "QDeviceClosedNotifier\000flushStream\000" .zero 1 .section .data.rel.ro,"aw",@progbits QDeviceClosedNotifier::qt_staticMetaObjectRelocatingContent<(anonymous namespace)::qt_meta_tag_ZN21QDeviceClosedNotifierE_t>: .quad QtPrivate::QMetaTypeInterfaceWrapper<void>::metaType .quad QtPrivate::QMetaTypeInterfaceWrapper<void>::metaType .globl QDeviceClosedNotifier::staticMetaObject QDeviceClosedNotifier::staticMetaObject: .quad QObject::staticMetaObject .quad QDeviceClosedNotifier::qt_staticMetaObjectStaticContent<(anonymous namespace)::qt_meta_tag_ZN21QDeviceClosedNotifierE_t>+88 .quad QDeviceClosedNotifier::qt_staticMetaObjectStaticContent<(anonymous namespace)::qt_meta_tag_ZN21QDeviceClosedNotifierE_t> .quad QDeviceClosedNotifier::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) .quad 0 .quad QDeviceClosedNotifier::qt_staticMetaObjectRelocatingContent<(anonymous namespace)::qt_meta_tag_ZN21QDeviceClosedNotifierE_t> .quad 0 Change-Id: I484c9165989ae4eaeea1fffd196c08947c083cb5 Reviewed-by: Fabian Kosmale <[email protected]>
* AndroidTestRunner: don't run build command twice and print on failureAssam Boudjelthia2024-11-211-10/+11
| | | | | | | | | | | | | | | | Print an error log when the build command fails that make it clear that the build has failed and not necessarily the test. Also, it seems according to the code, that if the build command fails and --skip-install-root is set, the build command is run again. Prepare the build command after parsing the args considering all the other args and simply run the final build command in main() to simplify things. Pick-to: 6.8 Change-Id: I2f5a9d26bcea78349e1ef1cec4f717c37afd0225 Reviewed-by: Petri Virkkunen <[email protected]>
* moc: keep the enum/class/struct C++ type tag in propertiesThiago Macieira2024-11-203-20/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ActiveQt dumpcpp could use this so Q_PROPERTY(class Accounts *Accounts READ Accounts) can compile. moc will now generate: QtMocHelpers::UintData qt_properties { // property 'Accounts' QtMocHelpers::PropertyData<class Accounts*>(1, 0x80000000 | 2, QMC::DefaultPropertyFlags | QMC::EnumOrFlag), }; if (_c == QMetaObject::RegisterPropertyMetaType) { switch (_id) { default: *reinterpret_cast<int*>(_a[0]) = -1; break; case 0: *reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< class Accounts* >(); break; } } if (_c == QMetaObject::ReadProperty) { void *_v = _a[0]; switch (_id) { case 0: *reinterpret_cast<class Accounts**>(_v) = _t->Accounts(); break; default: break; } } Change-Id: Ibb85c3a067054d017b05fffdbd500f302f655bd9 Reviewed-by: Ahmad Samir <[email protected]> Reviewed-by: Oliver Wolff <[email protected]> Reviewed-by: Thiago Macieira <[email protected]>
* moc: add a helper function to set member propertiesThiago Macieira2024-11-151-16/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is one minor difference: we now use operator== instead of operator!= now, so some defective types may start working (but may break some other, defective types). Simplifies the emitted code, from case 6: if (_t->sMember != *reinterpret_cast< QString*>(_v)) { _t->sMember = *reinterpret_cast< QString*>(_v); Q_EMIT _t->member5Changed(_t->sMember); } break; case 8: if (_t->sub.m_string != *reinterpret_cast< QString*>(_v)) { _t->sub.m_string = *reinterpret_cast< QString*>(_v); } break; to: case 6: if (QtMocHelpers::setProperty(_t->sMember, *reinterpret_cast<QString*>(_v))) Q_EMIT _t->member5Changed(_t->sMember); break; case 8: QtMocHelpers::setProperty(_t->sub.m_string, *reinterpret_cast<QString*>(_v)); break; The second parameter to setProperty() helper is passed as an rvalue reference and forwarded to the assignment, making this ready for move semantics when moc generates code for it. Change-Id: I45ad4a236d38f6c8f994fffd701d4193504d985a Reviewed-by: Ahmad Samir <[email protected]> Reviewed-by: Ulf Hermann <[email protected]>