On 14/8/23 21:46, Thiago Macieira wrote:
On Monday, 14 August 2023 10:32:36 PDT Marc Mutz via Development wrote:It does _not_ have any influence on user code.Except where accidentally the QT_NO_FOREACH gets copied to the library's CMake INTERFACE. Then it does. This happened for QT_NO_CONTEXTLESS_CONNECT when it was applied to Qt6UiPlugin. We don't understand why it happened there (didn't bother to investigate), so be aware that your claim may be incorrect and that user code may be affected regardless of your intention. See 93de403391b59acf90fbe7319a059382dfe458a6 in the qt-creator repository.
Thanks to Giuseppe for poking the issue, Alexandru figured it out a while ago: https://codereview.qt-project.org/c/qt/qttools/+/491477/2/src/uiplugin/CMakeLists.txt#16
The issue seen in Qt Creator 93de403391b59acf90fbe7319a059382dfe458a6 (the QT_NO_CONTEXTLESS_CONNECT leaking to user code) was "fixed" by https://codereview.qt-project.org/c/qt/qttools/+/492556
The "gist" of it is, don't use qt_internal_add_module + HEADER_MODULE + DEFINES, because those DEFINES could be leaked into user code that links to the plugin in question.
HEADER_MODULE isn't used that many times in Qt code, and typically where it's used there is no SOURCES arg passed to qt_internal_add_module, however it's a corner case to look out for when adding DEFINES to qt_internal_add_module.
Regards, Ahmad Samir
OpenPGP_signature
Description: OpenPGP digital signature
-- Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development