From 34625db91ab210e332cfbf670c8b3c5d501817c0 Mon Sep 17 00:00:00 2001 From: Fabian Kosmale Date: Fri, 14 Feb 2025 15:39:18 +0100 Subject: [PATCH] qt-cmake-create: Modernize QML template - Do not use a version for the executable module target - Rely on QTP0001 for the RESOURCE_PREFIX (via qt_standard_project_setup) - Do not use OUTPUT_DIRECTORY to avoid a URI mismatch, potentially causing issues with the implicit import. Instead, use RUNTIME_OUTPUT_NAME to avoid a conflict between folder and executable name. Change-Id: Ic6188d96042e7b34eb3f423daf2b57290ca18a11 Reviewed-by: Ulf Hermann Reviewed-by: Alexey Edelev (cherry picked from commit e84145d6c14e92c3a499904f70046bc3ceee5960) Reviewed-by: Qt Cherry-pick Bot --- cmake/QtInitProject.cmake | 9 ++++----- .../testdata/cpp_project/CMakeLists.txt.expected | 2 +- .../testdata/proto_project/CMakeLists.txt.expected | 2 +- .../testdata/qml_project/CMakeLists.txt.expected | 7 +++---- .../testdata/qrc_project/CMakeLists.txt.expected | 2 +- .../testdata/ui_project/CMakeLists.txt.expected | 2 +- 6 files changed, 11 insertions(+), 13 deletions(-) diff --git a/cmake/QtInitProject.cmake b/cmake/QtInitProject.cmake index a42f59f5c8a..8860b3578ed 100644 --- a/cmake/QtInitProject.cmake +++ b/cmake/QtInitProject.cmake @@ -93,12 +93,11 @@ handle_type(cpp EXTENSIONS .c .cc .cpp .cxx .h .hh .hxx .hpp MODULES Core TEMPLA handle_type(qml EXTENSIONS .qml .js .mjs MODULES Gui Qml Quick TEMPLATE "\n\nqt_add_qml_module(${project_name} URI ${project_name} - OUTPUT_DIRECTORY qml - VERSION 1.0 - RESOURCE_PREFIX /qt/qml QML_FILES @files@ -)" +) +set_property(TARGET ${project_name} PROPERTY RUNTIME_OUTPUT_NAME \"${project_name}app\") +" ) handle_type(ui EXTENSIONS .ui MODULES Gui Widgets DEPENDS cpp TEMPLATE @@ -162,7 +161,7 @@ set(content project(${project_name} LANGUAGES CXX) find_package(Qt6 REQUIRED COMPONENTS ${packages_string}) -qt_standard_project_setup()" +qt_standard_project_setup(REQUIRES 6.8)" ) set(has_useful_sources FALSE) diff --git a/tests/auto/tools/qt_cmake_create/testdata/cpp_project/CMakeLists.txt.expected b/tests/auto/tools/qt_cmake_create/testdata/cpp_project/CMakeLists.txt.expected index 7e646b722d7..dcaf375c507 100644 --- a/tests/auto/tools/qt_cmake_create/testdata/cpp_project/CMakeLists.txt.expected +++ b/tests/auto/tools/qt_cmake_create/testdata/cpp_project/CMakeLists.txt.expected @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(cpp_project LANGUAGES CXX) find_package(Qt6 REQUIRED COMPONENTS Core) -qt_standard_project_setup() +qt_standard_project_setup(REQUIRES 6.8) qt_add_executable(cpp_project main.cpp diff --git a/tests/auto/tools/qt_cmake_create/testdata/proto_project/CMakeLists.txt.expected b/tests/auto/tools/qt_cmake_create/testdata/proto_project/CMakeLists.txt.expected index 1b9ae912b24..c56a0e25b3f 100644 --- a/tests/auto/tools/qt_cmake_create/testdata/proto_project/CMakeLists.txt.expected +++ b/tests/auto/tools/qt_cmake_create/testdata/proto_project/CMakeLists.txt.expected @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(proto_project LANGUAGES CXX) find_package(Qt6 REQUIRED COMPONENTS Protobuf Grpc) -qt_standard_project_setup() +qt_standard_project_setup(REQUIRES 6.8) qt_add_protobuf(proto_project GENERATE_PACKAGE_SUBFOLDERS diff --git a/tests/auto/tools/qt_cmake_create/testdata/qml_project/CMakeLists.txt.expected b/tests/auto/tools/qt_cmake_create/testdata/qml_project/CMakeLists.txt.expected index 1187b0e54a2..3d168c1f992 100644 --- a/tests/auto/tools/qt_cmake_create/testdata/qml_project/CMakeLists.txt.expected +++ b/tests/auto/tools/qt_cmake_create/testdata/qml_project/CMakeLists.txt.expected @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(qml_project LANGUAGES CXX) find_package(Qt6 REQUIRED COMPONENTS Gui Qml Quick Core) -qt_standard_project_setup() +qt_standard_project_setup(REQUIRES 6.8) qt_add_executable(qml_project main.cpp @@ -10,13 +10,12 @@ qt_add_executable(qml_project qt_add_qml_module(qml_project URI qml_project - OUTPUT_DIRECTORY qml - VERSION 1.0 - RESOURCE_PREFIX /qt/qml QML_FILES TestComponent.qml main.qml ) +set_property(TARGET qml_project PROPERTY RUNTIME_OUTPUT_NAME "qml_projectapp") + target_link_libraries(qml_project PRIVATE diff --git a/tests/auto/tools/qt_cmake_create/testdata/qrc_project/CMakeLists.txt.expected b/tests/auto/tools/qt_cmake_create/testdata/qrc_project/CMakeLists.txt.expected index 8a595ac3c24..7f41a0d68ad 100644 --- a/tests/auto/tools/qt_cmake_create/testdata/qrc_project/CMakeLists.txt.expected +++ b/tests/auto/tools/qt_cmake_create/testdata/qrc_project/CMakeLists.txt.expected @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(qrc_project LANGUAGES CXX) find_package(Qt6 REQUIRED COMPONENTS Core) -qt_standard_project_setup() +qt_standard_project_setup(REQUIRES 6.8) qt_add_executable(qrc_project main.cpp diff --git a/tests/auto/tools/qt_cmake_create/testdata/ui_project/CMakeLists.txt.expected b/tests/auto/tools/qt_cmake_create/testdata/ui_project/CMakeLists.txt.expected index 6252b71389b..86b259df0c0 100644 --- a/tests/auto/tools/qt_cmake_create/testdata/ui_project/CMakeLists.txt.expected +++ b/tests/auto/tools/qt_cmake_create/testdata/ui_project/CMakeLists.txt.expected @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16) project(ui_project LANGUAGES CXX) find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets) -qt_standard_project_setup() +qt_standard_project_setup(REQUIRES 6.8) qt_add_executable(ui_project main.cpp