summaryrefslogtreecommitdiffstats
path: root/src/tools/tracegen
Commit message (Collapse)AuthorAgeFilesLines
* 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]>
* Change license for tools filesLucie Gérard2024-02-0715-15/+15
| | | | | | | | | | | | According to QUIP-18 [1], all tools file should be LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 [1]: https://contribute.qt-project.org/quips/18 Pick-to: 6.7 Task-number: QTBUG-121787 Change-Id: I89e08859871d29a9cf8c7a56b30b07b2c2f34b42 Reviewed-by: Kai Köhne <[email protected]>
* Add TRY_RUN_FLAGS argument to customize the TRY_RUN commandAmir Masoud Abdol2023-06-151-1/+0
| | | | | | | | | | | | | | | | | | Some of our tools don't have the `-h`, or `-v` flag, or it could be that the `-v` flag also prints the entire `--help` as well, e.g., `androiddeployqt`. When running in Jenkins, this may lead to a message box being shown and consequently stopping the build. By customizing the flag per tool, and limiting the TRY_RUN to tools that support `-v` or `--version`, we can avoid this. Also removed TRY_RUN from `macdeployqt` which doesn't need it anyway. Amend 41b32cd2c4706fa280fc779d5dec132ee9edf0f6 Pick-to: 6.5.2 6.5 6.6 Fixes: QTBUG-114530 Change-Id: I78e3344d2553c0050c285ae86f2310bd373c6c57 Reviewed-by: Joerg Bornemann <[email protected]>
* Add TRY_RUN to host toolsAmir Masoud Abdol2023-06-081-0/+1
| | | | | | | | | | | | On Windows, we will try to run our host tools after a successful build. If the build fails because of a missing DLL, we will be able to throw an error with some direction on what might be the cause, and how to resolve it. Pick-to: 6.5 6.6 Fixes: QTBUG-113273 Change-Id: Iba548829bc41fbee95cef288faaf7edca118ee33 Reviewed-by: Alexandru Croitor <[email protected]>
* CTF: Remove extraneous semicolon in metadataAntti Määttä2023-05-181-1/+1
| | | | | | | | Removes extra semicolon from floating point array metadata. Pick-to: 6.5 Change-Id: If3e8b8097ff0c08c1f1f84cadbe389c7f7a2b1aa Reviewed-by: Janne Koskinen <[email protected]>
* Create unique names for QSize and QRect types for lttngAntti Määttä2023-04-261-12/+12
| | | | | | | | Task-number: QTBUG-113161 Pick-to: 6.5 Change-Id: Icc47af16b73dd9ad4e203c3bd55833587435be5c Reviewed-by: Hatem ElKharashy <[email protected]> Reviewed-by: Janne Koskinen <[email protected]>
* tracegen: Add common prologueAntti Määttä2023-04-265-0/+15
| | | | | | | | | | Add common prologue and add error message when tracing is used in a module that doesn't have Q_TRACEPOINT enabled, but tracing is enabled. Pick-to: 6.5 Change-Id: I64ca074942f6e89b4f5b5e3b6048b2b713c06df8 Reviewed-by: Tomi Korpipää <[email protected]> Reviewed-by: Janne Koskinen <[email protected]>
* Support float_type arrays when using lttngHatem ElKharashy2023-04-251-2/+13
| | | | | | | | | | | | | lttng ctf_array does not support float types which causes compilation error when a float type is passed to the function. A solution is to pass the array elements one by one to TP_FIELDS. Fixes: QTBUG-112761 Pick-to: 6.5 Change-Id: I30e7049d9eda1141298145897df372213145c1b4 Reviewed-by: Antti Määttä <[email protected]> Reviewed-by: Janne Koskinen <[email protected]>
* Utilize NO_UNITY_BUILD arguments instead of manual exclusionAmir Masoud Abdol2023-03-141-4/+1
| | | | | | | | | | | Unity build is disabled by default for all 3rdparty libraries, so we don't need to set the manually anymore; and for the plugins we can use NO_UNITY_BUILD instead. Pick-to: 6.5 Task-number: QTBUG-109394 Change-Id: Ia2f83ae083924d31adf07e7647b34ae6571ed01f Reviewed-by: Joerg Bornemann <[email protected]>
* tracegen: fix inefficient loopsMarc Mutz2023-03-141-1/+1
| | | | | | | | | | | Take the loop variable by cref. Amends 83effb3a3f6bf73e682f7a9ccedebf4073ade776. Pick-to: 6.5 Coverity-Id: 404701 Change-Id: I1266dd1feb16b3842a93169e554a6563861f5a14 Reviewed-by: Antti Määttä <[email protected]>
* Add some exclusions for CMake Unity (Jumbo) buildsFriedemann Kleint2023-02-161-0/+4
| | | | | | | | | | | | | Add exclusions for issues that are likely not fixable (3rd party code, X11 define clashes, etc) in 3rd party, tools and plugins. Pick-to: 6.5 Task-number: QTBUG-109394 Done-with: Amir Masoud Abdol <[email protected]> Change-Id: I698c004201a76a48389271c130e44fba20f5adf7 Reviewed-by: Joerg Bornemann <[email protected]> Reviewed-by: Qt CI Bot <[email protected]>
* src: Remove remains of qmake conversion from CMakeLists.txt filesFriedemann Kleint2023-02-101-6/+1
| | | | | | Pick-to: 6.5 Change-Id: Id644d322a602038403bb7f46c532744575fbf6d3 Reviewed-by: Alexey Edelev <[email protected]>
* tracegen: Fix handling enumerators with duplicate valuesAntti Määttä2023-02-105-22/+72
| | | | | | | | | | Aggregate the names of the same value enumerators. The values can also be hexadecimal so handle them also. Pick-to: 6.5 Change-Id: I89693d7e3b8f6c051b298401dcbe8a9f5c0a38aa Reviewed-by: Antti Määttä <[email protected]> Reviewed-by: Tomi Korpipää <[email protected]>
* tracegen: Add support for QSizeF and QRectF typesAntti Määttä2023-02-105-1/+29
| | | | | | | Pick-to: 6.5 Change-Id: Ie19523b84026312c3d5a597914abc2622dba3f68 Reviewed-by: Antti Määttä <[email protected]> Reviewed-by: Tomi Korpipää <[email protected]>
* CTF: Move event metadata generation to the wrapperAntti Määttä2023-02-107-117/+178
| | | | | | | | | | | This fixes the metadata generation when cross compiling. The metadata needs to be generated based on the type info of the target. Currently the metadata is generated in the tool based on the host type info. Task-number: QTBUG-110270 Pick-to: 6.5 Change-Id: Ibcdcbd690620afc532d6007cf036229342bdcc31 Reviewed-by: Volker Hilsheimer <[email protected]>
* tracegen: Give warning if flag value is npot2Antti Määttä2023-01-311-2/+2
| | | | | | | | | Flag values can have mask values, which have multiple bits set. Give warning instead of panic if a flag value is not power of two. Pick-to: 6.5 Change-Id: Ie67a5d820203219ce2eb91faf5dea8d6051a5e08 Reviewed-by: Tomi Korpipää <[email protected]>
* CTF: Remove irrelevant commentAntti Määttä2023-01-231-1/+0
| | | | | | | | Remove comment about lttng not relevant to ctf backend. Pick-to: 6.5 Change-Id: I4d4432b1075a27d024db38a3cdd7807a1e94e7ec Reviewed-by: Tomi Korpipää <[email protected]>
* Add CTF tracing backendAntti Määttä2023-01-136-7/+327
| | | | | | | | | | | | | | | | | | | | Implement platform independent tracing backend in Common trace format. This allows tracing in platforms without own/existing backend and analysing all platforms with the same tooling. The backend is the basis for further work in application level profiling area. The backend is implemented as a plugin that is loaded immediately when the application starts in order to process all trace events. The backend avoids using Qt classes so that it doesn't generate trace events itself. Adds plumbing to configure the new backend. Modifies the tracegen and tracepointgen tools to support the new backend. Task-number: QTBUG-106399 Pick-to: 6.5 Change-Id: I80711be52d4d48e1acbc72edffbdf3f379fce52a Reviewed-by: Tomi Korpipää <[email protected]>
* Add metadata support to tracegen and tracepointgen toolsAntti Määttä2023-01-136-88/+423
| | | | | | | | | | | Adds ability to add textual metadata for enumerations and flags to the traces so that they provide more information to the user instead of just numbers. Implement these for both existing backends. Task-number: QTBUG-106399 Pick-to: 6.5 Change-Id: Ibab00dd370d019891cf9ad6e65e6f9d868e32dce Reviewed-by: Tomi Korpipää <[email protected]>
* Fix array handling in tracegen toolAntti Määttä2023-01-134-5/+16
| | | | | | | | | | | Remove the array field type. We need to know the basic datatype as well for future backends. Use the arrayLen instead. Add the missing array handling for etw backend. Task-number: QTBUG-106399 Pick-to: 6.5 Change-Id: I97c38240bd1c79c0e61d268a7d780016b341f110 Reviewed-by: Tomi Korpipää <[email protected]>
* tracegen: add qint64 supportRafael Roquetto2022-09-151-0/+1
| | | | | Change-Id: I4f4c5430ce86e364819ae35f3089bacf1d253484 Reviewed-by: Shawn Rutledge <[email protected]>
* Revert "Fix build with -trace lttng"Rafael Roquetto2022-09-073-16/+1
| | | | | | | | | | | | | This reverts commit 756c65d3676d2b3ce5c7b56145e5f0f7cf7178ad. "justified_worry" is an incorrect workaround which attempted to silence tracegen when invalid types were being used. This caused Qt to compile, but with broken/invalid tracepoints. The proper solution involves fixing the tracepoints in question. Change-Id: I96de254944f0367808527d215e87a5d66bb442f4 Reviewed-by: Shawn Rutledge <[email protected]>
* tracegen: add support for QSizeRafael Roquetto2022-09-034-1/+11
| | | | | | Change-Id: I7228f5ebbcbd577a66a7a368fb4d64c4c7e55a25 Reviewed-by: Rafael Roquetto <[email protected]> Reviewed-by: Shawn Rutledge <[email protected]>
* Change the license of all CMakeLists.txt and *.cmake files to BSDLucie Gérard2022-08-231-1/+1
| | | | | | | Task-number: QTBUG-105718 Change-Id: I5d3ef70a31235868b9be6cb479b7621bf2a8ba39 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Jörg Bornemann <[email protected]>
* Add license headers to cmake filesLucie Gérard2022-08-031-0/+3
| | | | | | | | | | | | CMakeLists.txt and .cmake files of significant size (more than 2 lines according to our check in tst_license.pl) now have the copyright and license header. Existing copyright statements remain intact Task-number: QTBUG-88621 Change-Id: I3b98cdc55ead806ec81ce09af9271f9b95af97fa Reviewed-by: Jörg Bornemann <[email protected]>
* Use SPDX license identifiersLucie Gérard2022-05-1613-494/+26
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Lars Knoll <[email protected]> Reviewed-by: Jörg Bornemann <[email protected]>
* CMake: Make possible building Qt tools without the use of core libraryAlexey Edelev2022-05-061-1/+1
| | | | | | | | | | | | | | Replace BOOTSTRAP option with the single value CORE_LIBRARY argument in qt_internal_add_tool and qt_internal_add_executable functions. The introduced argument now may accept 'Bootstap' and 'None' values. Use 'Bootstap' to link Qt::Boostrap library instead Qt::Core or 'None' to avoid any core library linking. This is useful for tools that need to use the CMake deployment routines, but not require the Qt::Core functionality. Task-number: QTBUG-87480 Change-Id: I64a8b17f16ac5fe43c6b385252dc21def0c88d2c Reviewed-by: Alexandru Croitor <[email protected]>
* Tools: replace remaining uses of QLatin1String with QLatin1StringViewSona Kurazyan2022-05-032-3/+3
| | | | | | | Task-number: QTBUG-98434 Change-Id: Ie136f600f823019c29461561d4e30be66a66e87b Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Marc Mutz <[email protected]>
* Tools: use _L1 for for creating Latin-1 string literalsSona Kurazyan2022-05-033-7/+13
| | | | | | | | | As a drive-by, fix qsizetype -> int narrowing conversion warnings for the touched lines. Task-number: QTBUG-98434 Change-Id: I6d4712a71b5ebf3f379f1f98ea476557bce963ef Reviewed-by: Marc Mutz <[email protected]>
* Tools: stop using QLatin1Char constructor for creating char literalsSona Kurazyan2022-05-024-6/+6
| | | | | | | | | | | Required for porting away from QLatin1Char/QLatin1String in scope of QTBUG-98434. As a drive-by, fix qsizetype -> int narrowing conversion warnings for the touched lines. Change-Id: Ib9e01ede4e0d7869fc95414d36f37df4a30b16b4 Reviewed-by: Marc Mutz <[email protected]>
* QtBase: replace windows.h with qt_windows.hYuhang Zhao2021-11-231-1/+1
| | | | | | | | | | We have some special handling in qt_windows.h, use it instead of the original windows.h Change-Id: I12fa45b09d3f2aad355573dce45861d7d28e1d77 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Joerg Bornemann <[email protected]> Reviewed-by: Edward Welbourne <[email protected]>
* Fix -trace build on WindowsIvan Solovev2021-10-251-3/+22
| | | | | | | | | | | | | | | | | | | | | | The TraceLoggingValue template does not have overloads for Qt types, so it was throwing multiple template instantiation errors while trying to log the unknown types. Fix it by serializing such types to QString using QDebug::toString, and the logging this string. Apart from that, fixes some other compiler errors on Windows build with -trace enabled: - implicit size_t to ULONG conversion - complaints on std::min - add QT_BEGIN_NAMESPACE/QT_END_NAMESPACE to the generated *_tracepoints_p.h headers to fix the namespace build. Task-number: QTBUG-97246 Fixes: QTBUG-97241 Pick-to: 6.2 Change-Id: Ifba134bab8d7fda7f1e30da9938e25cae813e1c6 Reviewed-by: Oliver Wolff <[email protected]> Reviewed-by: Mårten Nordheim <[email protected]>
* Fix compilation with QT_NAMESPACE and tracing on LinuxIvan Solovev2021-10-251-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The tracegen tool was not taking into account that Qt could be build with a custom namespace. As a result, the combination of namespace build and tracing enabled was not working, because tracegen generated classes without the namespace. This patch fixes it. We cannot add QT_BEGIN_NAMESPACE/QT_END_NAMESPACE because of the tricky logic that recursively includes the generated header file multiple times, also including the code like static const struct lttng_event_desc *_TP_COMBINE_TOKENS(__event_desc___, TRACEPOINT_PROVIDER)[] = { (hash)include TRACEPOINT_INCLUDE NULL, /* Dummy, C99 forbids 0-len array. */ }; where TRACEPOINT_INCLUDE is the path to the generated header. This patch is using QT_USE_NAMESPACE, wrapped into some #ifdefs. This should be safe, considering that the generated trace headers are only used as private API. The windows tracing support seems to be broken even in a non-namespace build, so it's not handled in this patch. Task-number: QTBUG-97246 Pick-to: 6.2 Change-Id: I12db76e199a3aa3abde641fbf99a6e1a3d7de203 Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Ievgenii Meshcheriakov <[email protected]>
* Skip unnecessary commands when cross-building toolsJoerg Bornemann2021-09-271-0/+1
| | | | | | | | | | | | | | | Introduce a new macro qt_internal_return_unless_building_tools which simply calls return() if tools are not built. This macro is supposed to be called after qt_internal_add_tool(). Using this macro avoids having to special-case code for when qt_internal_add_tool() creates imported targets in cross-builds. Adjust pro2cmake accordingly. Task-number: QTBUG-85084 Change-Id: I9e1c455c29535dd8c318efa890ebd739c42effc1 Reviewed-by: Alexandru Croitor <[email protected]>
* Move build tools to libexec instead of the bin dirJoerg Bornemann2021-02-231-0/+1
| | | | | | | | | | | | | | [ChangeLog][Build System] Tools that are called by the build system and are unlikely to be called by the user are now installed to the libexec directory. This is a step towards easier co-installability of different Qt versions. Pick-to: 6.1 Task-number: QTBUG-88791 Change-Id: Id19575b5ba27795f7715e4ea6a09391b26dd4942 Reviewed-by: Kai Koehne <[email protected]>
* Remove .prev_CMakeLists.txt filesJoerg Bornemann2021-01-121-21/+0
| | | | | | | | | | Those serve no purpose anymore, now that the .pro files are gone. Task-number: QTBUG-88742 Change-Id: I39943327b8c9871785b58e9973e4e7602371793e Reviewed-by: Cristian Adam <[email protected]> Reviewed-by: Edward Welbourne <[email protected]> Reviewed-by: Kai Koehne <[email protected]>
* Remove the qmake project filesJoerg Bornemann2021-01-071-21/+0
| | | | | | | | | | | | | | | | Remove the qmake project files for most of Qt. Leave the qmake project files for examples, because we still test those in the CI to ensure qmake does not regress. Also leave the qmake project files for utils and other minor parts that lack CMake project files. Task-number: QTBUG-88742 Change-Id: I6cdf059e6204816f617f9624f3ea9822703f73cc Reviewed-by: Edward Welbourne <[email protected]> Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Kai Koehne <[email protected]>
* Replace discouraged Q_MOVABLE_TYPE by Q_RELOCATABLE_TYPEAndreas Buhr2020-11-301-3/+3
| | | | | | | | | | | | | | Q_MOVABLE_TYPE was conceived before C++ had move semantics. Now, with move semantics, its name is misleading. Q_RELOCATABLE_TYPE was introduced as a synonym to Q_MOVABLE_TYPE. Usage of Q_MOVABLE_TYPE is discouraged now. This patch replaces all usages of Q_MOVABLE_TYPE by Q_RELOCATABLE_TYPE in QtBase. As the two are synonymous, this patch should have no impact on users. Pick-to: 6.0 Change-Id: Ie653984363198c1aeb1f70f8e0fa189aae38eb5c Reviewed-by: Lars Knoll <[email protected]> Reviewed-by: Andrei Golubev <[email protected]>
* CMake: Regenerate projects to use new qt_internal_ APIAlexandru Croitor2020-09-232-2/+2
| | | | | | | | | | | Modify special case locations to use the new API as well. Clean up some stale .prev files that are not needed anymore. Clean up some project files that are not used anymore. Task-number: QTBUG-86815 Change-Id: I9947da921f98686023c6bb053dfcc101851276b5 Reviewed-by: Joerg Bornemann <[email protected]> Reviewed-by: Qt CI Bot <[email protected]>
* Fix build with -trace lttngJoerg Bornemann2020-09-113-1/+16
| | | | | | | | | | | | Fix superfluous space in qtgui.tracepoints and make tracegen more lenient towards unknown types (the ETW implementation outright ignores those). Pick-to: 5.15 Fixes: QTBUG-86546 Change-Id: I71cc323afa1009dbaefe20e55818ecb6c0b09c59 Reviewed-by: Alexandru Croitor <[email protected]> Reviewed-by: Milian Wolff <[email protected]>
* Use QList instead of QVector in qtbaseJarek Kobus2020-07-072-2/+2
| | | | | | | | Fixes all other QVector occurrences Task-number: QTBUG-84469 Change-Id: I5f9311298d341a9a3061a6a640539583d1618939 Reviewed-by: Friedemann Kleint <[email protected]>
* Use QList instead of QVector in other toolsJarek Kobus2020-06-253-9/+9
| | | | | | Task-number: QTBUG-84469 Change-Id: I90d0e2e723bb4d205d7bf333b21cdf583fdf4ea0 Reviewed-by: Lars Knoll <[email protected]>
* CMake: Make it possible to build tools when cross-compilingLeander Beernaert2020-06-022-2/+4
| | | | | | | | | | | | | | | | | | | This patch allows tools to be built for the target platform when the QT_BUILD_TOOLS_WHEN_CROSSCOMPILING parameter is set at configuration time. To avoid naming conflicts, the target tools are suffixed with "_native". The qt_get_tool_target_name() function can be used to get the tool name for both scenarios (cross and non-cross compilation). Extend pro2cmake to refer to the right target name for tools. The relevant write_XXX functions have a new target_ref parameter that will be "${target_name}" for tools and literally the target name for everything else. Fixes: QTBUG-81901 Change-Id: If4efbc1fae07a4a3a044dd09c9c06be6d517825e Reviewed-by: Alexandru Croitor <[email protected]>
* Port tracedef to QRegularExpressionLars Knoll2020-04-131-20/+22
| | | | | Change-Id: I38bbf36719c99d4fda102eca375011c38792dd4a Reviewed-by: Rafael Roquetto <[email protected]>
* Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2020-03-031-2/+1
|\ | | | | | | Change-Id: If36d96c0fef3de5ab6503977501c55c62a2ecc97
| * Use Qt::SplitBehavior in preference to QString::SplitBehaviorEdward Welbourne2020-02-281-2/+1
| | | | | | | | | | | | | | | | The Qt version was added in 5.14 "for use as eventual replacement for QString::SplitBehavior." Move another step closer to that goal. Change-Id: I399b5ea56e9255e775ca1746632f7421519a6616 Reviewed-by: Volker Hilsheimer <[email protected]>
| * Mark the old style unprefixed stream functions deprecatedAllan Sandfeld Jensen2019-12-161-1/+1
| | | | | | | | | | | | | | | | Requires a third definition for the source-compatible but deprecated version. Change-Id: I260ae79f4547f99eed701b10e0b25222f81cd5ff Reviewed-by: Lars Knoll <[email protected]>
| * Merge remote-tracking branch 'origin/5.13' into 5.14Liang Qi2019-10-101-0/+1
| |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/xcb/qxcbscreen.h src/src.pro Change-Id: I4e1981e69a1ddcbe4078ec6ab2a64b0da6a445de
| | * Fix compile with tracing enabled: include QStringList headerMilian Wolff2019-10-091-0/+1
| | | | | | | | | | | | | | | Change-Id: I40f737338d10a871442bb453fe1eeede9dacec79 Reviewed-by: Simon Hausmann <[email protected]>
* | | Regenerate src/*Alexandru Croitor2019-11-142-2/+2
| | | | | | | | | | | | | | | | | | Change-Id: I0314b4faa1e4860e86198eea4189987e527dfec2 Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <[email protected]>