summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorDominik Holland <dominik.holland@qt.io>2020-11-17 12:27:36 +0100
committerDominik Holland <dominik.holland@qt.io>2021-03-26 11:02:46 +0100
commit3fdd3573f716b044824e11dcd1cabb8442ffeea8 (patch)
tree4f39b967a2aa2ee23daf70bc5ab6d83c1bfb862c /examples
parent9516ab95f0aac46df99323f3f8d1d7c5ac38365a (diff)
downloadqtivi-3fdd3573f716b044824e11dcd1cabb8442ffeea8.tar.gz
cmake: Start of cmake port using run_pro2cmake.py and friends
Some special cases are already addressed. Task-number: AUTOSUITE-1633 Change-Id: I5409522c1c5eb76b8aac3e7e332d1e1cc27e594f Reviewed-by: Robert Griebl <robert.griebl@qt.io>
Diffstat (limited to 'examples')
-rw-r--r--examples/CMakeLists.txt18
-rw-r--r--examples/geniviextras/CMakeLists.txt3
-rw-r--r--examples/geniviextras/qdlt/CMakeLists.txt37
-rw-r--r--examples/ivicore/CMakeLists.txt10
-rw-r--r--examples/ivicore/qface-ivi-addressbook/CMakeLists.txt5
-rw-r--r--examples/ivicore/qface-ivi-addressbook/backend_simulator/CMakeLists.txt55
-rw-r--r--examples/ivicore/qface-ivi-addressbook/demo/CMakeLists.txt63
-rw-r--r--examples/ivicore/qface-ivi-addressbook/frontend/CMakeLists.txt46
-rw-r--r--examples/ivicore/qface-ivi-climate/CMakeLists.txt5
-rw-r--r--examples/ivicore/qface-ivi-climate/backend_simulator/CMakeLists.txt42
-rw-r--r--examples/ivicore/qface-ivi-climate/demo/CMakeLists.txt63
-rw-r--r--examples/ivicore/qface-ivi-climate/frontend/CMakeLists.txt46
-rw-r--r--examples/ivicore/qface-ivi-remote/CMakeLists.txt6
-rw-r--r--examples/ivicore/qface-ivi-remote/backend_qtro/CMakeLists.txt42
-rw-r--r--examples/ivicore/qface-ivi-remote/demo/CMakeLists.txt63
-rw-r--r--examples/ivicore/qface-ivi-remote/frontend/CMakeLists.txt46
-rw-r--r--examples/ivicore/qface-ivi-remote/server_qtro/CMakeLists.txt45
-rw-r--r--examples/ivicore/qface-tutorial/CMakeLists.txt11
-rw-r--r--examples/ivicore/qface-tutorial/chapter1-basics/CMakeLists.txt4
-rw-r--r--examples/ivicore/qface-tutorial/chapter1-basics/frontend/CMakeLists.txt46
-rw-r--r--examples/ivicore/qface-tutorial/chapter1-basics/instrument-cluster/CMakeLists.txt140
-rw-r--r--examples/ivicore/qface-tutorial/chapter2-enums-structs/CMakeLists.txt4
-rw-r--r--examples/ivicore/qface-tutorial/chapter2-enums-structs/frontend/CMakeLists.txt46
-rw-r--r--examples/ivicore/qface-tutorial/chapter2-enums-structs/instrument-cluster/CMakeLists.txt140
-rw-r--r--examples/ivicore/qface-tutorial/chapter3-simulation-backend/CMakeLists.txt6
-rw-r--r--examples/ivicore/qface-tutorial/chapter3-simulation-backend/backend_simulator/CMakeLists.txt42
-rw-r--r--examples/ivicore/qface-tutorial/chapter3-simulation-backend/frontend/CMakeLists.txt46
-rw-r--r--examples/ivicore/qface-tutorial/chapter3-simulation-backend/imports/CMakeLists.txt42
-rw-r--r--examples/ivicore/qface-tutorial/chapter3-simulation-backend/instrument-cluster/CMakeLists.txt140
-rw-r--r--examples/ivicore/qface-tutorial/chapter4-simulation-behavior/CMakeLists.txt6
-rw-r--r--examples/ivicore/qface-tutorial/chapter4-simulation-behavior/backend_simulator/CMakeLists.gen.txt2
-rw-r--r--examples/ivicore/qface-tutorial/chapter4-simulation-behavior/frontend/CMakeLists.txt46
-rw-r--r--examples/ivicore/qface-tutorial/chapter4-simulation-behavior/imports/CMakeLists.txt42
-rw-r--r--examples/ivicore/qface-tutorial/chapter4-simulation-behavior/instrument-cluster/CMakeLists.txt140
-rw-r--r--examples/ivicore/qface-tutorial/chapter5-ipc/CMakeLists.txt8
-rw-r--r--examples/ivicore/qface-tutorial/chapter5-ipc/backend_qtro/CMakeLists.txt42
-rw-r--r--examples/ivicore/qface-tutorial/chapter5-ipc/backend_simulator/CMakeLists.gen.txt2
-rw-r--r--examples/ivicore/qface-tutorial/chapter5-ipc/frontend/CMakeLists.txt46
-rw-r--r--examples/ivicore/qface-tutorial/chapter5-ipc/imports/CMakeLists.txt42
-rw-r--r--examples/ivicore/qface-tutorial/chapter5-ipc/instrument-cluster/CMakeLists.txt140
-rw-r--r--examples/ivicore/qface-tutorial/chapter5-ipc/simulation_server/CMakeLists.gen.txt2
-rw-r--r--examples/ivicore/qface-tutorial/chapter6-own-backend/CMakeLists.txt8
-rw-r--r--examples/ivicore/qface-tutorial/chapter6-own-backend/backend_dbus/CMakeLists.txt50
-rw-r--r--examples/ivicore/qface-tutorial/chapter6-own-backend/backend_simulator/CMakeLists.gen.txt2
-rw-r--r--examples/ivicore/qface-tutorial/chapter6-own-backend/demo_server/CMakeLists.txt46
-rw-r--r--examples/ivicore/qface-tutorial/chapter6-own-backend/frontend/CMakeLists.txt46
-rw-r--r--examples/ivicore/qface-tutorial/chapter6-own-backend/imports/CMakeLists.txt42
-rw-r--r--examples/ivicore/qface-tutorial/chapter6-own-backend/instrument-cluster/CMakeLists.txt140
-rw-r--r--examples/ivicore/qface-tutorial/instrument-cluster/CMakeLists.txt135
-rw-r--r--examples/ivimedia/CMakeLists.txt4
-rw-r--r--examples/ivimedia/mediaplayer/CMakeLists.txt56
-rw-r--r--examples/ivimedia/tuner/CMakeLists.txt56
-rw-r--r--examples/ivivehiclefunctions/CMakeLists.txt7
-rw-r--r--examples/ivivehiclefunctions/climate_qml/CMakeLists.txt54
-rw-r--r--examples/ivivehiclefunctions/climate_widget/CMakeLists.txt47
-rw-r--r--examples/ivivehiclefunctions/window_qml/CMakeLists.txt55
56 files changed, 2528 insertions, 0 deletions
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
new file mode 100644
index 0000000..5454d68
--- /dev/null
+++ b/examples/CMakeLists.txt
@@ -0,0 +1,18 @@
+# Generated from examples.pro.
+
+qt_examples_build_begin()
+
+if(TARGET Qt::Gui AND TARGET Qt::IviCore)
+ add_subdirectory(ivicore)
+endif()
+if(TARGET Qt::Gui AND TARGET ivivehiclefunctions)
+ add_subdirectory(ivivehiclefunctions)
+endif()
+if(TARGET Qt::Gui AND TARGET Qt::IviMedia)
+ add_subdirectory(ivimedia)
+endif()
+if(TARGET geniviextras)
+ add_subdirectory(geniviextras)
+endif()
+
+qt_examples_build_end()
diff --git a/examples/geniviextras/CMakeLists.txt b/examples/geniviextras/CMakeLists.txt
new file mode 100644
index 0000000..fd7c832
--- /dev/null
+++ b/examples/geniviextras/CMakeLists.txt
@@ -0,0 +1,3 @@
+# Generated from geniviextras.pro.
+
+add_subdirectory(qdlt)
diff --git a/examples/geniviextras/qdlt/CMakeLists.txt b/examples/geniviextras/qdlt/CMakeLists.txt
new file mode 100644
index 0000000..d5874e6
--- /dev/null
+++ b/examples/geniviextras/qdlt/CMakeLists.txt
@@ -0,0 +1,37 @@
+# Generated from qdlt.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(qdlt LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/geniviextras/qdlt")
+
+find_package(Qt6 COMPONENTS Core)
+
+qt_add_executable(qdlt
+ loggingcategories.cpp loggingcategories.h
+ main.cpp
+)
+set_target_properties(qdlt PROPERTIES
+ WIN32_EXECUTABLE FALSE
+ MACOSX_BUNDLE FALSE
+)
+target_link_libraries(qdlt PUBLIC
+ Qt::Core
+ geniviextras
+)
+
+install(TARGETS qdlt
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/CMakeLists.txt b/examples/ivicore/CMakeLists.txt
new file mode 100644
index 0000000..23d44bc
--- /dev/null
+++ b/examples/ivicore/CMakeLists.txt
@@ -0,0 +1,10 @@
+# Generated from ivicore.pro.
+
+if(QT_FEATURE_ivigenerator)
+ add_subdirectory(qface-ivi-climate)
+ add_subdirectory(qface-ivi-addressbook)
+endif()
+if(QT_FEATURE_ivigenerator AND QT_FEATURE_remoteobjects)
+ add_subdirectory(qface-ivi-remote)
+ add_subdirectory(qface-tutorial)
+endif()
diff --git a/examples/ivicore/qface-ivi-addressbook/CMakeLists.txt b/examples/ivicore/qface-ivi-addressbook/CMakeLists.txt
new file mode 100644
index 0000000..e32e6eb
--- /dev/null
+++ b/examples/ivicore/qface-ivi-addressbook/CMakeLists.txt
@@ -0,0 +1,5 @@
+# Generated from qface-ivi-addressbook.pro.
+
+add_subdirectory(frontend)
+add_subdirectory(backend_simulator)
+add_subdirectory(demo)
diff --git a/examples/ivicore/qface-ivi-addressbook/backend_simulator/CMakeLists.txt b/examples/ivicore/qface-ivi-addressbook/backend_simulator/CMakeLists.txt
new file mode 100644
index 0000000..11dc7d3
--- /dev/null
+++ b/examples/ivicore/qface-ivi-addressbook/backend_simulator/CMakeLists.txt
@@ -0,0 +1,55 @@
+# Generated from backend_simulator.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(example_ivi_addressbook LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-ivi-addressbook/qtivi/")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+
+)
+set_target_properties(example_ivi_addressbook PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_include_directories(example_ivi_addressbook PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_link_libraries(example_ivi_addressbook PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+)
+
+
+# Resources:
+set(plugin_resource_resource_files
+ "simulation.qml"
+)
+
+qt6_add_resources(example_ivi_addressbook "plugin_resource"
+ PREFIX
+ "/plugin_resource"
+ FILES
+ ${plugin_resource_resource_files}
+)
+
+install(TARGETS example_ivi_addressbook
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-ivi-addressbook/demo/CMakeLists.txt b/examples/ivicore/qface-ivi-addressbook/demo/CMakeLists.txt
new file mode 100644
index 0000000..f7d36ff
--- /dev/null
+++ b/examples/ivicore/qface-ivi-addressbook/demo/CMakeLists.txt
@@ -0,0 +1,63 @@
+# Generated from demo.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(qface-ivi-addressbook LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-ivi-addressbook")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(qface-ivi-addressbook
+ main.cpp
+)
+set_target_properties(qface-ivi-addressbook PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE FALSE
+)
+target_include_directories(qface-ivi-addressbook PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_compile_definitions(qface-ivi-addressbook PUBLIC
+ QT_DEPRECATED_WARNINGS
+)
+
+target_link_libraries(qface-ivi-addressbook PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+)
+
+
+# Resources:
+set(qml_resource_files
+ "main.qml"
+)
+
+qt6_add_resources(qface-ivi-addressbook "qml"
+ PREFIX
+ "/"
+ FILES
+ ${qml_resource_files}
+)
+
+install(TARGETS qface-ivi-addressbook
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-ivi-addressbook/frontend/CMakeLists.txt b/examples/ivicore/qface-ivi-addressbook/frontend/CMakeLists.txt
new file mode 100644
index 0000000..c25aec6
--- /dev/null
+++ b/examples/ivicore/qface-ivi-addressbook/frontend/CMakeLists.txt
@@ -0,0 +1,46 @@
+# Generated from frontend.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(QtIviAdressBookExample LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-iviaddressbook")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+)
+set_target_properties(QtIviAdressBookExample PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_compile_definitions(QtIviAdressBookExample PUBLIC
+ QT_BUILD_EXAMPLE_IVI_ADDRESSBOOK_LIB
+)
+
+target_link_libraries(QtIviAdressBookExample PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+ Qt::IviCorePrivate
+ Qt::Qml
+ Qt::Quick
+)
+
+install(TARGETS QtIviAdressBookExample
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-ivi-climate/CMakeLists.txt b/examples/ivicore/qface-ivi-climate/CMakeLists.txt
new file mode 100644
index 0000000..c908371
--- /dev/null
+++ b/examples/ivicore/qface-ivi-climate/CMakeLists.txt
@@ -0,0 +1,5 @@
+# Generated from qface-ivi-climate.pro.
+
+add_subdirectory(frontend)
+add_subdirectory(backend_simulator)
+add_subdirectory(demo)
diff --git a/examples/ivicore/qface-ivi-climate/backend_simulator/CMakeLists.txt b/examples/ivicore/qface-ivi-climate/backend_simulator/CMakeLists.txt
new file mode 100644
index 0000000..f5a96df
--- /dev/null
+++ b/examples/ivicore/qface-ivi-climate/backend_simulator/CMakeLists.txt
@@ -0,0 +1,42 @@
+# Generated from backend_simulator.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(example_ivi_climate LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-ivi-climate/qtivi/")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+
+)
+set_target_properties(example_ivi_climate PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_include_directories(example_ivi_climate PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_link_libraries(example_ivi_climate PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+)
+
+install(TARGETS example_ivi_climate
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-ivi-climate/demo/CMakeLists.txt b/examples/ivicore/qface-ivi-climate/demo/CMakeLists.txt
new file mode 100644
index 0000000..810725f
--- /dev/null
+++ b/examples/ivicore/qface-ivi-climate/demo/CMakeLists.txt
@@ -0,0 +1,63 @@
+# Generated from demo.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(qface-ivi-climate LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-ivi-climate")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(qface-ivi-climate
+ main.cpp
+)
+set_target_properties(qface-ivi-climate PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE FALSE
+)
+target_include_directories(qface-ivi-climate PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_compile_definitions(qface-ivi-climate PUBLIC
+ QT_DEPRECATED_WARNINGS
+)
+
+target_link_libraries(qface-ivi-climate PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+)
+
+
+# Resources:
+set(qml_resource_files
+ "main.qml"
+)
+
+qt6_add_resources(qface-ivi-climate "qml"
+ PREFIX
+ "/"
+ FILES
+ ${qml_resource_files}
+)
+
+install(TARGETS qface-ivi-climate
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-ivi-climate/frontend/CMakeLists.txt b/examples/ivicore/qface-ivi-climate/frontend/CMakeLists.txt
new file mode 100644
index 0000000..771443e
--- /dev/null
+++ b/examples/ivicore/qface-ivi-climate/frontend/CMakeLists.txt
@@ -0,0 +1,46 @@
+# Generated from frontend.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(QtIviClimateExample LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-ivi-climate")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+)
+set_target_properties(QtIviClimateExample PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_compile_definitions(QtIviClimateExample PUBLIC
+ QT_BUILD_EXAMPLE_IVI_CLIMATE_LIB
+)
+
+target_link_libraries(QtIviClimateExample PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+ Qt::IviCorePrivate
+ Qt::Qml
+ Qt::Quick
+)
+
+install(TARGETS QtIviClimateExample
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-ivi-remote/CMakeLists.txt b/examples/ivicore/qface-ivi-remote/CMakeLists.txt
new file mode 100644
index 0000000..a528b62
--- /dev/null
+++ b/examples/ivicore/qface-ivi-remote/CMakeLists.txt
@@ -0,0 +1,6 @@
+# Generated from qface-ivi-remote.pro.
+
+add_subdirectory(frontend)
+add_subdirectory(backend_qtro)
+add_subdirectory(server_qtro)
+add_subdirectory(demo)
diff --git a/examples/ivicore/qface-ivi-remote/backend_qtro/CMakeLists.txt b/examples/ivicore/qface-ivi-remote/backend_qtro/CMakeLists.txt
new file mode 100644
index 0000000..26c3d05
--- /dev/null
+++ b/examples/ivicore/qface-ivi-remote/backend_qtro/CMakeLists.txt
@@ -0,0 +1,42 @@
+# Generated from backend_qtro.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(example_ivi_remote LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-ivi-remote/qtivi/")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+
+)
+set_target_properties(example_ivi_remote PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_include_directories(example_ivi_remote PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_link_libraries(example_ivi_remote PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+)
+
+install(TARGETS example_ivi_remote
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-ivi-remote/demo/CMakeLists.txt b/examples/ivicore/qface-ivi-remote/demo/CMakeLists.txt
new file mode 100644
index 0000000..e591f9b
--- /dev/null
+++ b/examples/ivicore/qface-ivi-remote/demo/CMakeLists.txt
@@ -0,0 +1,63 @@
+# Generated from demo.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(qface-ivi-remote LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-ivi-remote")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(qface-ivi-remote
+ main.cpp
+)
+set_target_properties(qface-ivi-remote PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE FALSE
+)
+target_include_directories(qface-ivi-remote PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_compile_definitions(qface-ivi-remote PUBLIC
+ QT_DEPRECATED_WARNINGS
+)
+
+target_link_libraries(qface-ivi-remote PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+)
+
+
+# Resources:
+set(qml_resource_files
+ "main.qml"
+)
+
+qt6_add_resources(qface-ivi-remote "qml"
+ PREFIX
+ "/"
+ FILES
+ ${qml_resource_files}
+)
+
+install(TARGETS qface-ivi-remote
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-ivi-remote/frontend/CMakeLists.txt b/examples/ivicore/qface-ivi-remote/frontend/CMakeLists.txt
new file mode 100644
index 0000000..10f4cac
--- /dev/null
+++ b/examples/ivicore/qface-ivi-remote/frontend/CMakeLists.txt
@@ -0,0 +1,46 @@
+# Generated from frontend.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(QtIviRemoteExample LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-ivi-remote")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+)
+set_target_properties(QtIviRemoteExample PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_compile_definitions(QtIviRemoteExample PUBLIC
+ QT_BUILD_EXAMPLE_IVI_REMOTE_LIB
+)
+
+target_link_libraries(QtIviRemoteExample PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+ Qt::IviCorePrivate
+ Qt::Qml
+ Qt::Quick
+)
+
+install(TARGETS QtIviRemoteExample
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-ivi-remote/server_qtro/CMakeLists.txt b/examples/ivicore/qface-ivi-remote/server_qtro/CMakeLists.txt
new file mode 100644
index 0000000..a800ca8
--- /dev/null
+++ b/examples/ivicore/qface-ivi-remote/server_qtro/CMakeLists.txt
@@ -0,0 +1,45 @@
+# Generated from server_qtro.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(qface-ivi-remote-server LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-ivi-remote-server")
+
+find_package(Qt6 COMPONENTS Core)
+
+qt_add_executable(qface-ivi-remote-server
+ main.cpp
+ processingservice.cpp processingservice.h
+)
+set_target_properties(qface-ivi-remote-server PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE FALSE
+)
+target_include_directories(qface-ivi-remote-server PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_compile_definitions(qface-ivi-remote-server PUBLIC
+ QT_DEPRECATED_WARNINGS
+)
+
+target_link_libraries(qface-ivi-remote-server PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+)
+
+install(TARGETS qface-ivi-remote-server
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/CMakeLists.txt b/examples/ivicore/qface-tutorial/CMakeLists.txt
new file mode 100644
index 0000000..f1f014f
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/CMakeLists.txt
@@ -0,0 +1,11 @@
+# Generated from qface-tutorial.pro.
+
+add_subdirectory(instrument-cluster)
+add_subdirectory(chapter1-basics)
+add_subdirectory(chapter2-enums-structs)
+add_subdirectory(chapter3-simulation-backend)
+add_subdirectory(chapter4-simulation-behavior)
+add_subdirectory(chapter5-ipc)
+if(TARGET Qt::DBus)
+ add_subdirectory(chapter6-own-backend)
+endif()
diff --git a/examples/ivicore/qface-tutorial/chapter1-basics/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter1-basics/CMakeLists.txt
new file mode 100644
index 0000000..154a126
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter1-basics/CMakeLists.txt
@@ -0,0 +1,4 @@
+# Generated from chapter1-basics.pro.
+
+add_subdirectory(instrument-cluster)
+add_subdirectory(frontend)
diff --git a/examples/ivicore/qface-tutorial/chapter1-basics/frontend/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter1-basics/frontend/CMakeLists.txt
new file mode 100644
index 0000000..fde5846
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter1-basics/frontend/CMakeLists.txt
@@ -0,0 +1,46 @@
+# Generated from frontend.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(QtIviInstrumentCluster LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter1-basics")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+)
+set_target_properties(QtIviInstrumentCluster PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_compile_definitions(QtIviInstrumentCluster PUBLIC
+ QT_BUILD_EXAMPLE_IVI_INSTRUMENTCLUSTER_LIB
+)
+
+target_link_libraries(QtIviInstrumentCluster PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+ Qt::IviCorePrivate
+ Qt::Qml
+ Qt::Quick
+)
+
+install(TARGETS QtIviInstrumentCluster
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/chapter1-basics/instrument-cluster/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter1-basics/instrument-cluster/CMakeLists.txt
new file mode 100644
index 0000000..3c3e845
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter1-basics/instrument-cluster/CMakeLists.txt
@@ -0,0 +1,140 @@
+# Generated from instrument-cluster.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(chapter1-basics LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter1-basics")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(chapter1-basics
+ main.cpp
+)
+set_target_properties(chapter1-basics PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE FALSE
+)
+target_include_directories(chapter1-basics PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_link_libraries(chapter1-basics PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+)
+
+
+# Resources:
+set(app_resource_files
+ "Cluster.qml"
+ "Dial.qml"
+ "Fuel.qml"
+ "Label.qml"
+ "LeftDial.qml"
+ "RightDial.qml"
+ "Top.qml"
+)
+
+qt6_add_resources(chapter1-basics "app"
+ PREFIX
+ "/"
+ FILES
+ ${app_resource_files}
+)
+set_source_files_properties("../../images/+--.png"
+ PROPERTIES QT_RESOURCE_ALIAS "+--.png"
+)
+set_source_files_properties("../../images/P-R-N-D.png"
+ PROPERTIES QT_RESOURCE_ALIAS "P-R-N-D.png"
+)
+set_source_files_properties("../../images/dial_cursor.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_cursor.png"
+)
+set_source_files_properties("../../images/dial_cursor_right.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_cursor_right.png"
+)
+set_source_files_properties("../../images/dial_fill_color.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_fill_color.png"
+)
+set_source_files_properties("../../images/dial_fill_color_left.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_fill_color_left.png"
+)
+set_source_files_properties("../../images/dial_pattern.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_pattern.png"
+)
+set_source_files_properties("../../images/fuel.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuel.png"
+)
+set_source_files_properties("../../images/fuel_level.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuel_level.png"
+)
+set_source_files_properties("../../images/fuelsymbol_orange.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuelsymbol_orange.png"
+)
+set_source_files_properties("../../images/left_dial.png"
+ PROPERTIES QT_RESOURCE_ALIAS "left_dial.png"
+)
+set_source_files_properties("../../images/mask_overlay.png"
+ PROPERTIES QT_RESOURCE_ALIAS "mask_overlay.png"
+)
+set_source_files_properties("../../images/middle-bkg.png"
+ PROPERTIES QT_RESOURCE_ALIAS "middle-bkg.png"
+)
+set_source_files_properties("../../images/middle-circle.png"
+ PROPERTIES QT_RESOURCE_ALIAS "middle-circle.png"
+)
+set_source_files_properties("../../images/right_dial.png"
+ PROPERTIES QT_RESOURCE_ALIAS "right_dial.png"
+)
+set_source_files_properties("../../images/top_bar.png"
+ PROPERTIES QT_RESOURCE_ALIAS "top_bar.png"
+)
+set(images_resource_files
+ "+--.png"
+ "P-R-N-D.png"
+ "dial_cursor.png"
+ "dial_cursor_right.png"
+ "dial_fill_color.png"
+ "dial_fill_color_left.png"
+ "dial_pattern.png"
+ "fuel.png"
+ "fuel_level.png"
+ "fuelsymbol_orange.png"
+ "left_dial.png"
+ "mask_overlay.png"
+ "middle-bkg.png"
+ "middle-circle.png"
+ "right_dial.png"
+ "top_bar.png"
+)
+
+qt6_add_resources(chapter1-basics "images"
+ PREFIX
+ "/images"
+ BASE
+ "../../images"
+ FILES
+ ${images_resource_files}
+)
+
+install(TARGETS chapter1-basics
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/chapter2-enums-structs/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter2-enums-structs/CMakeLists.txt
new file mode 100644
index 0000000..d305589
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter2-enums-structs/CMakeLists.txt
@@ -0,0 +1,4 @@
+# Generated from chapter2-enums-structs.pro.
+
+add_subdirectory(instrument-cluster)
+add_subdirectory(frontend)
diff --git a/examples/ivicore/qface-tutorial/chapter2-enums-structs/frontend/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter2-enums-structs/frontend/CMakeLists.txt
new file mode 100644
index 0000000..8ca17d5
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter2-enums-structs/frontend/CMakeLists.txt
@@ -0,0 +1,46 @@
+# Generated from frontend.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(QtIviInstrumentCluster LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter2-enums-structs")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+)
+set_target_properties(QtIviInstrumentCluster PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_compile_definitions(QtIviInstrumentCluster PUBLIC
+ QT_BUILD_EXAMPLE_IVI_INSTRUMENTCLUSTER_LIB
+)
+
+target_link_libraries(QtIviInstrumentCluster PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+ Qt::IviCorePrivate
+ Qt::Qml
+ Qt::Quick
+)
+
+install(TARGETS QtIviInstrumentCluster
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/chapter2-enums-structs/instrument-cluster/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter2-enums-structs/instrument-cluster/CMakeLists.txt
new file mode 100644
index 0000000..154a9aa
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter2-enums-structs/instrument-cluster/CMakeLists.txt
@@ -0,0 +1,140 @@
+# Generated from instrument-cluster.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(chapter2-enums-structs LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter2-enums-structs")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(chapter2-enums-structs
+ main.cpp
+)
+set_target_properties(chapter2-enums-structs PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE FALSE
+)
+target_include_directories(chapter2-enums-structs PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_link_libraries(chapter2-enums-structs PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+)
+
+
+# Resources:
+set(app_resource_files
+ "Cluster.qml"
+ "Dial.qml"
+ "Fuel.qml"
+ "Label.qml"
+ "LeftDial.qml"
+ "RightDial.qml"
+ "Top.qml"
+)
+
+qt6_add_resources(chapter2-enums-structs "app"
+ PREFIX
+ "/"
+ FILES
+ ${app_resource_files}
+)
+set_source_files_properties("../../images/+--.png"
+ PROPERTIES QT_RESOURCE_ALIAS "+--.png"
+)
+set_source_files_properties("../../images/P-R-N-D.png"
+ PROPERTIES QT_RESOURCE_ALIAS "P-R-N-D.png"
+)
+set_source_files_properties("../../images/dial_cursor.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_cursor.png"
+)
+set_source_files_properties("../../images/dial_cursor_right.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_cursor_right.png"
+)
+set_source_files_properties("../../images/dial_fill_color.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_fill_color.png"
+)
+set_source_files_properties("../../images/dial_fill_color_left.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_fill_color_left.png"
+)
+set_source_files_properties("../../images/dial_pattern.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_pattern.png"
+)
+set_source_files_properties("../../images/fuel.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuel.png"
+)
+set_source_files_properties("../../images/fuel_level.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuel_level.png"
+)
+set_source_files_properties("../../images/fuelsymbol_orange.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuelsymbol_orange.png"
+)
+set_source_files_properties("../../images/left_dial.png"
+ PROPERTIES QT_RESOURCE_ALIAS "left_dial.png"
+)
+set_source_files_properties("../../images/mask_overlay.png"
+ PROPERTIES QT_RESOURCE_ALIAS "mask_overlay.png"
+)
+set_source_files_properties("../../images/middle-bkg.png"
+ PROPERTIES QT_RESOURCE_ALIAS "middle-bkg.png"
+)
+set_source_files_properties("../../images/middle-circle.png"
+ PROPERTIES QT_RESOURCE_ALIAS "middle-circle.png"
+)
+set_source_files_properties("../../images/right_dial.png"
+ PROPERTIES QT_RESOURCE_ALIAS "right_dial.png"
+)
+set_source_files_properties("../../images/top_bar.png"
+ PROPERTIES QT_RESOURCE_ALIAS "top_bar.png"
+)
+set(images_resource_files
+ "+--.png"
+ "P-R-N-D.png"
+ "dial_cursor.png"
+ "dial_cursor_right.png"
+ "dial_fill_color.png"
+ "dial_fill_color_left.png"
+ "dial_pattern.png"
+ "fuel.png"
+ "fuel_level.png"
+ "fuelsymbol_orange.png"
+ "left_dial.png"
+ "mask_overlay.png"
+ "middle-bkg.png"
+ "middle-circle.png"
+ "right_dial.png"
+ "top_bar.png"
+)
+
+qt6_add_resources(chapter2-enums-structs "images"
+ PREFIX
+ "/images"
+ BASE
+ "../../images"
+ FILES
+ ${images_resource_files}
+)
+
+install(TARGETS chapter2-enums-structs
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/chapter3-simulation-backend/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter3-simulation-backend/CMakeLists.txt
new file mode 100644
index 0000000..7be44e4
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter3-simulation-backend/CMakeLists.txt
@@ -0,0 +1,6 @@
+# Generated from chapter3-simulation-backend.pro.
+
+add_subdirectory(instrument-cluster)
+add_subdirectory(frontend)
+add_subdirectory(backend_simulator)
+add_subdirectory(imports)
diff --git a/examples/ivicore/qface-tutorial/chapter3-simulation-backend/backend_simulator/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter3-simulation-backend/backend_simulator/CMakeLists.txt
new file mode 100644
index 0000000..9927170
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter3-simulation-backend/backend_simulator/CMakeLists.txt
@@ -0,0 +1,42 @@
+# Generated from backend_simulator.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(instrumentcluster_simulation LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter3-simulation-backend")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+
+)
+set_target_properties(instrumentcluster_simulation PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_include_directories(instrumentcluster_simulation PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_link_libraries(instrumentcluster_simulation PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+)
+
+install(TARGETS instrumentcluster_simulation
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/chapter3-simulation-backend/frontend/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter3-simulation-backend/frontend/CMakeLists.txt
new file mode 100644
index 0000000..dc2a4c6
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter3-simulation-backend/frontend/CMakeLists.txt
@@ -0,0 +1,46 @@
+# Generated from frontend.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(QtIviInstrumentCluster LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter3-simulation-backend")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+)
+set_target_properties(QtIviInstrumentCluster PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_compile_definitions(QtIviInstrumentCluster PUBLIC
+ QT_BUILD_EXAMPLE_IVI_INSTRUMENTCLUSTER_LIB
+)
+
+target_link_libraries(QtIviInstrumentCluster PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+ Qt::IviCorePrivate
+ Qt::Qml
+ Qt::Quick
+)
+
+install(TARGETS QtIviInstrumentCluster
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/chapter3-simulation-backend/imports/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter3-simulation-backend/imports/CMakeLists.txt
new file mode 100644
index 0000000..931e18d
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter3-simulation-backend/imports/CMakeLists.txt
@@ -0,0 +1,42 @@
+# Generated from imports.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(imports LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter3-simulation-backend/imports")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+
+)
+set_target_properties(imports PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_include_directories(imports PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_link_libraries(imports PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+)
+
+install(TARGETS imports
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/chapter3-simulation-backend/instrument-cluster/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter3-simulation-backend/instrument-cluster/CMakeLists.txt
new file mode 100644
index 0000000..b9b4e7e
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter3-simulation-backend/instrument-cluster/CMakeLists.txt
@@ -0,0 +1,140 @@
+# Generated from instrument-cluster.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(chapter3-simulation-backend LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter3-simulation-backend")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(chapter3-simulation-backend
+ main.cpp
+)
+set_target_properties(chapter3-simulation-backend PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE FALSE
+)
+target_include_directories(chapter3-simulation-backend PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_link_libraries(chapter3-simulation-backend PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+)
+
+
+# Resources:
+set(app_resource_files
+ "Cluster.qml"
+ "Dial.qml"
+ "Fuel.qml"
+ "Label.qml"
+ "LeftDial.qml"
+ "RightDial.qml"
+ "Top.qml"
+)
+
+qt6_add_resources(chapter3-simulation-backend "app"
+ PREFIX
+ "/"
+ FILES
+ ${app_resource_files}
+)
+set_source_files_properties("../../images/+--.png"
+ PROPERTIES QT_RESOURCE_ALIAS "+--.png"
+)
+set_source_files_properties("../../images/P-R-N-D.png"
+ PROPERTIES QT_RESOURCE_ALIAS "P-R-N-D.png"
+)
+set_source_files_properties("../../images/dial_cursor.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_cursor.png"
+)
+set_source_files_properties("../../images/dial_cursor_right.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_cursor_right.png"
+)
+set_source_files_properties("../../images/dial_fill_color.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_fill_color.png"
+)
+set_source_files_properties("../../images/dial_fill_color_left.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_fill_color_left.png"
+)
+set_source_files_properties("../../images/dial_pattern.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_pattern.png"
+)
+set_source_files_properties("../../images/fuel.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuel.png"
+)
+set_source_files_properties("../../images/fuel_level.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuel_level.png"
+)
+set_source_files_properties("../../images/fuelsymbol_orange.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuelsymbol_orange.png"
+)
+set_source_files_properties("../../images/left_dial.png"
+ PROPERTIES QT_RESOURCE_ALIAS "left_dial.png"
+)
+set_source_files_properties("../../images/mask_overlay.png"
+ PROPERTIES QT_RESOURCE_ALIAS "mask_overlay.png"
+)
+set_source_files_properties("../../images/middle-bkg.png"
+ PROPERTIES QT_RESOURCE_ALIAS "middle-bkg.png"
+)
+set_source_files_properties("../../images/middle-circle.png"
+ PROPERTIES QT_RESOURCE_ALIAS "middle-circle.png"
+)
+set_source_files_properties("../../images/right_dial.png"
+ PROPERTIES QT_RESOURCE_ALIAS "right_dial.png"
+)
+set_source_files_properties("../../images/top_bar.png"
+ PROPERTIES QT_RESOURCE_ALIAS "top_bar.png"
+)
+set(images_resource_files
+ "+--.png"
+ "P-R-N-D.png"
+ "dial_cursor.png"
+ "dial_cursor_right.png"
+ "dial_fill_color.png"
+ "dial_fill_color_left.png"
+ "dial_pattern.png"
+ "fuel.png"
+ "fuel_level.png"
+ "fuelsymbol_orange.png"
+ "left_dial.png"
+ "mask_overlay.png"
+ "middle-bkg.png"
+ "middle-circle.png"
+ "right_dial.png"
+ "top_bar.png"
+)
+
+qt6_add_resources(chapter3-simulation-backend "images"
+ PREFIX
+ "/images"
+ BASE
+ "../../images"
+ FILES
+ ${images_resource_files}
+)
+
+install(TARGETS chapter3-simulation-backend
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/CMakeLists.txt
new file mode 100644
index 0000000..bb2860f
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/CMakeLists.txt
@@ -0,0 +1,6 @@
+# Generated from chapter4-simulation-behavior.pro.
+
+add_subdirectory(instrument-cluster)
+add_subdirectory(frontend)
+add_subdirectory(backend_simulator)
+add_subdirectory(imports)
diff --git a/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/backend_simulator/CMakeLists.gen.txt b/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/backend_simulator/CMakeLists.gen.txt
new file mode 100644
index 0000000..f88a4cc
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/backend_simulator/CMakeLists.gen.txt
@@ -0,0 +1,2 @@
+# Generated from backend_simulator.pro.
+
diff --git a/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/frontend/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/frontend/CMakeLists.txt
new file mode 100644
index 0000000..6ee4d49
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/frontend/CMakeLists.txt
@@ -0,0 +1,46 @@
+# Generated from frontend.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(QtIviInstrumentCluster LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter4-simulation-behavior")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+)
+set_target_properties(QtIviInstrumentCluster PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_compile_definitions(QtIviInstrumentCluster PUBLIC
+ QT_BUILD_EXAMPLE_IVI_INSTRUMENTCLUSTER_LIB
+)
+
+target_link_libraries(QtIviInstrumentCluster PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+ Qt::IviCorePrivate
+ Qt::Qml
+ Qt::Quick
+)
+
+install(TARGETS QtIviInstrumentCluster
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/imports/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/imports/CMakeLists.txt
new file mode 100644
index 0000000..780e019
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/imports/CMakeLists.txt
@@ -0,0 +1,42 @@
+# Generated from imports.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(imports LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter4-simulation-behavior/imports")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+
+)
+set_target_properties(imports PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_include_directories(imports PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_link_libraries(imports PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+)
+
+install(TARGETS imports
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/instrument-cluster/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/instrument-cluster/CMakeLists.txt
new file mode 100644
index 0000000..2d1914e
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/instrument-cluster/CMakeLists.txt
@@ -0,0 +1,140 @@
+# Generated from instrument-cluster.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(chapter4-simulation-behavior LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter4-simulation-behavior")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(chapter4-simulation-behavior
+ main.cpp
+)
+set_target_properties(chapter4-simulation-behavior PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE FALSE
+)
+target_include_directories(chapter4-simulation-behavior PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_link_libraries(chapter4-simulation-behavior PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+)
+
+
+# Resources:
+set(app_resource_files
+ "Cluster.qml"
+ "Dial.qml"
+ "Fuel.qml"
+ "Label.qml"
+ "LeftDial.qml"
+ "RightDial.qml"
+ "Top.qml"
+)
+
+qt6_add_resources(chapter4-simulation-behavior "app"
+ PREFIX
+ "/"
+ FILES
+ ${app_resource_files}
+)
+set_source_files_properties("../../images/+--.png"
+ PROPERTIES QT_RESOURCE_ALIAS "+--.png"
+)
+set_source_files_properties("../../images/P-R-N-D.png"
+ PROPERTIES QT_RESOURCE_ALIAS "P-R-N-D.png"
+)
+set_source_files_properties("../../images/dial_cursor.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_cursor.png"
+)
+set_source_files_properties("../../images/dial_cursor_right.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_cursor_right.png"
+)
+set_source_files_properties("../../images/dial_fill_color.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_fill_color.png"
+)
+set_source_files_properties("../../images/dial_fill_color_left.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_fill_color_left.png"
+)
+set_source_files_properties("../../images/dial_pattern.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_pattern.png"
+)
+set_source_files_properties("../../images/fuel.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuel.png"
+)
+set_source_files_properties("../../images/fuel_level.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuel_level.png"
+)
+set_source_files_properties("../../images/fuelsymbol_orange.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuelsymbol_orange.png"
+)
+set_source_files_properties("../../images/left_dial.png"
+ PROPERTIES QT_RESOURCE_ALIAS "left_dial.png"
+)
+set_source_files_properties("../../images/mask_overlay.png"
+ PROPERTIES QT_RESOURCE_ALIAS "mask_overlay.png"
+)
+set_source_files_properties("../../images/middle-bkg.png"
+ PROPERTIES QT_RESOURCE_ALIAS "middle-bkg.png"
+)
+set_source_files_properties("../../images/middle-circle.png"
+ PROPERTIES QT_RESOURCE_ALIAS "middle-circle.png"
+)
+set_source_files_properties("../../images/right_dial.png"
+ PROPERTIES QT_RESOURCE_ALIAS "right_dial.png"
+)
+set_source_files_properties("../../images/top_bar.png"
+ PROPERTIES QT_RESOURCE_ALIAS "top_bar.png"
+)
+set(images_resource_files
+ "+--.png"
+ "P-R-N-D.png"
+ "dial_cursor.png"
+ "dial_cursor_right.png"
+ "dial_fill_color.png"
+ "dial_fill_color_left.png"
+ "dial_pattern.png"
+ "fuel.png"
+ "fuel_level.png"
+ "fuelsymbol_orange.png"
+ "left_dial.png"
+ "mask_overlay.png"
+ "middle-bkg.png"
+ "middle-circle.png"
+ "right_dial.png"
+ "top_bar.png"
+)
+
+qt6_add_resources(chapter4-simulation-behavior "images"
+ PREFIX
+ "/images"
+ BASE
+ "../../images"
+ FILES
+ ${images_resource_files}
+)
+
+install(TARGETS chapter4-simulation-behavior
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/chapter5-ipc/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter5-ipc/CMakeLists.txt
new file mode 100644
index 0000000..6bdba9a
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter5-ipc/CMakeLists.txt
@@ -0,0 +1,8 @@
+# Generated from chapter5-ipc.pro.
+
+add_subdirectory(instrument-cluster)
+add_subdirectory(frontend)
+add_subdirectory(backend_simulator)
+add_subdirectory(backend_qtro)
+add_subdirectory(imports)
+add_subdirectory(simulation_server)
diff --git a/examples/ivicore/qface-tutorial/chapter5-ipc/backend_qtro/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter5-ipc/backend_qtro/CMakeLists.txt
new file mode 100644
index 0000000..80de93e
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter5-ipc/backend_qtro/CMakeLists.txt
@@ -0,0 +1,42 @@
+# Generated from backend_qtro.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(instrumentcluster_qtro LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter5-ipc")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+
+)
+set_target_properties(instrumentcluster_qtro PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_include_directories(instrumentcluster_qtro PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_link_libraries(instrumentcluster_qtro PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+)
+
+install(TARGETS instrumentcluster_qtro
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/chapter5-ipc/backend_simulator/CMakeLists.gen.txt b/examples/ivicore/qface-tutorial/chapter5-ipc/backend_simulator/CMakeLists.gen.txt
new file mode 100644
index 0000000..f88a4cc
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter5-ipc/backend_simulator/CMakeLists.gen.txt
@@ -0,0 +1,2 @@
+# Generated from backend_simulator.pro.
+
diff --git a/examples/ivicore/qface-tutorial/chapter5-ipc/frontend/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter5-ipc/frontend/CMakeLists.txt
new file mode 100644
index 0000000..422563e
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter5-ipc/frontend/CMakeLists.txt
@@ -0,0 +1,46 @@
+# Generated from frontend.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(QtIviInstrumentCluster LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter5-ipc")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+)
+set_target_properties(QtIviInstrumentCluster PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_compile_definitions(QtIviInstrumentCluster PUBLIC
+ QT_BUILD_EXAMPLE_IVI_INSTRUMENTCLUSTER_LIB
+)
+
+target_link_libraries(QtIviInstrumentCluster PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+ Qt::IviCorePrivate
+ Qt::Qml
+ Qt::Quick
+)
+
+install(TARGETS QtIviInstrumentCluster
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/chapter5-ipc/imports/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter5-ipc/imports/CMakeLists.txt
new file mode 100644
index 0000000..03b4cc9
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter5-ipc/imports/CMakeLists.txt
@@ -0,0 +1,42 @@
+# Generated from imports.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(imports LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter5-ipc/imports")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+
+)
+set_target_properties(imports PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_include_directories(imports PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_link_libraries(imports PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+)
+
+install(TARGETS imports
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/chapter5-ipc/instrument-cluster/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter5-ipc/instrument-cluster/CMakeLists.txt
new file mode 100644
index 0000000..9582055
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter5-ipc/instrument-cluster/CMakeLists.txt
@@ -0,0 +1,140 @@
+# Generated from instrument-cluster.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(chapter5-ipc LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter5-ipc")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(chapter5-ipc
+ main.cpp
+)
+set_target_properties(chapter5-ipc PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE FALSE
+)
+target_include_directories(chapter5-ipc PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_link_libraries(chapter5-ipc PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+)
+
+
+# Resources:
+set(app_resource_files
+ "Cluster.qml"
+ "Dial.qml"
+ "Fuel.qml"
+ "Label.qml"
+ "LeftDial.qml"
+ "RightDial.qml"
+ "Top.qml"
+)
+
+qt6_add_resources(chapter5-ipc "app"
+ PREFIX
+ "/"
+ FILES
+ ${app_resource_files}
+)
+set_source_files_properties("../../images/+--.png"
+ PROPERTIES QT_RESOURCE_ALIAS "+--.png"
+)
+set_source_files_properties("../../images/P-R-N-D.png"
+ PROPERTIES QT_RESOURCE_ALIAS "P-R-N-D.png"
+)
+set_source_files_properties("../../images/dial_cursor.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_cursor.png"
+)
+set_source_files_properties("../../images/dial_cursor_right.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_cursor_right.png"
+)
+set_source_files_properties("../../images/dial_fill_color.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_fill_color.png"
+)
+set_source_files_properties("../../images/dial_fill_color_left.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_fill_color_left.png"
+)
+set_source_files_properties("../../images/dial_pattern.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_pattern.png"
+)
+set_source_files_properties("../../images/fuel.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuel.png"
+)
+set_source_files_properties("../../images/fuel_level.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuel_level.png"
+)
+set_source_files_properties("../../images/fuelsymbol_orange.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuelsymbol_orange.png"
+)
+set_source_files_properties("../../images/left_dial.png"
+ PROPERTIES QT_RESOURCE_ALIAS "left_dial.png"
+)
+set_source_files_properties("../../images/mask_overlay.png"
+ PROPERTIES QT_RESOURCE_ALIAS "mask_overlay.png"
+)
+set_source_files_properties("../../images/middle-bkg.png"
+ PROPERTIES QT_RESOURCE_ALIAS "middle-bkg.png"
+)
+set_source_files_properties("../../images/middle-circle.png"
+ PROPERTIES QT_RESOURCE_ALIAS "middle-circle.png"
+)
+set_source_files_properties("../../images/right_dial.png"
+ PROPERTIES QT_RESOURCE_ALIAS "right_dial.png"
+)
+set_source_files_properties("../../images/top_bar.png"
+ PROPERTIES QT_RESOURCE_ALIAS "top_bar.png"
+)
+set(images_resource_files
+ "+--.png"
+ "P-R-N-D.png"
+ "dial_cursor.png"
+ "dial_cursor_right.png"
+ "dial_fill_color.png"
+ "dial_fill_color_left.png"
+ "dial_pattern.png"
+ "fuel.png"
+ "fuel_level.png"
+ "fuelsymbol_orange.png"
+ "left_dial.png"
+ "mask_overlay.png"
+ "middle-bkg.png"
+ "middle-circle.png"
+ "right_dial.png"
+ "top_bar.png"
+)
+
+qt6_add_resources(chapter5-ipc "images"
+ PREFIX
+ "/images"
+ BASE
+ "../../images"
+ FILES
+ ${images_resource_files}
+)
+
+install(TARGETS chapter5-ipc
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/chapter5-ipc/simulation_server/CMakeLists.gen.txt b/examples/ivicore/qface-tutorial/chapter5-ipc/simulation_server/CMakeLists.gen.txt
new file mode 100644
index 0000000..af9334a
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter5-ipc/simulation_server/CMakeLists.gen.txt
@@ -0,0 +1,2 @@
+# Generated from simulation_server.pro.
+
diff --git a/examples/ivicore/qface-tutorial/chapter6-own-backend/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter6-own-backend/CMakeLists.txt
new file mode 100644
index 0000000..da5ff5e
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter6-own-backend/CMakeLists.txt
@@ -0,0 +1,8 @@
+# Generated from chapter6-own-backend.pro.
+
+add_subdirectory(instrument-cluster)
+add_subdirectory(frontend)
+add_subdirectory(backend_simulator)
+add_subdirectory(backend_dbus)
+add_subdirectory(imports)
+add_subdirectory(demo_server)
diff --git a/examples/ivicore/qface-tutorial/chapter6-own-backend/backend_dbus/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter6-own-backend/backend_dbus/CMakeLists.txt
new file mode 100644
index 0000000..e2b197c
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter6-own-backend/backend_dbus/CMakeLists.txt
@@ -0,0 +1,50 @@
+# Generated from backend_dbus.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(instrumentcluster_dbus LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter6-own-backend")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+find_package(Qt6 COMPONENTS DBus)
+
+qt_add_plugin(instrumentcluster_dbus)
+target_sources(instrumentcluster_dbus PRIVATE
+ ../demo_server/dbus_conversion.h
+ instrumentclusterbackend.cpp instrumentclusterbackend.h
+ instrumentclusterplugin.cpp instrumentclusterplugin.h
+)
+set_target_properties(instrumentcluster_dbus PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_include_directories(instrumentcluster_dbus PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+ ../demo_server
+)
+
+target_link_libraries(instrumentcluster_dbus PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::DBus
+ Qt::Gui
+ Qt::IviCore
+)
+
+install(TARGETS instrumentcluster_dbus
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/chapter6-own-backend/backend_simulator/CMakeLists.gen.txt b/examples/ivicore/qface-tutorial/chapter6-own-backend/backend_simulator/CMakeLists.gen.txt
new file mode 100644
index 0000000..f88a4cc
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter6-own-backend/backend_simulator/CMakeLists.gen.txt
@@ -0,0 +1,2 @@
+# Generated from backend_simulator.pro.
+
diff --git a/examples/ivicore/qface-tutorial/chapter6-own-backend/demo_server/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter6-own-backend/demo_server/CMakeLists.txt
new file mode 100644
index 0000000..f676668
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter6-own-backend/demo_server/CMakeLists.txt
@@ -0,0 +1,46 @@
+# Generated from demo_server.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(chapter6-demo-server LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter6-own-backend")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS IviCore)
+find_package(Qt6 COMPONENTS DBus)
+
+qt_add_executable(chapter6-demo-server
+ dbus_conversion.h
+ instrumentcluster.cpp instrumentcluster.h
+ main.cpp
+)
+set_target_properties(chapter6-demo-server PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE FALSE
+)
+target_include_directories(chapter6-demo-server PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_link_libraries(chapter6-demo-server PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::DBus
+ Qt::IviCore
+)
+
+install(TARGETS chapter6-demo-server
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/chapter6-own-backend/frontend/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter6-own-backend/frontend/CMakeLists.txt
new file mode 100644
index 0000000..6ca6d2a
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter6-own-backend/frontend/CMakeLists.txt
@@ -0,0 +1,46 @@
+# Generated from frontend.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(QtIviInstrumentCluster LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter6-own-backend")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+)
+set_target_properties(QtIviInstrumentCluster PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_compile_definitions(QtIviInstrumentCluster PUBLIC
+ QT_BUILD_EXAMPLE_IVI_INSTRUMENTCLUSTER_LIB
+)
+
+target_link_libraries(QtIviInstrumentCluster PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+ Qt::IviCorePrivate
+ Qt::Qml
+ Qt::Quick
+)
+
+install(TARGETS QtIviInstrumentCluster
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/chapter6-own-backend/imports/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter6-own-backend/imports/CMakeLists.txt
new file mode 100644
index 0000000..b19a870
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter6-own-backend/imports/CMakeLists.txt
@@ -0,0 +1,42 @@
+# Generated from imports.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(imports LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter6-own-backend/imports")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+
+)
+set_target_properties(imports PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_include_directories(imports PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_link_libraries(imports PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+)
+
+install(TARGETS imports
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/chapter6-own-backend/instrument-cluster/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter6-own-backend/instrument-cluster/CMakeLists.txt
new file mode 100644
index 0000000..28ae324
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/chapter6-own-backend/instrument-cluster/CMakeLists.txt
@@ -0,0 +1,140 @@
+# Generated from instrument-cluster.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(chapter6-own-backend LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter6-own-backend")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(chapter6-own-backend
+ main.cpp
+)
+set_target_properties(chapter6-own-backend PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE FALSE
+)
+target_include_directories(chapter6-own-backend PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR}/../frontend
+)
+
+target_link_libraries(chapter6-own-backend PUBLIC
+ # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+)
+
+
+# Resources:
+set(app_resource_files
+ "Cluster.qml"
+ "Dial.qml"
+ "Fuel.qml"
+ "Label.qml"
+ "LeftDial.qml"
+ "RightDial.qml"
+ "Top.qml"
+)
+
+qt6_add_resources(chapter6-own-backend "app"
+ PREFIX
+ "/"
+ FILES
+ ${app_resource_files}
+)
+set_source_files_properties("../../images/+--.png"
+ PROPERTIES QT_RESOURCE_ALIAS "+--.png"
+)
+set_source_files_properties("../../images/P-R-N-D.png"
+ PROPERTIES QT_RESOURCE_ALIAS "P-R-N-D.png"
+)
+set_source_files_properties("../../images/dial_cursor.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_cursor.png"
+)
+set_source_files_properties("../../images/dial_cursor_right.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_cursor_right.png"
+)
+set_source_files_properties("../../images/dial_fill_color.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_fill_color.png"
+)
+set_source_files_properties("../../images/dial_fill_color_left.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_fill_color_left.png"
+)
+set_source_files_properties("../../images/dial_pattern.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_pattern.png"
+)
+set_source_files_properties("../../images/fuel.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuel.png"
+)
+set_source_files_properties("../../images/fuel_level.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuel_level.png"
+)
+set_source_files_properties("../../images/fuelsymbol_orange.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuelsymbol_orange.png"
+)
+set_source_files_properties("../../images/left_dial.png"
+ PROPERTIES QT_RESOURCE_ALIAS "left_dial.png"
+)
+set_source_files_properties("../../images/mask_overlay.png"
+ PROPERTIES QT_RESOURCE_ALIAS "mask_overlay.png"
+)
+set_source_files_properties("../../images/middle-bkg.png"
+ PROPERTIES QT_RESOURCE_ALIAS "middle-bkg.png"
+)
+set_source_files_properties("../../images/middle-circle.png"
+ PROPERTIES QT_RESOURCE_ALIAS "middle-circle.png"
+)
+set_source_files_properties("../../images/right_dial.png"
+ PROPERTIES QT_RESOURCE_ALIAS "right_dial.png"
+)
+set_source_files_properties("../../images/top_bar.png"
+ PROPERTIES QT_RESOURCE_ALIAS "top_bar.png"
+)
+set(images_resource_files
+ "+--.png"
+ "P-R-N-D.png"
+ "dial_cursor.png"
+ "dial_cursor_right.png"
+ "dial_fill_color.png"
+ "dial_fill_color_left.png"
+ "dial_pattern.png"
+ "fuel.png"
+ "fuel_level.png"
+ "fuelsymbol_orange.png"
+ "left_dial.png"
+ "mask_overlay.png"
+ "middle-bkg.png"
+ "middle-circle.png"
+ "right_dial.png"
+ "top_bar.png"
+)
+
+qt6_add_resources(chapter6-own-backend "images"
+ PREFIX
+ "/images"
+ BASE
+ "../../images"
+ FILES
+ ${images_resource_files}
+)
+
+install(TARGETS chapter6-own-backend
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivicore/qface-tutorial/instrument-cluster/CMakeLists.txt b/examples/ivicore/qface-tutorial/instrument-cluster/CMakeLists.txt
new file mode 100644
index 0000000..66bdb18
--- /dev/null
+++ b/examples/ivicore/qface-tutorial/instrument-cluster/CMakeLists.txt
@@ -0,0 +1,135 @@
+# Generated from instrument-cluster.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(instrument-cluster LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/instrument-cluster")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(instrument-cluster
+ main.cpp
+)
+set_target_properties(instrument-cluster PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(instrument-cluster PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+)
+
+
+# Resources:
+set(app_resource_files
+ "Cluster.qml"
+ "Dial.qml"
+ "Fuel.qml"
+ "Label.qml"
+ "LeftDial.qml"
+ "RightDial.qml"
+ "Top.qml"
+)
+
+qt6_add_resources(instrument-cluster "app"
+ PREFIX
+ "/"
+ FILES
+ ${app_resource_files}
+)
+set_source_files_properties("../images/+--.png"
+ PROPERTIES QT_RESOURCE_ALIAS "+--.png"
+)
+set_source_files_properties("../images/P-R-N-D.png"
+ PROPERTIES QT_RESOURCE_ALIAS "P-R-N-D.png"
+)
+set_source_files_properties("../images/dial_cursor.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_cursor.png"
+)
+set_source_files_properties("../images/dial_cursor_right.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_cursor_right.png"
+)
+set_source_files_properties("../images/dial_fill_color.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_fill_color.png"
+)
+set_source_files_properties("../images/dial_fill_color_left.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_fill_color_left.png"
+)
+set_source_files_properties("../images/dial_pattern.png"
+ PROPERTIES QT_RESOURCE_ALIAS "dial_pattern.png"
+)
+set_source_files_properties("../images/fuel.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuel.png"
+)
+set_source_files_properties("../images/fuel_level.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuel_level.png"
+)
+set_source_files_properties("../images/fuelsymbol_orange.png"
+ PROPERTIES QT_RESOURCE_ALIAS "fuelsymbol_orange.png"
+)
+set_source_files_properties("../images/left_dial.png"
+ PROPERTIES QT_RESOURCE_ALIAS "left_dial.png"
+)
+set_source_files_properties("../images/mask_overlay.png"
+ PROPERTIES QT_RESOURCE_ALIAS "mask_overlay.png"
+)
+set_source_files_properties("../images/middle-bkg.png"
+ PROPERTIES QT_RESOURCE_ALIAS "middle-bkg.png"
+)
+set_source_files_properties("../images/middle-circle.png"
+ PROPERTIES QT_RESOURCE_ALIAS "middle-circle.png"
+)
+set_source_files_properties("../images/right_dial.png"
+ PROPERTIES QT_RESOURCE_ALIAS "right_dial.png"
+)
+set_source_files_properties("../images/top_bar.png"
+ PROPERTIES QT_RESOURCE_ALIAS "top_bar.png"
+)
+set(images_resource_files
+ "+--.png"
+ "P-R-N-D.png"
+ "dial_cursor.png"
+ "dial_cursor_right.png"
+ "dial_fill_color.png"
+ "dial_fill_color_left.png"
+ "dial_pattern.png"
+ "fuel.png"
+ "fuel_level.png"
+ "fuelsymbol_orange.png"
+ "left_dial.png"
+ "mask_overlay.png"
+ "middle-bkg.png"
+ "middle-circle.png"
+ "right_dial.png"
+ "top_bar.png"
+)
+
+qt6_add_resources(instrument-cluster "images"
+ PREFIX
+ "/images"
+ BASE
+ "../images"
+ FILES
+ ${images_resource_files}
+)
+
+install(TARGETS instrument-cluster
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivimedia/CMakeLists.txt b/examples/ivimedia/CMakeLists.txt
new file mode 100644
index 0000000..213845d
--- /dev/null
+++ b/examples/ivimedia/CMakeLists.txt
@@ -0,0 +1,4 @@
+# Generated from ivimedia.pro.
+
+add_subdirectory(mediaplayer)
+add_subdirectory(tuner)
diff --git a/examples/ivimedia/mediaplayer/CMakeLists.txt b/examples/ivimedia/mediaplayer/CMakeLists.txt
new file mode 100644
index 0000000..1b967af
--- /dev/null
+++ b/examples/ivimedia/mediaplayer/CMakeLists.txt
@@ -0,0 +1,56 @@
+# Generated from mediaplayer.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(mediaplayer LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivimedia/mediaplayer")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+find_package(Qt6 COMPONENTS IviCore)
+
+qt_add_executable(mediaplayer
+ main.cpp
+)
+set_target_properties(mediaplayer PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(mediaplayer PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+ Qt::Qml
+ Qt::Quick
+)
+
+
+# Resources:
+set(qml_resource_files
+ "main.qml"
+)
+
+qt6_add_resources(mediaplayer "qml"
+ PREFIX
+ "/"
+ FILES
+ ${qml_resource_files}
+)
+
+install(TARGETS mediaplayer
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivimedia/tuner/CMakeLists.txt b/examples/ivimedia/tuner/CMakeLists.txt
new file mode 100644
index 0000000..a01f1b0
--- /dev/null
+++ b/examples/ivimedia/tuner/CMakeLists.txt
@@ -0,0 +1,56 @@
+# Generated from tuner.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(tuner LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivimedia/tuner")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+find_package(Qt6 COMPONENTS IviCore)
+
+qt_add_executable(tuner
+ main.cpp
+)
+set_target_properties(tuner PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(tuner PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+ Qt::Qml
+ Qt::Quick
+)
+
+
+# Resources:
+set(qml_resource_files
+ "main.qml"
+)
+
+qt6_add_resources(tuner "qml"
+ PREFIX
+ "/"
+ FILES
+ ${qml_resource_files}
+)
+
+install(TARGETS tuner
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivivehiclefunctions/CMakeLists.txt b/examples/ivivehiclefunctions/CMakeLists.txt
new file mode 100644
index 0000000..978a084
--- /dev/null
+++ b/examples/ivivehiclefunctions/CMakeLists.txt
@@ -0,0 +1,7 @@
+# Generated from ivivehiclefunctions.pro.
+
+add_subdirectory(climate_qml)
+add_subdirectory(window_qml)
+if(TARGET Qt::Widgets)
+ add_subdirectory(climate_widget)
+endif()
diff --git a/examples/ivivehiclefunctions/climate_qml/CMakeLists.txt b/examples/ivivehiclefunctions/climate_qml/CMakeLists.txt
new file mode 100644
index 0000000..3af2b1b
--- /dev/null
+++ b/examples/ivivehiclefunctions/climate_qml/CMakeLists.txt
@@ -0,0 +1,54 @@
+# Generated from climate_qml.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(climate_qml LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivivehiclefunctions/climate_qml")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(climate_qml
+ main.cpp
+)
+set_target_properties(climate_qml PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(climate_qml PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+)
+
+
+# Resources:
+set(qml_resource_files
+ "main.qml"
+)
+
+qt6_add_resources(climate_qml "qml"
+ PREFIX
+ "/"
+ FILES
+ ${qml_resource_files}
+)
+
+install(TARGETS climate_qml
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivivehiclefunctions/climate_widget/CMakeLists.txt b/examples/ivivehiclefunctions/climate_widget/CMakeLists.txt
new file mode 100644
index 0000000..e7eb371
--- /dev/null
+++ b/examples/ivivehiclefunctions/climate_widget/CMakeLists.txt
@@ -0,0 +1,47 @@
+# Generated from climate_widget.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(climate_widget LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivivehiclefunctions/climate_widget")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS IviCore)
+
+qt_add_executable(climate_widget
+ main.cpp
+ mainwindow.cpp mainwindow.h mainwindow.ui
+)
+set_target_properties(climate_widget PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(climate_widget PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::IviCore
+ ivivehiclefunctions
+)
+
+if((QT_MAJOR_VERSION GREATER 4))
+ target_link_libraries(climate_widget PUBLIC
+ Qt::Widgets
+ )
+endif()
+
+install(TARGETS climate_widget
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/ivivehiclefunctions/window_qml/CMakeLists.txt b/examples/ivivehiclefunctions/window_qml/CMakeLists.txt
new file mode 100644
index 0000000..4af8733
--- /dev/null
+++ b/examples/ivivehiclefunctions/window_qml/CMakeLists.txt
@@ -0,0 +1,55 @@
+# Generated from window_qml.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(window_qml LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivivehiclefunctions/window_qml")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(window_qml
+ main.cpp
+)
+set_target_properties(window_qml PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(window_qml PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+)
+
+
+# Resources:
+set(qml_resource_files
+ "WindowItem.qml"
+ "main.qml"
+)
+
+qt6_add_resources(window_qml "qml"
+ PREFIX
+ "/"
+ FILES
+ ${qml_resource_files}
+)
+
+install(TARGETS window_qml
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)