aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/doc/snippets/qmltc/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/doc/snippets/qmltc/CMakeLists.txt')
-rw-r--r--src/qml/doc/snippets/qmltc/CMakeLists.txt62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/qml/doc/snippets/qmltc/CMakeLists.txt b/src/qml/doc/snippets/qmltc/CMakeLists.txt
new file mode 100644
index 0000000000..e7b150a787
--- /dev/null
+++ b/src/qml/doc/snippets/qmltc/CMakeLists.txt
@@ -0,0 +1,62 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+set(application_name tst_qmltc_examples)
+#[[
+#! [qmltc-app-name]
+# Use "my_qmltc_example" as an application name:
+set(application_name my_qmltc_example)
+
+# Create a CMake target, add C++ source files, link libraries, etc...
+#! [qmltc-app-name]
+]]
+
+qt_internal_add_test(${application_name}
+ SOURCES
+ tst_qmltc_examples.cpp
+ colorpicker.h colorpicker.cpp
+ LIBRARIES
+ Qt::Core
+ Qt::Qml
+ Qt::Quick
+ Qt::QuickTemplates2Private # special
+ Qt::Gui
+)
+
+#! [qmltc-qml-files]
+# Specify a list of QML files to be compiled:
+set(application_qml_files
+ myApp.qml
+ MyButton.qml
+ MySlider.qml
+)
+#! [qmltc-qml-files]
+
+# files "invisible" to the documentation:
+list(APPEND application_qml_files
+ special/HelloWorld.qml
+)
+target_compile_definitions(${application_name} PRIVATE
+ QT_USE_QSTRINGBUILDER
+ QMLTC_TESTS_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}"
+ QMLTC_TESTS_BINARY_DIR="${CMAKE_CURRENT_BINARY_DIR}"
+)
+
+qt_policy(SET QTP0001 NEW)
+
+#! [qmltc-add-qml-module]
+# Make the application into a proper QML module:
+qt6_add_qml_module(${application_name}
+ URI QmltcExample
+ QML_FILES ${application_qml_files}
+
+ # Compile qml files (listed in QML_FILES) to C++ using qmltc and add these
+ # files to the application binary:
+ ENABLE_TYPE_COMPILER
+)
+#! [qmltc-add-qml-module]
+
+#! [qmltc-compile-to-cpp]
+# (qmltc-specific) Link *private* libraries that correspond to QML modules:
+target_link_libraries(${application_name} PRIVATE Qt::QmlPrivate Qt::QuickPrivate)
+#! [qmltc-compile-to-cpp]