diff options
author | Fabian Kosmale <fabian.kosmale@qt.io> | 2021-11-11 15:06:55 +0100 |
---|---|---|
committer | Fabian Kosmale <fabian.kosmale@qt.io> | 2022-03-29 22:12:43 +0200 |
commit | 612d988243496aa1fc53442c0a385d633b411872 (patch) | |
tree | c8a7663eebb62e4a1f9b6449dd08e41da533908d /examples | |
parent | a0560af8afff487b4f6ecc0618a85b68ef5321a1 (diff) |
Add cmake support for examples
qml-i18n needed to be ported to CMake first. It uses qt_add_translations
introduced in 6.2
As a drive-by, move find_package calls from examples' CML to the top
level CML, and make the QtSql dependency optional. Also make sure that
we only add the dynamicscene example when the Quick target is available.
Pick-to: 6.2 6.3
Fixes: QTBUG-90964
Change-Id: Id357eb14e4704753386e01393300966eb89b4e86
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/CMakeLists.txt | 2 | ||||
-rw-r--r-- | examples/qml/CMakeLists.txt | 5 | ||||
-rw-r--r-- | examples/qml/qml-i18n/CMakeLists.txt | 44 | ||||
-rw-r--r-- | examples/quickcontrols2/CMakeLists.txt | 4 |
4 files changed, 51 insertions, 4 deletions
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 86b8aaad1a..861b34e33c 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,5 +1,3 @@ -find_package(Qt6 REQUIRED COMPONENTS Sql) - qt_examples_build_begin(EXTERNAL_BUILD) add_subdirectory(qml) diff --git a/examples/qml/CMakeLists.txt b/examples/qml/CMakeLists.txt index 459fe041c9..9601672513 100644 --- a/examples/qml/CMakeLists.txt +++ b/examples/qml/CMakeLists.txt @@ -1,10 +1,13 @@ -qt_internal_add_example(dynamicscene) add_subdirectory(referenceexamples) add_subdirectory(tutorials) qt_internal_add_example(shell) if(TARGET Qt::Quick) qt_internal_add_example(qmlextensionplugins) qt_internal_add_example(xmlhttprequest) + if (TARGET Qt::lupdate) + qt_internal_add_example(qml-i18n) + endif() + qt_internal_add_example(dynamicscene) endif() if(QT_FEATURE_qml_network AND TARGET Qt::Quick) qt_internal_add_example(networkaccessmanagerfactory) diff --git a/examples/qml/qml-i18n/CMakeLists.txt b/examples/qml/qml-i18n/CMakeLists.txt new file mode 100644 index 0000000000..ad69bd6db6 --- /dev/null +++ b/examples/qml/qml-i18n/CMakeLists.txt @@ -0,0 +1,44 @@ +cmake_minimum_required(VERSION 3.16) +project(qml-i18n LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOMOC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/qml/qmli18n") + +find_package(Qt6 REQUIRED COMPONENTS Core Gui Quick Qml LinguistTools) + +qt_add_executable(qmli18n WIN32 MACOSX_BUNDLE main.cpp) + +target_link_libraries(qmli18n PRIVATE + Qt::Core + Qt::Gui + Qt::Qml + Qt::Quick +) + +qt_add_qml_module(qmli18n + URI dynamicscene + VERSION 1.0 + QML_FILES + qml-i18n.qml + NO_RESOURCE_TARGET_PATH +) + +qt_add_translations(qmli18n + TS_FILES + i18n/base.ts + i18n/qml_en.ts + i18n/qml_en_AU.ts + i18n/qml_fr.ts +) + +install(TARGETS qmli18n + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/quickcontrols2/CMakeLists.txt b/examples/quickcontrols2/CMakeLists.txt index bca1743245..7a51634790 100644 --- a/examples/quickcontrols2/CMakeLists.txt +++ b/examples/quickcontrols2/CMakeLists.txt @@ -1,5 +1,7 @@ qt_internal_add_example(gallery) -add_subdirectory(chattutorial) +if (TARGET Qt::Sql) + add_subdirectory(chattutorial) +endif() if (QT_FEATURE_quicktemplates2_calendar AND TARGET Qt::Sql) qt_internal_add_example(eventcalendar) endif() |