diff options
author | Andre Klitzing <aklitzing@gmail.com> | 2024-03-26 11:13:41 +0100 |
---|---|---|
committer | Andre Klitzing <aklitzing@gmail.com> | 2024-03-27 21:14:30 +0100 |
commit | f080d0309d4c1d0d8a96dabe832162c5f41b881f (patch) | |
tree | adccae51e91c63cc6af5615126c0193dd5658c93 /tests | |
parent | a6bd1dc3e0c3dc118b281afbc60d9de3aefc48fa (diff) |
Fix wrong generation of Q_NAMESPACES
Generate Q_NAMESPACE if foreign type is a namespace.
Add compilation test for this only.
Fixes: QTBUG-123535
Pick-to: 6.7 6.5
Change-Id: Iacce6681a3fba468c1a9646630c871e2553d56bd
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qml/qmltyperegistrar/CMakeLists.txt | 14 | ||||
-rw-r--r-- | tests/auto/qml/qmltyperegistrar/enum.cpp | 5 | ||||
-rw-r--r-- | tests/auto/qml/qmltyperegistrar/enum.h | 19 |
3 files changed, 38 insertions, 0 deletions
diff --git a/tests/auto/qml/qmltyperegistrar/CMakeLists.txt b/tests/auto/qml/qmltyperegistrar/CMakeLists.txt index 56147d369c..acc5186644 100644 --- a/tests/auto/qml/qmltyperegistrar/CMakeLists.txt +++ b/tests/auto/qml/qmltyperegistrar/CMakeLists.txt @@ -100,3 +100,17 @@ qt_internal_add_resource(tst_qmltyperegistrar "resources" duplicatedExports.json missingTypes.json ) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) +qt_add_library(tst-qmltyperegistrar-enum-foreign STATIC enum.cpp) +qt_autogen_tools_initial_setup(tst-qmltyperegistrar-enum-foreign) +qt_enable_autogen_tool(tst-qmltyperegistrar-enum-foreign "moc" ON) +target_link_libraries(tst-qmltyperegistrar-enum-foreign PRIVATE Qt::QmlIntegration) + +qt_add_library(tst-qmltyperegistrar-enum STATIC) +qt_autogen_tools_initial_setup(tst-qmltyperegistrar-enum) +qt_enable_autogen_tool(tst-qmltyperegistrar-enum "moc" ON) +target_link_libraries(tst-qmltyperegistrar-enum PRIVATE Qt::Qml tst-qmltyperegistrar-enum-foreign) + +qt_add_qml_module(tst-qmltyperegistrar-enum URI TstEnum OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/TstEnum) +qt_generate_foreign_qml_types(tst-qmltyperegistrar-enum-foreign tst-qmltyperegistrar-enum) diff --git a/tests/auto/qml/qmltyperegistrar/enum.cpp b/tests/auto/qml/qmltyperegistrar/enum.cpp new file mode 100644 index 0000000000..34d2e00ffa --- /dev/null +++ b/tests/auto/qml/qmltyperegistrar/enum.cpp @@ -0,0 +1,5 @@ +// Copyright (C) 2024 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#include "enum.h" +#include "moc_enum.cpp" diff --git a/tests/auto/qml/qmltyperegistrar/enum.h b/tests/auto/qml/qmltyperegistrar/enum.h new file mode 100644 index 0000000000..4a39c22545 --- /dev/null +++ b/tests/auto/qml/qmltyperegistrar/enum.h @@ -0,0 +1,19 @@ +// Copyright (C) 2024 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#ifndef ENUM_NS_HELLO_H +#define ENUM_NS_HELLO_H + +#include <QObject> +#include <QtQmlIntegration/qqmlintegration.h> + +namespace Hello { + Q_NAMESPACE + QML_NAMED_ELEMENT(World) + enum class World { + Europe = 2024, + }; + Q_ENUM_NS(World) +} + +#endif // ENUM_NS_HELLO_H |