summaryrefslogtreecommitdiffstats
path: root/src/tools
Commit message (Collapse)AuthorAgeFilesLines
* moc: add line numbers to properties, methods, etcSami Shalayel33 hours2-0/+10
| | | | | | | | | | Those are needed by qmlls to be able to jump to C++ definitions. Task-number: QTBUG-119143 Task-number: QTBUG-128393 Change-Id: I4fb9394b0a22a02501bafdbe95a7cd8998adfe11 Reviewed-by: Ulf Hermann <[email protected]> Reviewed-by: Fabian Kosmale <[email protected]>
* Reland: CMake: Annotate some qt_find_package calls with MODULEAlexandru Croitor8 days1-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A qt_find_package call first tries to find a Config package with the CONFIG mode option, and if not found, falls back to an arg-less mode which searches both Config and Find modules. For some packages, we know we want to find the Find module because there can't be a Config package, e.g our FindWrap modules or any of the other Find modules we carry in our cmake directory. So we should annotate these calls with MODULE. Aside from slightly faster configuration, there is another reason to do so. Future versions of CMake will automatically log find_package calls that have a state change (e.g. Not Found -> Found) into CMakeConfigureLog.yaml. Due to the Config-first logic in qt_find_package, we always unset the Foo_DIR variable if the Config package is not found. This means that there will be a constant build up of not-found messages in the log. Explicitly annotating the calls with MODULE will prevent this. Do that. This commit relands f1a59e974f013fcf8629d8cbacab58d895523100 This reverts commit 0ce82b78a35026cb56ff76d1c24b311008934a53. Pick-to: 6.10 Change-Id: I5d37579d2f4957215ce1475b5c0ec8509d77c83d Reviewed-by: Joerg Bornemann <[email protected]>
* moc: avoid two back-to-back calls to nameToBuiltinType()Thiago Macieira11 days1-3/+1
| | | | | | | | This is the only other place in the moc sources where this function is called, so avoid two calls into the QMetaType built-in type search. Change-Id: Ia4a554c3bc5393fdc07bfffdc6071f5b9759afe8 Reviewed-by: Ahmad Samir <[email protected]>
* moc: stop using qMetaTypeTypeInternalThiago Macieira11 days1-14/+20
| | | | | | | | | | | | Just use QMetaType::fromName(). We bypass the id() call because anything that came from the registry is, by definition, registered. Besides, inside a bootstrapped tool, there are no custom types anyway. Drive-by static'ify the functions. Pick-to: 6.10 Change-Id: Ib8363744834da6d79046fffd0adb680219c829e0 Reviewed-by: Ahmad Samir <[email protected]>
* tools: drop all references in qtpathsLiang Qi13 days1-12/+7
| | | | | | | | | | | | to avoid gcc 15 -Wdangling-reference warning. This follows 9379b95b533216593d4d37c0cbf70f91d1ce037a, 8a6750475410629741de0417c28f574c25c65338 and 18def77d27f88ce26b6af29fe56a80429fed555d. Pick-to: 6.10 6.9 6.8 6.5 Change-Id: If327439bd76e954cde4f9c5261dce7fa18c237a1 Reviewed-by: Thiago Macieira <[email protected]>
* Revert "CMake: Annotate some qt_find_package calls with MODULE"Alexandru Croitor13 days1-1/+1
| | | | | | | | | | | | | | | | | | | This breaks reconfiguring Qt in various ways, one of which is CMake Error at cmake/QtTargetHelpers.cmake:1557 (message): PkgConfig::ATSPI2 is not a valid target. This happens because pkg_check_modules sets ATSPI2_FOUND to 1, so qt_find_package thinks it shouldn't find the FindATSPI2.cmake module, which ends up not creating the ATSPI2 target. This reverts commit f1a59e974f013fcf8629d8cbacab58d895523100. Pick-to: 6.10 Fixes: QTBUG-137870 Change-Id: Ica74a236c6b1bb9d7ca9af29175cb2e84a93251b Reviewed-by: Fabian Kosmale <[email protected]> Reviewed-by: Joerg Bornemann <[email protected]>
* windeployqt: Fix access of invalid iterators crashOliver Wolff13 days1-3/+6
| | | | | | | | | | | | | | We must not use a range based loop here as the container might be changed inside the loop which will invalidate the iterators which in turn might lead to a crash. While at it the QFileInfo used to obtain the binary's path was moved out of the loop as a small cleanup. Fixes: QTBUG-137763 Pick-to: 6.10 6.9 6.8 Change-Id: I86fb8b683fb98a897d0059ef1dc869e26b2c213f Reviewed-by: Joerg Bornemann <[email protected]>
* moc: Fix invalid codegen for qualified propertiesFabian Kosmale2025-06-182-9/+24
| | | | | | | | | | | We must not add an enum qualifie if it is already emitted because it was part of the property signature. Amends dea21545b32cf04337ca470483991dc7da39ba5b Fixes: QTBUG-137850 Pick-to: 6.10 6.9 Change-Id: I07a27014023a60f07a97e323a7d7e5b9d233d555 Reviewed-by: Joerg Bornemann <[email protected]>
* moc: remove unnecessary space inside the parameter of reinterpret_castThiago Macieira2025-06-171-2/+2
| | | | | | | | It's always been unnecessary in this position. Pick-to: 6.10 Change-Id: Ia6a411f0cdaacd625a2cfffd2a94adbde2fbff6b Reviewed-by: Fabian Kosmale <[email protected]>
* CMake: Annotate some qt_find_package calls with MODULEAlexandru Croitor2025-06-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | A qt_find_package call first tries to find a Config package with the CONFIG mode option, and if not found, falls back to an arg-less mode which searches both Config and Find modules. For some packages, we know we want to find the Find module because there can't be a Config package, e.g our FindWrap modules or any of the other Find modules we carry in our cmake directory. So we should annotate these calls with MODULE. Aside from slightly faster configuration, there is another reason to do so. Future versions of CMake will automatically log find_package calls that have a state change (e.g. Not Found -> Found) into CMakeConfigureLog.yaml. Due to the Config-first logic in qt_find_package, we always unset the Foo_DIR variable if the Config package is not found. This means that there will be a constant build up of not-found messages in the log. Explicitly annotating the calls with MODULE will prevent this. Do that. Pick-to: 6.10 Change-Id: I465b015ac18f8a09b9a5c86cec7b6312a0bfbdf1 Reviewed-by: Alexey Edelev <[email protected]> Reviewed-by: Joerg Bornemann <[email protected]>
* moc: handle enum / member name conflictFabian Kosmale2025-06-164-22/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | It is possible (and somewhat common on Windows) to have getters and types with the same name. This so far would cause issues in the moc generated code. To fix it, we remember all names of enums found in a class, and prefix references to such types with "enum". Note that this requires a new set to track them, as other parts of moc currently treat `eunm Foo { Val }` and `typedef enum { Val } Foo` the same, but `enum Foo` is only valid C++ for the former. A similar issue would also exist with inner structs, but that seems to be less common, so isn't implemented yet. We also use the opportunity to drop the typeNameForCast member in ArgumentDef, as we can't do the enum disambiguation with it easily. Instead, we do it on-demand, which should also give a beneficial memory/runtime trade-off in any case. Fixes: QTBUG-137452 Pick-to: 6.10 6.9 Change-Id: I07341f971c9ca65edecbea890ebc33e007087c43 Reviewed-by: Joerg Bornemann <[email protected]> Reviewed-by: Ulf Hermann <[email protected]>
* moc: support __has_includeFabian Kosmale2025-06-144-75/+130
| | | | | | | | | | | | | __has_include is part of C++17, but moc did not handle it so far. This commit fixes moc to correctly support it. It should be noted that support for __has_include relies on all necessary include paths being passed to moc. Pick-to: 6.10 6.9 6.8 Fixes: QTBUG-136097 Change-Id: I7284e97dea12d1637b38349d32e090c0102124e7 Reviewed-by: Thiago Macieira <[email protected]>
* Fix androiddeployqt copying build directoryJani Korteniemi2025-06-121-0/+4
| | | | | | | | | | | | | | | When project's Android package source directory is set to the project level (instead of project/android) androiddeployqt keeps copying the build directory under itself infinitely. Add check to copyFiles: -If android source dir is the same as project source dir -And if current directory copied is in build directory path Pick-to: 6.5 6.8 6.9 6.10 Fixes: QTBUG-126743 Change-Id: If45766152c6cbf9e2ee916baa5a15282d3fedaf2 Reviewed-by: Assam Boudjelthia <[email protected]>
* Copy Android files from the application source in aux modeAaron McCarthy2025-06-111-7/+6
| | | | | | | | | | | | The application provided overrides of the Android files were not being used in aux mode. In aux mode androiddeployqt was only copying the Android files from the Qt sources and updating them. With this change androiddeployqt also copies the Android files from the application source, allowing overrides prior to template processing. Change-Id: Idf790f1c270691dab8fe093c20e84bed79bf481d Reviewed-by: Assam Boudjelthia <[email protected]>
* Android: Support multi-arg signal generation in androiddeployqtPetri Virkkunen2025-06-101-13/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit introduces support for generating Java code for multi-argument QML signals. Pre-existing code remains unchanged, and the new code is only executed when the number of params in a signal is above 1. Multi-arg signals are handled with a new generated interface type, named after the signal, which has a default method that takes an Object[] array and calls the user-implemented signal method with the arguments cast to the desired types. For example, a QML signal with the following signature: signal manyTypeArgSignal(intValue: int, boolValue: bool, doubleValue: double, stringValue: string) Is generated into this Java code: @FunctionalInterface public interface manyTypeArgSignalListener { default void onSignalEmitted(Object[] args) { onSignalEmitted((Integer) args[0], (Boolean) args[1], (Double) args[2], (String) args[3]); } void onManyTypeArgSignal(Integer intValue, Boolean boolValue, Double doubleValue, String stringValue); } public int connectManyTypeArgSignalListener(manyTypeArgSignalListener signalListener) { return connectSignalListener("manyTypeArgSignal", new Class[]{ Integer.class, Boolean.class, Double.class, String.class }, signalListener); } Task-number: QTBUG-124489 Change-Id: I94e3e88e807017bcbeba16cf0e34263e28e5885f Reviewed-by: Assam Boudjelthia <[email protected]>
* Android: Don't reparse same paths in QML to Java codegenOlli Vuolteenaho2025-06-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | appImports can have the same directory added multiple times - first if it's found in the xxx_conf.rsp file and secondly for the inner qmldir scanner. This is because the xxx_conf.rsp file can have both the qmlModule directory and the parent of that directory as importPaths. For example like this (the paths are truncated to save characters): -importPath .../build/qt_generated/qtquickview/qmlModule -importPath .../build/qt_generated/qtquickview In this case when the "inner qmldir" finder processes the later path, it would go to ./qmlModule, find the qmldir and add another .../build/qt_generated/qtquickview/qmlModule to appImports. Also, if there were other qmldir files somewhere under qmlModule those would also get added twice, which would increase generation time yet again. This commits solves the issue by removing duplicates from appImports. Amends 7ed88eb565d40b195aa868e67777872ef07a5ea2. Pick-to: 6.10 6.9 6.8 Fixes: QTBUG-137316 Change-Id: I641065479aec0f3d9ae1a8727a03bf62eb169ad6 Reviewed-by: Assam Boudjelthia <[email protected]>
* CMake: qtwaylandscanner doesn't need Wayland::ClientSamuli Piippo2025-06-021-1/+1
| | | | | | | | | Remove dependency to Wayland::Client as it's not needed and prevents building qtwaylandscanner for Windows where Client is not supported but scanner is needed for cross-compilations. Change-Id: Ia38dda58c0800799673ae2d1e29626ce6b399f04 Reviewed-by: Liang Qi <[email protected]>
* moc: indent the generated code for ResetPropertyGiuseppe D'Angelo2025-05-271-1/+1
| | | | | | | | Make it match the one for the other property-related operations. Change-Id: I9248cca81f9ab48cf6765f66d696631e91f5ad07 Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Fabian Kosmale <[email protected]>
* qtwaylandscanner: Handle destructor requests with new_id correctlyDavid Redondo2025-05-271-1/+6
| | | | | | | | | | | | | | | | | Instead of generating code like return request(args) m_object = nullptr do new_id = request(args) m_object = nullptr return new_id This came up in the color managment protocol where wp_image_description_creator_params_v1::create creates a new object but is also a destructor at the same time. Pick-to: 6.9 Change-Id: Ic5d9f72656d99740bf6665c07393f69ee78af013 Reviewed-by: David Redondo <[email protected]>
* uic: Handle horizontal and vertical layout size constraints (Qt 7)Friedemann Kleint2025-05-241-0/+6
| | | | | | | | | | Ignore vertical constraint and use the horizontal one for the property. Task-number: QTBUG-17730 Pick-to: 6.9 6.8 Change-Id: I6317ce8c1c1e2ac2bf6ae3b24a60735a72dcb7bc Reviewed-by: Richard Moe Gustavsen <[email protected]>
* Use __weak for implementation of QObjCWeakPointerTor Arne Vestbø2025-05-241-0/+9
| | | | | | | | | | | | | | | | | By moving the implementation to qcore_mac.mm, and using a union for the object pointer, we can build qcore_mac.mm with -fobjc-weak to take advantage of the automatic weak-tracking. This allows us to drop the manual handling via ObjC associated objects, while also allowing non-Objective-C code to use QObjCWeakPointer. In particular we want to use it for QMacKeyValueObserver, which today runs the risk of removing the observation on an object that is long gone. Pick-to: 6.9 Change-Id: I5d605e5ac82b39223b246d6758d0da88a1702357 Reviewed-by: Volker Hilsheimer <[email protected]> Reviewed-by: Thiago Macieira <[email protected]>
* [Android] Skip goodToCopy checkAlexey Edelev2025-05-221-0/+3
| | | | | | | | | | | | | Skip the goodToCopy check for the libraries that do not belong to the main ABI. The rationale of this descision - goodToCopy was passing in per-ABI build already, so we don't need to take care about this check in main-ABI build. Also we indroduced the last-stand check of bundled libraries in 7499fd0229d63f969bf6ca58d3b764b96395bed2. Fixes: QTBUG-136493 Pick-to: 6.8 6.9 Change-Id: I438af867b0f25e0ea557bb5066f1c243bb6ab356 Reviewed-by: Bartlomiej Moskal <[email protected]>
* [Android] Store the main ABI in deployment settingsAlexey Edelev2025-05-221-0/+6
| | | | | | | | | | Add the main Android ABI to the deployment settings. It's useful for skipping functionality that is done in per-ABI builds. Task-number: QTBUG-136493 Pick-to: 6.5 6.8 6.9 Change-Id: I9f59ffb1cae3107bbe695d99c33dd3426c163e6e Reviewed-by: Joerg Bornemann <[email protected]>
* Merge Wayland client from qtwayland repository into qtbaseLiang Qi2025-05-136-0/+1592
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The qtwayland repository has been filtered for commits relating to the Wayland client, via the following git-filter-repo command: git filter-repo --paths-from-file wayland-move.txt --force --refs HEAD And then merged into the qtbase repository via git merge --allow-unrelated-histories The following git-filter-repo instructions have been used: src/CMakeLists.txt src/CMakeLists.txt==>src/platformsupport/wayland/CMakeLists.txt src/configure.cmake src/configure.cmake==>src/platformsupport/wayland/configure.cmake src/client/Qt6WaylandClientMacros.cmake src/client/Qt6WaylandClientMacros.cmake==>src/tools/qtwaylandscanner/Qt6WaylandClientMacros.cmake src/compositor/Qt6WaylandCompositorMacros.cmake src/compositor/Qt6WaylandCompositorMacros.cmake==>src/tools/qtwaylandscanner/Qt6WaylandCompositorMacros.cmake src/3rdparty/ src/3rdparty/patches/==>src/3rdparty/wayland/patches/ src/3rdparty/protocol/ivi/REUSE.toml==> src/3rdparty/protocol/ivi/ivi-application.xml==> src/3rdparty/protocol/ivi/ivi-controller.xml==> src/3rdparty/protocol/ivi/qt_attribution.json==> src/3rdparty/protocol/ src/3rdparty/protocol/==>src/3rdparty/wayland/protocols/ src/extensions/qt-shell-unstable-v1.xml==> src/extensions/ src/extensions/==>src/3rdparty/wayland/extensions/ src/client/ src/client/==>src/plugins/platforms/wayland/ src/global/ src/global/==>src/plugins/platforms/wayland/globalprivate/ src/shared/ src/shared/==>src/plugins/platforms/wayland/shared/ src/plugins/decorations/adwaita/==> src/plugins/decorations/ src/plugins/decorations/==>src/plugins/platforms/wayland/plugins/decorations/ src/plugins/hardwareintegration/client/ src/plugins/hardwareintegration/client/==>src/plugins/platforms/wayland/plugins/hardwareintegration/ src/plugins/platform/ src/plugins/platform/==>src/plugins/platforms/wayland/plugins/platform/ src/plugins/shellintegration/qt-shell/==> src/plugins/shellintegration/ivi-shell/==> src/plugins/shellintegration/ src/plugins/shellintegration/==>src/plugins/platforms/wayland/plugins/shellintegration/ src/plugins/CMakeLists.txt src/plugins/CMakeLists.txt==>src/plugins/platforms/wayland/plugins/CMakeLists.txt src/qtwaylandscanner/ src/qtwaylandscanner/==>src/tools/qtwaylandscanner/ tests/auto/client/iviapplication/CMakeLists.txt==> tests/auto/client/iviapplication/tst_iviapplication.cpp==> tests/auto/client/shared/iviapplication.h==> tests/auto/client/shared/iviapplication.cpp==> tests/auto/client/ tests/auto/client/==>tests/auto/wayland/ tests/auto/cmake/test_waylandclient/ tests/auto/cmake/test_waylandclient/==>tests/auto/cmake/test_waylandclient/ Done-with: Alexandru Croitor <[email protected]> Done-with: Tor Arne Vestbø <[email protected]> Task-number: QTBUG-133223 Change-Id: I46c325724141fdbfcc117d12fb5f92852613e72a
| * compositor: Add CMake options to control visibility of generated symbolsEskil Abrahamsen Blomfeldt2024-08-081-2/+8
| | | | | | | | | | | | | | | | | | | | This exposes the public-code / private-code options for the waylandscanner. It is the server-side version of 2962aa9ed9487bc6aa54810ed4ace114b4f7d723. Task-number: QTBUG-126301 Change-Id: I32490f6cbc9cac876c1f07c3930e8bafbc395e75 Reviewed-by: David Redondo <[email protected]>
| * Change license for tools filesLucie Gérard2024-05-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | According to QUIP-18 [1], all tools files 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: I9a08423046dd325dd267d2390faf8d2eb0c76315 Reviewed-by: Kai Köhne <[email protected]>
| * qtwaylandscanner: don't track source file locationSamuli Piippo2024-04-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | Generate source code without information about original location of the source file. Useful for reproducible builds. Task-number: QTBUG-105926 Task-number: QTBUG-105913 Change-Id: I5f9b3f90e6e85c772a92425e7b796a9d63c3c713 Reviewed-by: Ari Parkkila <[email protected]> Reviewed-by: David Edmundson <[email protected]>
| * client: Add CMake options to control visibility of generated symbolsDavid Redondo2024-04-151-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using public-code by default is problematic if multiple libraries contain wayland interface definitions generated with public-code which exports the symbols of the interface definitions from the library. If not all libraries are build against the same protocol version and the symbol is resolved to a version generated from an older version of the protocol, then libwayland will detect a protocol error if a request or event from the newer version is used. This introduces two new options PRIVATE_CODE and PUBLIC_CODE to qt6_generate_wayland_protocol_client_sources which correspond to the wayland-scanner options. For backwards compatibility PUBLIC_CODE is the default. Change-Id: Ia30ec4b83419962b768207d7353c495e11b0268e Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]>
| * scanner: Make it work with mismatching protocol and file nameDavid Redondo2024-03-201-8/+11
| | | | | | | | | | | | | | | | | | | | | | The names of the files that wayland-scanner generates are based on the protocol file name not the protocol name that is defined in the xml. When those two mismatch qtwaylandscanner would generate code that fails to build. Pick-to: 6.7 Change-Id: Ieecd7a122177530ab1ff890367ce53809a8bb7b9 Reviewed-by: David Edmundson <[email protected]>
| * qtwaylandscanner: Send null for a null QString with allow-nullKai Uwe Broulik2024-02-281-7/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `toUtf8().constData()` on a null `QString` results in an empty string sent over the wire, which is distinct from `null` when the request has "allow-null" specified. Notably `wl_data_offer.accept` uses a null mime_type for "not accepted". [ChangeLog][Important Behavior Changes][qtwaylandscanner] String arguments in a request will now send null rather than empty string for a null QString if the argument is declared with "allow-null". Change-Id: I4b78246e4da7b60680d7797fd6309755f44d2bb6 Reviewed-by: David Edmundson <[email protected]>
| * Update wayland protocol XML to version 1.22.0David Edmundson2023-06-012-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | This updates only the protocol definition, implementations will need additional commits to opt into using them. The upstream XML specification changed in a way that requires newer libwayland to generate without warnings in strict mode. To support older setups the strict argument to wayland-scanner has been removed. Change-Id: I265a9e208bbf107895b493b952d65f6178ac76e7 Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]> Reviewed-by: Qt CI Bot <[email protected]>
| * Exclude sources generated by the scanner from CMake Unity (Jumbo) buildsFriedemann Kleint2023-02-131-4/+6
| | | | | | | | | | | | | | | | | | The generated helper function wlRegistryBind() clashes. Pick-to: 6.5 Task-number: QTBUG-109394 Change-Id: Ib814d4576c7565b0413ca16bc0bf5e95caa92c33 Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]>
| * Add dependencies of wayland protocolsInho Lee2022-11-072-0/+6
| | | | | | | | | | | | | | | | Some macros are missing DEPENDS for add_custom_commands Fixes: QTBUG-108142 Change-Id: Ifacb2ea9bf3003c10dd407a8c77fc06b893b6a65 Reviewed-by: David Edmundson <[email protected]>
| * Disable/fix warningsJonas Karlsson2022-10-281-0/+3
| | | | | | | | | | | | | | | | missing-field-initializers and unused variable Change-Id: I1a5ceaf53ec706786c73eecab0c002fa9153b962 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]>
| * Allow to run wayland-scanner without --include-core-onlyVolker Krause2022-10-181-3/+6
| | | | | | | | | | | | | | | | | | | | | | There are Wayland protocols for which using this option doesn't result in compilable code. Examples are input-method-unstable-v1 and linux-dmabuf-v1. Pick-to: 6.4 Change-Id: I06dea12dea1058fb6bd99522aa4278c36d271d4e Reviewed-by: Vlad Zahorodnii <[email protected]> Reviewed-by: David Edmundson <[email protected]>
| * Port from qAsConst() to std::as_const()Marc Mutz2022-10-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We've been requiring C++17 since Qt 6.0, and our qAsConst use finally starts to bother us (QTBUG-99313), so time to port away from it now. Since qAsConst has exactly the same semantics as std::as_const (down to rvalue treatment, constexpr'ness and noexcept'ness), there's really nothing more to it than a global search-and-replace. Task-number: QTBUG-99313 Change-Id: Ia64c6615ee81f7ad5d0658449b0ee347c3db8c29 Reviewed-by: David Edmundson <[email protected]>
| * Change the license of all CMakeLists.txt and *.cmake files to BSDLucie Gérard2022-08-233-3/+3
| | | | | | | | | | | | | | Task-number: QTBUG-105718 Change-Id: Icb25ea4e07a38eea81f55ed59c6d3b9d37602626 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Jörg Bornemann <[email protected]>
| * Add license headers to cmake filesLucie Gérard2022-07-083-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | 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: Ib014757184540728f40df71cd580f01e85fbbb56 Reviewed-by: Jörg Bornemann <[email protected]>
| * Use SPDX license identifiersLucie Gérard2022-06-101-38/+2
| | | | | | | | | | | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. License files are organized under LICENSES directory. Pick-to: 6.4 Task-number: QTBUG-67283 Change-Id: I106d3a5d1a7b96250380b6f51a48f3b19d10e4d9 Reviewed-by: Jörg Bornemann <[email protected]>
| * CMake: use the --build-macro option to qtwaylandscannerThiago Macieira2022-05-192-4/+31
| | | | | | | | | | | | | | | | | | So we get correct exports different from imports, which are required for GCC 12 with -mno-direct-extern-access and protected visibility. Change-Id: If05aeeb7176e4f13af9afffd16e856de1f4f68d6 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Alexandru Croitor <[email protected]>
| * qtwaylandscanner: add a way to use an build macro in the generated codeThiago Macieira2022-05-191-22/+27
| | | | | | | | | | | | Change-Id: If05aeeb7176e4f13af9afffd16e85611ff7c42f2 Reviewed-by: Alexandru Croitor <[email protected]> Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]>
| * Use scope resolution operator for requestYoungjin Kim2022-02-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the combination of the name of the protocol interface and the name of its request is same as another interface name, it can cause problem in calling the constructor instead of method generated by wayland-scanner when calling request. For example, if you have an interface named "foo" and its request named "bar", it might conflict with another interface named "foo_bar". A real example for this is presentation_time protocol which has a request "feedback" in the interface "wp_presentation" while it also has another interface named as "wp_presentation_feedback". Pick-to: 6.3 Change-Id: I7c007978d4aa404d10441643d5461372f33954e5 Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]>
| * Remove the XComposite buffer sharing extensionPaul Olav Tvete2021-12-071-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | These extensions were disabled because they did not work properly and they are no longer very useful. It does not make sense to keep non-functional code around when it is unlikely to be fixed. [ChangeLog][Extensions][The xcomposite-egl and xcomposite-glx shell extension protocols have been removed.] Task-number: QTBUG-97985 Change-Id: I0ad37bd2b35551d7b2b1e5e7d4e77a51037864ad Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]>
| * Skip unnecessary commands when cross-building toolsJoerg Bornemann2021-10-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | Call qt_internal_return_unless_building_tools() directly after qt_internal_add_tool() to avoid having to special-case code for when this function only creates imported targets in cross-builds. Task-number: QTBUG-85084 Change-Id: I1830d4e2b9006d1f789ec4889a01bbb66f63ff11 Reviewed-by: Alexandru Croitor <[email protected]> Reviewed-by: Qt CI Bot <[email protected]>
| * Revert "Ensure versionless wrappers do not introduce a new variable scope"Craig Scott2021-09-062-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 0402f082db34577c4ef38b8d4a7ae0ac2436568e. Macros add another level of escaping that functions do not. The conversion of the versionless wrappers to macros may alter the behavior, so revert that change. Task-number: QTBUG-96219 Pick-to: 6.2 Change-Id: I75d7223477894fd28c261ffb8476ab64f5b7d9be Reviewed-by: Joerg Bornemann <[email protected]>
| * Ensure versionless wrappers do not introduce a new variable scopeCraig Scott2021-09-012-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | Using function instead of macro prevented the wrappers from being able to pass back any variables set by the wrapped function in the calling scope. Prefer macros to avoid future changes which might do this from silently swallowing such variable setting. Task-number: QTBUG-96121 Pick-to: 6.2 Change-Id: I293999c8054c2572e9145974a9ffac661f70bf35 Reviewed-by: Joerg Bornemann <[email protected]>
| * CMake: Make WAYLAND_INCLUDE_DIR argument internalJoerg Bornemann2021-08-042-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | As discussed in QTBUG-95177, this argument of qt6_generate_wayland_protocol_{client|server}_sources is for internal use only and should not be exposed publicly. Rename this argument to __QT_INTERNAL_WAYLAND_INCLUDE_DIR. Fixes: QTBUG-95177 Change-Id: I1437007b4bfd398372a932ec09a5eba0daa9af69 Reviewed-by: Alexandru Croitor <[email protected]>
| * Adjust INTERFACE_MODULE_HAS_HEADERS property nameAlexey Edelev2021-08-022-2/+2
| | | | | | | | | | | | | | | | | | | | After introducing the _qt_module_has_headers target property, it's better to replace the INTERFACE_MODULE_HAS_HEADERS use by _qt_module_has_headers since properties duplicate each other. Pick-to: 6.2 Change-Id: Ia1b35cc21bf31fce593c374d196aa450e6fd7e08 Reviewed-by: Alexandru Croitor <[email protected]>
| * cmake: be more flexible when creating Wayland client and server extension ↵Robert Griebl2021-06-162-13/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | headers This was hardcoded to QtWaylandClient/QtWaylandServer for cmake, while $$MODULE_INCNAME was used in the old qmake world. (this is an update to the previous commit, fixing the client side of things, plus adding an override for both) The header location will now default to the current Qt modules private include dir (as it was in qmake times), but we now also have the ability to override this default via WAYLAND_INCLUDE_DIR to deal with special cases like the WlShellExtension (which is an own Qt private module itself) Pick-to: 6.2 Change-Id: I4e96578a9a00598c236fcd22a460aeca4984baeb Reviewed-by: Dominik Holland <[email protected]> Reviewed-by: Alexandru Croitor <[email protected]>
| * cmake: create Wayland extension headers in the correct module pathRobert Griebl2021-06-151-2/+4
| | | | | | | | | | | | | | | | | | This was hardcoded to QtWaylandCompositor for cmake, while $$MODULE_INCNAME was used in the old qmake world. Pick-to: 6.2 Change-Id: I513423bbffb80a0f548c6145c5bf37f3930d7169 Reviewed-by: Alexandru Croitor <[email protected]>