summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTuomo Pelkonen <tuomo.pelkonen@gmail.com>2021-01-20 15:18:03 +0200
committerTuomo Pelkonen <tuomo.pelkonen@gmail.com>2021-01-27 13:16:44 +0200
commite2e20c9f1180476193baa32cf7a50252f35f01f3 (patch)
tree54871adbc899181d149eed413570c79b13058074
parentff193e33d80a08ca0c21fdbccc2d63e6b7400d88 (diff)
Add CMake build
Task-number: QTBUG-89299 Change-Id: I5becbf39605e566c3d32cb5e210d974df9de27da Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
-rw-r--r--.cmake.conf1
-rw-r--r--CMakeLists.txt26
-rw-r--r--examples/CMakeLists.txt5
-rw-r--r--examples/datavisualization/CMakeLists.txt29
-rw-r--r--examples/datavisualization/audiolevels/CMakeLists.txt39
-rw-r--r--examples/datavisualization/bars/CMakeLists.txt40
-rw-r--r--examples/datavisualization/custominput/CMakeLists.txt51
-rw-r--r--examples/datavisualization/customitems/CMakeLists.txt64
-rw-r--r--examples/datavisualization/customproxy/CMakeLists.txt51
-rw-r--r--examples/datavisualization/customproxy/variantbardataproxy.h2
-rw-r--r--examples/datavisualization/draggableaxes/CMakeLists.txt40
-rw-r--r--examples/datavisualization/itemmodel/CMakeLists.txt38
-rw-r--r--examples/datavisualization/qmlaxisdrag/CMakeLists.txt77
-rw-r--r--examples/datavisualization/qmlaxisformatter/CMakeLists.txt53
-rw-r--r--examples/datavisualization/qmlbars/CMakeLists.txt57
-rw-r--r--examples/datavisualization/qmlcustominput/CMakeLists.txt52
-rw-r--r--examples/datavisualization/qmllegend/CMakeLists.txt53
-rw-r--r--examples/datavisualization/qmlmultigraph/CMakeLists.txt52
-rw-r--r--examples/datavisualization/qmloscilloscope/CMakeLists.txt52
-rw-r--r--examples/datavisualization/qmlscatter/CMakeLists.txt52
-rw-r--r--examples/datavisualization/qmlspectrogram/CMakeLists.txt52
-rw-r--r--examples/datavisualization/qmlsurface/CMakeLists.txt65
-rw-r--r--examples/datavisualization/qmlsurfacelayers/CMakeLists.txt63
-rw-r--r--examples/datavisualization/rotations/CMakeLists.txt51
-rw-r--r--examples/datavisualization/scatter/CMakeLists.txt39
-rw-r--r--examples/datavisualization/surface/CMakeLists.txt53
-rw-r--r--examples/datavisualization/texturesurface/CMakeLists.txt60
-rw-r--r--examples/datavisualization/volumetric/CMakeLists.txt52
-rw-r--r--src/CMakeLists.txt4
-rw-r--r--src/datavisualization/CMakeLists.txt402
-rw-r--r--src/datavisualization/configure.cmake4
-rw-r--r--src/datavisualization/engine/drawer.cpp3
-rw-r--r--src/datavisualization/engine/engine.pri4
-rw-r--r--src/datavisualization/engine/meshes.qrc33
-rw-r--r--src/datavisualization/engine/shaders.qrc (renamed from src/datavisualization/engine/engine.qrc)31
-rw-r--r--src/datavisualization/input/qtouch3dinputhandler.cpp8
-rw-r--r--src/datavisualization/utils/shaderhelper.cpp7
-rw-r--r--src/datavisualizationqml2/CMakeLists.txt101
-rw-r--r--src/datavisualizationqml2/datavisualizationqml2_plugin.cpp85
-rw-r--r--src/datavisualizationqml2/datavisualizationqml2_plugin.h82
-rw-r--r--tests/CMakeLists.txt3
-rw-r--r--tests/auto/CMakeLists.txt6
-rw-r--r--tests/auto/cpptest/CMakeLists.txt25
-rw-r--r--tests/auto/cpptest/q3daxis-category/CMakeLists.txt7
-rw-r--r--tests/auto/cpptest/q3daxis-logvalue/CMakeLists.txt7
-rw-r--r--tests/auto/cpptest/q3daxis-value/CMakeLists.txt7
-rw-r--r--tests/auto/cpptest/q3dbars-modelproxy/CMakeLists.txt11
-rw-r--r--tests/auto/cpptest/q3dbars-proxy/CMakeLists.txt7
-rw-r--r--tests/auto/cpptest/q3dbars-series/CMakeLists.txt7
-rw-r--r--tests/auto/cpptest/q3dbars/CMakeLists.txt10
-rw-r--r--tests/auto/cpptest/q3dcustom-label/CMakeLists.txt10
-rw-r--r--tests/auto/cpptest/q3dcustom-volume/CMakeLists.txt7
-rw-r--r--tests/auto/cpptest/q3dcustom/CMakeLists.txt7
-rw-r--r--tests/auto/cpptest/q3dinput-touch/CMakeLists.txt7
-rw-r--r--tests/auto/cpptest/q3dinput/CMakeLists.txt7
-rw-r--r--tests/auto/cpptest/q3dscatter-modelproxy/CMakeLists.txt8
-rw-r--r--tests/auto/cpptest/q3dscatter-proxy/CMakeLists.txt7
-rw-r--r--tests/auto/cpptest/q3dscatter-series/CMakeLists.txt7
-rw-r--r--tests/auto/cpptest/q3dscatter/CMakeLists.txt10
-rw-r--r--tests/auto/cpptest/q3dscene-camera/CMakeLists.txt7
-rw-r--r--tests/auto/cpptest/q3dscene-light/CMakeLists.txt7
-rw-r--r--tests/auto/cpptest/q3dscene/CMakeLists.txt10
-rw-r--r--tests/auto/cpptest/q3dsurface-heightproxy/CMakeLists.txt18
-rw-r--r--tests/auto/cpptest/q3dsurface-modelproxy/CMakeLists.txt11
-rw-r--r--tests/auto/cpptest/q3dsurface-proxy/CMakeLists.txt7
-rw-r--r--tests/auto/cpptest/q3dsurface-series/CMakeLists.txt7
-rw-r--r--tests/auto/cpptest/q3dsurface/CMakeLists.txt10
-rw-r--r--tests/auto/cpptest/q3dtheme/CMakeLists.txt7
-rw-r--r--tests/auto/qmltest/CMakeLists.txt19
-rw-r--r--tests/manual/CMakeLists.txt18
-rw-r--r--tests/manual/barstest/CMakeLists.txt22
-rw-r--r--tests/manual/directional/CMakeLists.txt9
-rw-r--r--tests/manual/galaxy/CMakeLists.txt12
-rw-r--r--tests/manual/itemmodeltest/CMakeLists.txt8
-rw-r--r--tests/manual/minimalbars/CMakeLists.txt8
-rw-r--r--tests/manual/minimalscatter/CMakeLists.txt8
-rw-r--r--tests/manual/minimalsurface/CMakeLists.txt8
-rw-r--r--tests/manual/multigraphs/CMakeLists.txt20
-rw-r--r--tests/manual/qmldynamicdata/CMakeLists.txt18
-rw-r--r--tests/manual/qmlmultitest/CMakeLists.txt19
-rw-r--r--tests/manual/qmlperf/CMakeLists.txt19
-rw-r--r--tests/manual/qmlvolume/CMakeLists.txt20
-rw-r--r--tests/manual/scattertest/CMakeLists.txt9
-rw-r--r--tests/manual/surfacetest/CMakeLists.txt27
-rw-r--r--tests/manual/volumetrictest/CMakeLists.txt25
85 files changed, 2426 insertions, 120 deletions
diff --git a/.cmake.conf b/.cmake.conf
new file mode 100644
index 00000000..93054804
--- /dev/null
+++ b/.cmake.conf
@@ -0,0 +1 @@
+set(QT_REPO_MODULE_VERSION "6.0.0")
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 00000000..458a9f9f
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,26 @@
+cmake_minimum_required(VERSION 3.15.0)
+
+include(.cmake.conf)
+project(QtDataVisualization
+ VERSION "${QT_REPO_MODULE_VERSION}"
+ DESCRIPTION "Qt Data Visualization Libraries"
+ HOMEPAGE_URL "https://qt.io/"
+ LANGUAGES CXX C
+)
+
+find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core OpenGL Quick Qml)
+find_package(Qt6 ${PROJECT_VERSION} CONFIG OPTIONAL_COMPONENTS Gui Widgets OpenGLWidgets QuickTest Test)
+
+macro(assertTargets)
+ foreach(qtTarget IN ITEMS ${ARGN})
+ if(NOT TARGET Qt::${qtTarget})
+ message(NOTICE "Skipping the build as the condition \"TARGET Qt::${qtTarget}\" is not met.")
+ return()
+ endif()
+ endforeach()
+endmacro()
+
+assertTargets(Gui Widgets OpenGL Quick Qml QuickTest Test)
+
+qt_build_repo()
+
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
new file mode 100644
index 00000000..5b2f563c
--- /dev/null
+++ b/examples/CMakeLists.txt
@@ -0,0 +1,5 @@
+qt_examples_build_begin()
+
+add_subdirectory(datavisualization)
+
+qt_examples_build_end()
diff --git a/examples/datavisualization/CMakeLists.txt b/examples/datavisualization/CMakeLists.txt
new file mode 100644
index 00000000..b70b3b53
--- /dev/null
+++ b/examples/datavisualization/CMakeLists.txt
@@ -0,0 +1,29 @@
+if(TARGET Qt::Quick)
+ add_subdirectory(qmlbars)
+ add_subdirectory(qmlscatter)
+ add_subdirectory(qmlsurface)
+ add_subdirectory(qmlcustominput)
+ add_subdirectory(qmllegend)
+ add_subdirectory(qmlmultigraph)
+ add_subdirectory(qmloscilloscope)
+ add_subdirectory(qmlsurfacelayers)
+ add_subdirectory(qmlaxisformatter)
+ add_subdirectory(qmlaxisdrag)
+ add_subdirectory(qmlspectrogram)
+endif()
+if(NOT ANDROID AND NOT IOS AND NOT WINRT)
+ add_subdirectory(bars)
+ add_subdirectory(custominput)
+ add_subdirectory(customproxy)
+ add_subdirectory(itemmodel)
+ add_subdirectory(scatter)
+ add_subdirectory(surface)
+ add_subdirectory(rotations)
+ add_subdirectory(draggableaxes)
+ add_subdirectory(customitems)
+ add_subdirectory(texturesurface)
+ add_subdirectory(volumetric)
+endif()
+if(TARGET Qt::Multimedia AND NOT ANDROID AND NOT IOS AND NOT WINRT)
+ add_subdirectory(audiolevels)
+endif()
diff --git a/examples/datavisualization/audiolevels/CMakeLists.txt b/examples/datavisualization/audiolevels/CMakeLists.txt
new file mode 100644
index 00000000..8c5ba61c
--- /dev/null
+++ b/examples/datavisualization/audiolevels/CMakeLists.txt
@@ -0,0 +1,39 @@
+cmake_minimum_required(VERSION 3.14)
+project(audiolevels 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Multimedia)
+
+qt_add_executable(audiolevels
+ audiolevels.cpp audiolevels.h
+ audiolevelsiodevice.cpp audiolevelsiodevice.h
+ main.cpp
+)
+set_target_properties(audiolevels PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(audiolevels PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Multimedia
+)
+
+install(TARGETS audiolevels
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/bars/CMakeLists.txt b/examples/datavisualization/bars/CMakeLists.txt
new file mode 100644
index 00000000..d4245128
--- /dev/null
+++ b/examples/datavisualization/bars/CMakeLists.txt
@@ -0,0 +1,40 @@
+cmake_minimum_required(VERSION 3.14)
+project(bars 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Quick)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Widgets)
+
+qt_add_executable(bars
+ graphmodifier.cpp graphmodifier.h
+ main.cpp
+)
+set_target_properties(bars PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(bars PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Widgets
+ Qt::DataVisualization
+)
+
+install(TARGETS bars
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/custominput/CMakeLists.txt b/examples/datavisualization/custominput/CMakeLists.txt
new file mode 100644
index 00000000..307cc63e
--- /dev/null
+++ b/examples/datavisualization/custominput/CMakeLists.txt
@@ -0,0 +1,51 @@
+cmake_minimum_required(VERSION 3.14)
+project(custominput 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Widgets)
+
+qt_add_executable(custominput
+ custominputhandler.cpp custominputhandler.h
+ main.cpp
+ scatterdatamodifier.cpp scatterdatamodifier.h
+)
+set_target_properties(custominput PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(custominput PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Widgets
+ Qt::DataVisualization
+)
+
+set(custominput_resource_files
+ "data/data.txt"
+)
+
+qt6_add_resources(custominput "custominput"
+ PREFIX
+ "/"
+ FILES
+ ${custominput_resource_files}
+)
+
+install(TARGETS custominput
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/customitems/CMakeLists.txt b/examples/datavisualization/customitems/CMakeLists.txt
new file mode 100644
index 00000000..c4f5c7bd
--- /dev/null
+++ b/examples/datavisualization/customitems/CMakeLists.txt
@@ -0,0 +1,64 @@
+cmake_minimum_required(VERSION 3.14)
+project(customitems 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Widgets)
+
+qt_add_executable(customitems
+ customitemgraph.cpp customitemgraph.h
+ main.cpp
+)
+set_target_properties(customitems PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(customitems PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Widgets
+ Qt::DataVisualization
+)
+
+set(customitems_resource_files
+ "layer_1.png"
+ "layer_2.png"
+ "layer_3.png"
+)
+
+qt6_add_resources(customitems "customitems"
+ PREFIX
+ "/maps"
+ FILES
+ ${customitems_resource_files}
+)
+set(customitems1_resource_files
+ "oilrig.obj"
+ "pipe.obj"
+ "refinery.obj"
+)
+
+qt6_add_resources(customitems "customitems1"
+ PREFIX
+ "/items"
+ FILES
+ ${customitems1_resource_files}
+)
+
+install(TARGETS customitems
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/customproxy/CMakeLists.txt b/examples/datavisualization/customproxy/CMakeLists.txt
new file mode 100644
index 00000000..29643c4b
--- /dev/null
+++ b/examples/datavisualization/customproxy/CMakeLists.txt
@@ -0,0 +1,51 @@
+cmake_minimum_required(VERSION 3.14)
+project(customproxy 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+
+qt_add_executable(customproxy
+ main.cpp
+ rainfallgraph.cpp rainfallgraph.h
+ variantbardatamapping.cpp variantbardatamapping.h
+ variantbardataproxy.cpp variantbardataproxy.h
+ variantdataset.cpp variantdataset.h
+)
+set_target_properties(customproxy PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(customproxy PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::DataVisualization
+)
+
+set(customproxy_resource_files
+ "data/raindata.txt"
+)
+
+qt6_add_resources(customproxy "customproxy"
+ PREFIX
+ "/"
+ FILES
+ ${customproxy_resource_files}
+)
+
+install(TARGETS customproxy
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/customproxy/variantbardataproxy.h b/examples/datavisualization/customproxy/variantbardataproxy.h
index 762b5afc..7cbb85a1 100644
--- a/examples/datavisualization/customproxy/variantbardataproxy.h
+++ b/examples/datavisualization/customproxy/variantbardataproxy.h
@@ -30,7 +30,7 @@
#ifndef VARIANTBARDATAPROXY_H
#define VARIANTBARDATAPROXY_H
-#include "qbardataproxy.h"
+#include <QtDataVisualization/qbardataproxy.h>
#include "variantdataset.h"
#include "variantbardatamapping.h"
#include <QtCore/QStringList>
diff --git a/examples/datavisualization/draggableaxes/CMakeLists.txt b/examples/datavisualization/draggableaxes/CMakeLists.txt
new file mode 100644
index 00000000..6e0a4046
--- /dev/null
+++ b/examples/datavisualization/draggableaxes/CMakeLists.txt
@@ -0,0 +1,40 @@
+cmake_minimum_required(VERSION 3.14)
+project(draggableaxes 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Widgets)
+
+qt_add_executable(draggableaxes
+ axesinputhandler.cpp axesinputhandler.h
+ data.cpp data.h
+ main.cpp
+)
+set_target_properties(draggableaxes PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(draggableaxes PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Widgets
+ Qt::DataVisualization
+)
+
+install(TARGETS draggableaxes
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/itemmodel/CMakeLists.txt b/examples/datavisualization/itemmodel/CMakeLists.txt
new file mode 100644
index 00000000..dadd03a5
--- /dev/null
+++ b/examples/datavisualization/itemmodel/CMakeLists.txt
@@ -0,0 +1,38 @@
+cmake_minimum_required(VERSION 3.14)
+project(itemmodel 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Widgets)
+
+qt_add_executable(itemmodel
+ main.cpp
+)
+set_target_properties(itemmodel PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(itemmodel PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Widgets
+ Qt::DataVisualization
+)
+
+install(TARGETS itemmodel
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/qmlaxisdrag/CMakeLists.txt b/examples/datavisualization/qmlaxisdrag/CMakeLists.txt
new file mode 100644
index 00000000..f82eaf15
--- /dev/null
+++ b/examples/datavisualization/qmlaxisdrag/CMakeLists.txt
@@ -0,0 +1,77 @@
+cmake_minimum_required(VERSION 3.14)
+project(qmlaxisdrag 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(qmlaxisdrag
+ main.cpp
+)
+set_target_properties(qmlaxisdrag PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(qmlaxisdrag PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::DataVisualization
+)
+
+set(qmlaxisdrag_resource_files
+ "qml/qmlaxisdrag/main.qml"
+)
+
+qt6_add_resources(qmlaxisdrag "qmlaxisdrag"
+ PREFIX
+ "/"
+ FILES
+ ${qmlaxisdrag_resource_files}
+)
+set_source_files_properties("qml/qmlaxisdrag/cube.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "cube"
+)
+set(qmlaxisdrag1_resource_files
+ "qml/qmlaxisdrag/cube.obj"
+)
+
+qt6_add_resources(qmlaxisdrag "qmlaxisdrag1"
+ PREFIX
+ "/mesh"
+ FILES
+ ${qmlaxisdrag1_resource_files}
+)
+set_source_files_properties("qml/qmlaxisdrag/cubetexture.png"
+ PROPERTIES QT_RESOURCE_ALIAS "texture"
+)
+set(qmlaxisdrag2_resource_files
+ "qml/qmlaxisdrag/cubetexture.png"
+)
+
+qt6_add_resources(qmlaxisdrag "qmlaxisdrag2"
+ PREFIX
+ "/texture"
+ FILES
+ ${qmlaxisdrag2_resource_files}
+)
+
+install(TARGETS qmlaxisdrag
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/qmlaxisformatter/CMakeLists.txt b/examples/datavisualization/qmlaxisformatter/CMakeLists.txt
new file mode 100644
index 00000000..aacd2cde
--- /dev/null
+++ b/examples/datavisualization/qmlaxisformatter/CMakeLists.txt
@@ -0,0 +1,53 @@
+cmake_minimum_required(VERSION 3.14)
+project(qmlaxisformatter 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(qmlaxisformatter
+ customformatter.cpp customformatter.h
+ main.cpp
+)
+set_target_properties(qmlaxisformatter PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(qmlaxisformatter PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::DataVisualization
+)
+
+set(qmlaxisformatter_resource_files
+ "qml/qmlaxisformatter/Data.qml"
+ "qml/qmlaxisformatter/main.qml"
+)
+
+qt6_add_resources(qmlaxisformatter "qmlaxisformatter"
+ PREFIX
+ "/"
+ FILES
+ ${qmlaxisformatter_resource_files}
+)
+
+install(TARGETS qmlaxisformatter
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/qmlbars/CMakeLists.txt b/examples/datavisualization/qmlbars/CMakeLists.txt
new file mode 100644
index 00000000..3156e991
--- /dev/null
+++ b/examples/datavisualization/qmlbars/CMakeLists.txt
@@ -0,0 +1,57 @@
+cmake_minimum_required(VERSION 3.14)
+project(qmlbars 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(qmlbars
+ main.cpp
+)
+set_target_properties(qmlbars PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_compile_definitions(qmlbars PUBLIC
+ QT_DISABLE_DEPRECATED_BEFORE=0x050F00
+)
+
+target_link_libraries(qmlbars PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::DataVisualization
+)
+
+set(qmlbars_resource_files
+ "qml/qmlbars/Axes.qml"
+ "qml/qmlbars/Data.qml"
+ "qml/qmlbars/main.qml"
+)
+
+qt6_add_resources(qmlbars "qmlbars"
+ PREFIX
+ "/"
+ FILES
+ ${qmlbars_resource_files}
+)
+
+install(TARGETS qmlbars
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/qmlcustominput/CMakeLists.txt b/examples/datavisualization/qmlcustominput/CMakeLists.txt
new file mode 100644
index 00000000..a618c835
--- /dev/null
+++ b/examples/datavisualization/qmlcustominput/CMakeLists.txt
@@ -0,0 +1,52 @@
+cmake_minimum_required(VERSION 3.14)
+project(qmlcustominput 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(qmlcustominput
+ main.cpp
+)
+set_target_properties(qmlcustominput PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(qmlcustominput PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::DataVisualization
+)
+
+set(qmlcustominput_resource_files
+ "qml/qmlcustominput/Data.qml"
+ "qml/qmlcustominput/main.qml"
+)
+
+qt6_add_resources(qmlcustominput "qmlcustominput"
+ PREFIX
+ "/"
+ FILES
+ ${qmlcustominput_resource_files}
+)
+
+install(TARGETS qmlcustominput
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/qmllegend/CMakeLists.txt b/examples/datavisualization/qmllegend/CMakeLists.txt
new file mode 100644
index 00000000..68cbd7f3
--- /dev/null
+++ b/examples/datavisualization/qmllegend/CMakeLists.txt
@@ -0,0 +1,53 @@
+cmake_minimum_required(VERSION 3.14)
+project(qmllegend 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(qmllegend
+ main.cpp
+)
+set_target_properties(qmllegend PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(qmllegend PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::DataVisualization
+)
+
+set(qmllegend_resource_files
+ "qml/qmllegend/Data.qml"
+ "qml/qmllegend/LegendItem.qml"
+ "qml/qmllegend/main.qml"
+)
+
+qt6_add_resources(qmllegend "qmllegend"
+ PREFIX
+ "/"
+ FILES
+ ${qmllegend_resource_files}
+)
+
+install(TARGETS qmllegend
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/qmlmultigraph/CMakeLists.txt b/examples/datavisualization/qmlmultigraph/CMakeLists.txt
new file mode 100644
index 00000000..3bca854c
--- /dev/null
+++ b/examples/datavisualization/qmlmultigraph/CMakeLists.txt
@@ -0,0 +1,52 @@
+cmake_minimum_required(VERSION 3.14)
+project(qmlmultigraph 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(qmlmultigraph
+ main.cpp
+)
+set_target_properties(qmlmultigraph PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(qmlmultigraph PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::DataVisualization
+)
+
+set(qmlmultigraph_resource_files
+ "qml/qmlmultigraph/Data.qml"
+ "qml/qmlmultigraph/main.qml"
+)
+
+qt6_add_resources(qmlmultigraph "qmlmultigraph"
+ PREFIX
+ "/"
+ FILES
+ ${qmlmultigraph_resource_files}
+)
+
+install(TARGETS qmlmultigraph
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/qmloscilloscope/CMakeLists.txt b/examples/datavisualization/qmloscilloscope/CMakeLists.txt
new file mode 100644
index 00000000..9fdfbc70
--- /dev/null
+++ b/examples/datavisualization/qmloscilloscope/CMakeLists.txt
@@ -0,0 +1,52 @@
+cmake_minimum_required(VERSION 3.14)
+project(qmloscilloscope 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(qmloscilloscope
+ datasource.cpp datasource.h
+ main.cpp
+)
+set_target_properties(qmloscilloscope PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(qmloscilloscope PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::DataVisualization
+)
+
+set(qmloscilloscope_resource_files
+ "qml/qmloscilloscope/main.qml"
+)
+
+qt6_add_resources(qmloscilloscope "qmloscilloscope"
+ PREFIX
+ "/"
+ FILES
+ ${qmloscilloscope_resource_files}
+)
+
+install(TARGETS qmloscilloscope
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/qmlscatter/CMakeLists.txt b/examples/datavisualization/qmlscatter/CMakeLists.txt
new file mode 100644
index 00000000..3895f7f5
--- /dev/null
+++ b/examples/datavisualization/qmlscatter/CMakeLists.txt
@@ -0,0 +1,52 @@
+cmake_minimum_required(VERSION 3.14)
+project(qmlscatter 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(qmlscatter
+ main.cpp
+)
+set_target_properties(qmlscatter PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(qmlscatter PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::DataVisualization
+)
+
+set(qmlscatter_resource_files
+ "qml/qmlscatter/Data.qml"
+ "qml/qmlscatter/main.qml"
+)
+
+qt6_add_resources(qmlscatter "qmlscatter"
+ PREFIX
+ "/"
+ FILES
+ ${qmlscatter_resource_files}
+)
+
+install(TARGETS qmlscatter
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/qmlspectrogram/CMakeLists.txt b/examples/datavisualization/qmlspectrogram/CMakeLists.txt
new file mode 100644
index 00000000..5086ea1f
--- /dev/null
+++ b/examples/datavisualization/qmlspectrogram/CMakeLists.txt
@@ -0,0 +1,52 @@
+cmake_minimum_required(VERSION 3.14)
+project(qmlspectrogram 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(qmlspectrogram
+ main.cpp
+)
+set_target_properties(qmlspectrogram PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(qmlspectrogram PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::DataVisualization
+)
+
+set(qmlspectrogram_resource_files
+ "qml/qmlspectrogram/Data.qml"
+ "qml/qmlspectrogram/main.qml"
+)
+
+qt6_add_resources(qmlspectrogram "qmlspectrogram"
+ PREFIX
+ "/qml"
+ FILES
+ ${qmlspectrogram_resource_files}
+)
+
+install(TARGETS qmlspectrogram
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/qmlsurface/CMakeLists.txt b/examples/datavisualization/qmlsurface/CMakeLists.txt
new file mode 100644
index 00000000..71203d42
--- /dev/null
+++ b/examples/datavisualization/qmlsurface/CMakeLists.txt
@@ -0,0 +1,65 @@
+cmake_minimum_required(VERSION 3.14)
+project(qmlsurface 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(qmlsurface
+ main.cpp
+)
+set_target_properties(qmlsurface PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(qmlsurface PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::DataVisualization
+)
+
+set(qmlsurface_resource_files
+ "qml/qmlsurface/Data.qml"
+ "qml/qmlsurface/main.qml"
+)
+
+qt6_add_resources(qmlsurface "qmlsurface"
+ PREFIX
+ "/qml"
+ FILES
+ ${qmlsurface_resource_files}
+)
+set_source_files_properties("heightmap.png"
+ PROPERTIES QT_RESOURCE_ALIAS "image"
+)
+set(qmlsurface1_resource_files
+ "heightmap.png"
+)
+
+qt6_add_resources(qmlsurface "qmlsurface1"
+ PREFIX
+ "/heightmaps"
+ FILES
+ ${qmlsurface1_resource_files}
+)
+
+install(TARGETS qmlsurface
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/qmlsurfacelayers/CMakeLists.txt b/examples/datavisualization/qmlsurfacelayers/CMakeLists.txt
new file mode 100644
index 00000000..6287ccfd
--- /dev/null
+++ b/examples/datavisualization/qmlsurfacelayers/CMakeLists.txt
@@ -0,0 +1,63 @@
+cmake_minimum_required(VERSION 3.14)
+project(qmlsurfacelayers 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+
+qt_add_executable(qmlsurfacelayers
+ main.cpp
+)
+set_target_properties(qmlsurfacelayers PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(qmlsurfacelayers PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::DataVisualization
+)
+
+set(qmlsurfacelayers_resource_files
+ "qml/qmlsurfacelayers/main.qml"
+)
+
+qt6_add_resources(qmlsurfacelayers "qmlsurfacelayers"
+ PREFIX
+ "/"
+ FILES
+ ${qmlsurfacelayers_resource_files}
+)
+set(qmlsurfacelayers1_resource_files
+ "layer_1.png"
+ "layer_2.png"
+ "layer_3.png"
+)
+
+qt6_add_resources(qmlsurfacelayers "qmlsurfacelayers1"
+ PREFIX
+ "/heightmaps"
+ FILES
+ ${qmlsurfacelayers1_resource_files}
+)
+
+install(TARGETS qmlsurfacelayers
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/rotations/CMakeLists.txt b/examples/datavisualization/rotations/CMakeLists.txt
new file mode 100644
index 00000000..a987b8bb
--- /dev/null
+++ b/examples/datavisualization/rotations/CMakeLists.txt
@@ -0,0 +1,51 @@
+cmake_minimum_required(VERSION 3.14)
+project(rotations 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Widgets)
+
+qt_add_executable(rotations
+ main.cpp
+ scatterdatamodifier.cpp scatterdatamodifier.h
+)
+set_target_properties(rotations PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(rotations PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Widgets
+ Qt::DataVisualization
+)
+
+set(rotations_resource_files
+ "mesh/largesphere.obj"
+ "mesh/narrowarrow.obj"
+)
+
+qt6_add_resources(rotations "rotations"
+ PREFIX
+ "/"
+ FILES
+ ${rotations_resource_files}
+)
+
+install(TARGETS rotations
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/scatter/CMakeLists.txt b/examples/datavisualization/scatter/CMakeLists.txt
new file mode 100644
index 00000000..c54c7fbd
--- /dev/null
+++ b/examples/datavisualization/scatter/CMakeLists.txt
@@ -0,0 +1,39 @@
+cmake_minimum_required(VERSION 3.14)
+project(scatter 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Widgets)
+
+qt_add_executable(scatter
+ main.cpp
+ scatterdatamodifier.cpp scatterdatamodifier.h
+)
+set_target_properties(scatter PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(scatter PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Widgets
+ Qt::DataVisualization
+)
+
+install(TARGETS scatter
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/surface/CMakeLists.txt b/examples/datavisualization/surface/CMakeLists.txt
new file mode 100644
index 00000000..50512010
--- /dev/null
+++ b/examples/datavisualization/surface/CMakeLists.txt
@@ -0,0 +1,53 @@
+cmake_minimum_required(VERSION 3.14)
+project(surface 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Widgets)
+
+qt_add_executable(surface
+ main.cpp
+ surfacegraph.cpp surfacegraph.h
+)
+set_target_properties(surface PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(surface PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Widgets
+ Qt::DataVisualization
+)
+
+set_source_files_properties("mountain.png"
+ PROPERTIES QT_RESOURCE_ALIAS "mountain"
+)
+set(surface_resource_files
+ "mountain.png"
+)
+
+qt6_add_resources(surface "surface"
+ PREFIX
+ "/maps"
+ FILES
+ ${surface_resource_files}
+)
+
+install(TARGETS surface
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/texturesurface/CMakeLists.txt b/examples/datavisualization/texturesurface/CMakeLists.txt
new file mode 100644
index 00000000..ebeb0cfc
--- /dev/null
+++ b/examples/datavisualization/texturesurface/CMakeLists.txt
@@ -0,0 +1,60 @@
+cmake_minimum_required(VERSION 3.14)
+project(texturesurface 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Widgets)
+
+qt_add_executable(texturesurface
+ custominputhandler.cpp custominputhandler.h
+ highlightseries.cpp highlightseries.h
+ main.cpp
+ surfacegraph.cpp surfacegraph.h
+ topographicseries.cpp topographicseries.h
+)
+set_target_properties(texturesurface PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(texturesurface PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Widgets
+ Qt::DataVisualization
+)
+
+set_source_files_properties("maptexture.jpg"
+ PROPERTIES QT_RESOURCE_ALIAS "maptexture"
+)
+set_source_files_properties("topography.png"
+ PROPERTIES QT_RESOURCE_ALIAS "topography"
+)
+set(texturedsurface_resource_files
+ "maptexture.jpg"
+ "topography.png"
+)
+
+qt6_add_resources(texturesurface "texturedsurface"
+ PREFIX
+ "/maps"
+ FILES
+ ${texturedsurface_resource_files}
+)
+
+install(TARGETS texturesurface
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/datavisualization/volumetric/CMakeLists.txt b/examples/datavisualization/volumetric/CMakeLists.txt
new file mode 100644
index 00000000..36c270c6
--- /dev/null
+++ b/examples/datavisualization/volumetric/CMakeLists.txt
@@ -0,0 +1,52 @@
+cmake_minimum_required(VERSION 3.14)
+project(volumetric 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}")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Widgets)
+
+qt_add_executable(volumetric
+ main.cpp
+ volumetric.cpp volumetric.h
+)
+set_target_properties(volumetric PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(volumetric PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Widgets
+ Qt::DataVisualization
+)
+
+set(volumetric_resource_files
+ "layer_ground.png"
+ "layer_magma.png"
+ "layer_water.png"
+)
+
+qt6_add_resources(volumetric "volumetric"
+ PREFIX
+ "/heightmaps"
+ FILES
+ ${volumetric_resource_files}
+)
+
+install(TARGETS volumetric
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 00000000..0d520eca
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,4 @@
+add_subdirectory(datavisualization)
+if(TARGET Qt::Quick)
+ add_subdirectory(datavisualizationqml2)
+endif()
diff --git a/src/datavisualization/CMakeLists.txt b/src/datavisualization/CMakeLists.txt
new file mode 100644
index 00000000..2496aa69
--- /dev/null
+++ b/src/datavisualization/CMakeLists.txt
@@ -0,0 +1,402 @@
+qt_internal_add_module(DataVisualization
+ TARGET_PRODUCT "Qt Data Visualization (Qt $$QT_VERSION)"
+ TARGET_DESCRIPTION "3D Data Visualization component for Qt."
+ SOURCES
+ axis/qabstract3daxis.cpp axis/qabstract3daxis.h axis/qabstract3daxis_p.h
+ axis/qcategory3daxis.cpp axis/qcategory3daxis.h axis/qcategory3daxis_p.h
+ axis/qlogvalue3daxisformatter.cpp axis/qlogvalue3daxisformatter.h axis/qlogvalue3daxisformatter_p.h
+ axis/qvalue3daxis.cpp axis/qvalue3daxis.h axis/qvalue3daxis_p.h
+ axis/qvalue3daxisformatter.cpp axis/qvalue3daxisformatter.h axis/qvalue3daxisformatter_p.h
+ data/abstractitemmodelhandler.cpp data/abstractitemmodelhandler_p.h
+ data/abstractrenderitem.cpp data/abstractrenderitem_p.h
+ data/baritemmodelhandler.cpp data/baritemmodelhandler_p.h
+ data/barrenderitem.cpp data/barrenderitem_p.h
+ data/customrenderitem.cpp data/customrenderitem_p.h
+ data/labelitem.cpp data/labelitem_p.h
+ data/qabstract3dseries.cpp data/qabstract3dseries.h data/qabstract3dseries_p.h
+ data/qabstractdataproxy.cpp data/qabstractdataproxy.h data/qabstractdataproxy_p.h
+ data/qbar3dseries.cpp data/qbar3dseries.h data/qbar3dseries_p.h
+ data/qbardataitem.cpp data/qbardataitem.h data/qbardataitem_p.h
+ data/qbardataproxy.cpp data/qbardataproxy.h data/qbardataproxy_p.h
+ data/qcustom3ditem.cpp data/qcustom3ditem.h data/qcustom3ditem_p.h
+ data/qcustom3dlabel.cpp data/qcustom3dlabel.h data/qcustom3dlabel_p.h
+ data/qcustom3dvolume.cpp data/qcustom3dvolume.h data/qcustom3dvolume_p.h
+ data/qheightmapsurfacedataproxy.cpp data/qheightmapsurfacedataproxy.h data/qheightmapsurfacedataproxy_p.h
+ data/qitemmodelbardataproxy.cpp data/qitemmodelbardataproxy.h data/qitemmodelbardataproxy_p.h
+ data/qitemmodelscatterdataproxy.cpp data/qitemmodelscatterdataproxy.h data/qitemmodelscatterdataproxy_p.h
+ data/qitemmodelsurfacedataproxy.cpp data/qitemmodelsurfacedataproxy.h data/qitemmodelsurfacedataproxy_p.h
+ data/qscatter3dseries.cpp data/qscatter3dseries.h data/qscatter3dseries_p.h
+ data/qscatterdataitem.cpp data/qscatterdataitem.h data/qscatterdataitem_p.h
+ data/qscatterdataproxy.cpp data/qscatterdataproxy.h data/qscatterdataproxy_p.h
+ data/qsurface3dseries.cpp data/qsurface3dseries.h data/qsurface3dseries_p.h
+ data/qsurfacedataitem.cpp data/qsurfacedataitem.h data/qsurfacedataitem_p.h
+ data/qsurfacedataproxy.cpp data/qsurfacedataproxy.h data/qsurfacedataproxy_p.h
+ data/scatteritemmodelhandler.cpp data/scatteritemmodelhandler_p.h
+ data/scatterrenderitem.cpp data/scatterrenderitem_p.h
+ data/surfaceitemmodelhandler.cpp data/surfaceitemmodelhandler_p.h
+ engine/abstract3dcontroller.cpp engine/abstract3dcontroller_p.h
+ engine/abstract3drenderer.cpp engine/abstract3drenderer_p.h
+ engine/axisrendercache.cpp engine/axisrendercache_p.h
+ engine/bars3dcontroller.cpp engine/bars3dcontroller_p.h
+ engine/bars3drenderer.cpp engine/bars3drenderer_p.h
+ engine/barseriesrendercache.cpp engine/barseriesrendercache_p.h
+ engine/drawer.cpp engine/drawer_p.h
+ engine/q3dbars.cpp engine/q3dbars.h engine/q3dbars_p.h
+ engine/q3dcamera.cpp engine/q3dcamera.h engine/q3dcamera_p.h
+ engine/q3dlight.cpp engine/q3dlight.h engine/q3dlight_p.h
+ engine/q3dobject.cpp engine/q3dobject.h engine/q3dobject_p.h
+ engine/q3dscatter.cpp engine/q3dscatter.h engine/q3dscatter_p.h
+ engine/q3dscene.cpp engine/q3dscene.h engine/q3dscene_p.h
+ engine/q3dsurface.cpp engine/q3dsurface.h engine/q3dsurface_p.h
+ engine/qabstract3dgraph.cpp engine/qabstract3dgraph.h engine/qabstract3dgraph_p.h
+ engine/scatter3dcontroller.cpp engine/scatter3dcontroller_p.h
+ engine/scatter3drenderer.cpp engine/scatter3drenderer_p.h
+ engine/scatterseriesrendercache.cpp engine/scatterseriesrendercache_p.h
+ engine/selectionpointer.cpp engine/selectionpointer_p.h
+ engine/seriesrendercache.cpp engine/seriesrendercache_p.h
+ engine/surface3dcontroller.cpp engine/surface3dcontroller_p.h
+ engine/surface3drenderer.cpp engine/surface3drenderer_p.h
+ engine/surfaceseriesrendercache.cpp engine/surfaceseriesrendercache_p.h
+ global/datavisualizationglobal_p.h
+ global/qdatavisualizationglobal.h
+ input/q3dinputhandler.cpp input/q3dinputhandler.h input/q3dinputhandler_p.h
+ input/qabstract3dinputhandler.cpp input/qabstract3dinputhandler.h input/qabstract3dinputhandler_p.h
+ input/qtouch3dinputhandler.cpp input/qtouch3dinputhandler.h input/qtouch3dinputhandler_p.h
+ theme/q3dtheme.cpp theme/q3dtheme.h theme/q3dtheme_p.h
+ theme/thememanager.cpp theme/thememanager_p.h
+ utils/abstractobjecthelper.cpp utils/abstractobjecthelper_p.h
+ utils/camerahelper.cpp utils/camerahelper_p.h
+ utils/meshloader.cpp utils/meshloader_p.h
+ utils/objecthelper.cpp utils/objecthelper_p.h
+ utils/qutils.h
+ utils/scatterobjectbufferhelper.cpp utils/scatterobjectbufferhelper_p.h
+ utils/scatterpointbufferhelper.cpp utils/scatterpointbufferhelper_p.h
+ utils/shaderhelper.cpp utils/shaderhelper_p.h
+ utils/surfaceobject.cpp utils/surfaceobject_p.h
+ utils/texturehelper.cpp utils/texturehelper_p.h
+ utils/utils.cpp utils/utils_p.h
+ utils/vertexindexer.cpp utils/vertexindexer_p.h
+ INCLUDE_DIRECTORIES
+ axis
+ data
+ engine
+ global
+ input
+ theme
+ utils
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::OpenGL
+ Qt::Qml
+ Qt::Quick
+)
+
+set_source_files_properties("engine/meshes/arrowFlat.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "arrow"
+)
+set_source_files_properties("engine/meshes/arrowSmooth.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "arrowSmooth"
+)
+set_source_files_properties("engine/meshes/background.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "background"
+)
+set_source_files_properties("engine/meshes/backgroundNoFloor.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "backgroundNoFloor"
+)
+set_source_files_properties("engine/meshes/barFilledFlat.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "bevelbarFull"
+)
+set_source_files_properties("engine/meshes/barFilledSmooth.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "bevelbarSmoothFull"
+)
+set_source_files_properties("engine/meshes/barFlat.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "bevelbar"
+)
+set_source_files_properties("engine/meshes/barSmooth.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "bevelbarSmooth"
+)
+set_source_files_properties("engine/meshes/coneFilledFlat.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "coneFull"
+)
+set_source_files_properties("engine/meshes/coneFilledSmooth.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "coneSmoothFull"
+)
+set_source_files_properties("engine/meshes/coneFlat.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "cone"
+)
+set_source_files_properties("engine/meshes/coneSmooth.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "coneSmooth"
+)
+set_source_files_properties("engine/meshes/cubeFilledFlat.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "barFull"
+)
+set_source_files_properties("engine/meshes/cubeFilledSmooth.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "barSmoothFull"
+)
+set_source_files_properties("engine/meshes/cubeFlat.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "bar"
+)
+set_source_files_properties("engine/meshes/cubeSmooth.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "barSmooth"
+)
+set_source_files_properties("engine/meshes/cylinderFilledFlat.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "cylinderFull"
+)
+set_source_files_properties("engine/meshes/cylinderFilledSmooth.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "cylinderSmoothFull"
+)
+set_source_files_properties("engine/meshes/cylinderFlat.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "cylinder"
+)
+set_source_files_properties("engine/meshes/cylinderSmooth.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "cylinderSmooth"
+)
+set_source_files_properties("engine/meshes/minimalFlat.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "minimal"
+)
+set_source_files_properties("engine/meshes/minimalSmooth.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "minimalSmooth"
+)
+set_source_files_properties("engine/meshes/plane.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "plane"
+)
+set_source_files_properties("engine/meshes/pyramidFilledFlat.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "pyramidFull"
+)
+set_source_files_properties("engine/meshes/pyramidFilledSmooth.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "pyramidSmoothFull"
+)
+set_source_files_properties("engine/meshes/pyramidFlat.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "pyramid"
+)
+set_source_files_properties("engine/meshes/pyramidSmooth.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "pyramidSmooth"
+)
+set_source_files_properties("engine/meshes/sphere.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "sphere"
+)
+set_source_files_properties("engine/meshes/sphereSmooth.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "sphereSmooth"
+)
+set(mesh_resource_files
+ "arrowFlat.obj"
+ "arrowSmooth.obj"
+ "background.obj"
+ "backgroundNoFloor.obj"
+ "barFilledFlat.obj"
+ "barFilledSmooth.obj"
+ "barFlat.obj"
+ "barSmooth.obj"
+ "coneFilledFlat.obj"
+ "coneFilledSmooth.obj"
+ "coneFlat.obj"
+ "coneSmooth.obj"
+ "cubeFilledFlat.obj"
+ "cubeFilledSmooth.obj"
+ "cubeFlat.obj"
+ "cubeSmooth.obj"
+ "cylinderFilledFlat.obj"
+ "cylinderFilledSmooth.obj"
+ "cylinderFlat.obj"
+ "cylinderSmooth.obj"
+ "minimalFlat.obj"
+ "minimalSmooth.obj"
+ "plane.obj"
+ "pyramidFilledFlat.obj"
+ "pyramidFilledSmooth.obj"
+ "pyramidFlat.obj"
+ "pyramidSmooth.obj"
+ "sphere.obj"
+ "sphereSmooth.obj"
+)
+
+set_source_files_properties("engine/shaders/3dsliceframes.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragment3DSliceFrames"
+)
+set_source_files_properties("engine/shaders/colorOnY.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentColorOnY"
+)
+set_source_files_properties("engine/shaders/colorOnY_ES2.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentColorOnYES2"
+)
+set_source_files_properties("engine/shaders/default.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragment"
+)
+set_source_files_properties("engine/shaders/default.vert"
+ PROPERTIES QT_RESOURCE_ALIAS "vertex"
+)
+set_source_files_properties("engine/shaders/defaultNoMatrices.vert"
+ PROPERTIES QT_RESOURCE_ALIAS "vertexNoMatrices"
+)
+set_source_files_properties("engine/shaders/default_ES2.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentES2"
+)
+set_source_files_properties("engine/shaders/depth.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentDepth"
+)
+set_source_files_properties("engine/shaders/depth.vert"
+ PROPERTIES QT_RESOURCE_ALIAS "vertexDepth"
+)
+set_source_files_properties("engine/shaders/label.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentLabel"
+)
+set_source_files_properties("engine/shaders/label.vert"
+ PROPERTIES QT_RESOURCE_ALIAS "vertexLabel"
+)
+set_source_files_properties("engine/shaders/plainColor.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentPlainColor"
+)
+set_source_files_properties("engine/shaders/plainColor.vert"
+ PROPERTIES QT_RESOURCE_ALIAS "vertexPlainColor"
+)
+set_source_files_properties("engine/shaders/point_ES2.vert"
+ PROPERTIES QT_RESOURCE_ALIAS "vertexPointES2"
+)
+set_source_files_properties("engine/shaders/point_ES2_UV.vert"
+ PROPERTIES QT_RESOURCE_ALIAS "vertexPointES2_UV"
+)
+set_source_files_properties("engine/shaders/position.vert"
+ PROPERTIES QT_RESOURCE_ALIAS "vertexPosition"
+)
+set_source_files_properties("engine/shaders/positionmap.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentPositionMap"
+)
+set_source_files_properties("engine/shaders/shadow.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentShadow"
+)
+set_source_files_properties("engine/shaders/shadow.vert"
+ PROPERTIES QT_RESOURCE_ALIAS "vertexShadow"
+)
+set_source_files_properties("engine/shaders/shadowNoMatrices.vert"
+ PROPERTIES QT_RESOURCE_ALIAS "vertexShadowNoMatrices"
+)
+set_source_files_properties("engine/shaders/shadowNoTex.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentShadowNoTex"
+)
+set_source_files_properties("engine/shaders/shadowNoTexColorOnY.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentShadowNoTexColorOnY"
+)
+set_source_files_properties("engine/shaders/surface.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentSurface"
+)
+set_source_files_properties("engine/shaders/surfaceFlat.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentSurfaceFlat"
+)
+set_source_files_properties("engine/shaders/surfaceFlat.vert"
+ PROPERTIES QT_RESOURCE_ALIAS "vertexSurfaceFlat"
+)
+set_source_files_properties("engine/shaders/surfaceShadowFlat.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentSurfaceShadowFlat"
+)
+set_source_files_properties("engine/shaders/surfaceShadowFlat.vert"
+ PROPERTIES QT_RESOURCE_ALIAS "vertexSurfaceShadowFlat"
+)
+set_source_files_properties("engine/shaders/surfaceShadowNoTex.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentSurfaceShadowNoTex"
+)
+set_source_files_properties("engine/shaders/surfaceTexturedFlat.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentSurfaceTexturedFlat"
+)
+set_source_files_properties("engine/shaders/surfaceTexturedShadow.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentTexturedSurfaceShadow"
+)
+set_source_files_properties("engine/shaders/surfaceTexturedShadowFlat.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentTexturedSurfaceShadowFlat"
+)
+set_source_files_properties("engine/shaders/surface_ES2.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentSurfaceES2"
+)
+set_source_files_properties("engine/shaders/texture.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentTexture"
+)
+set_source_files_properties("engine/shaders/texture.vert"
+ PROPERTIES QT_RESOURCE_ALIAS "vertexTexture"
+)
+set_source_files_properties("engine/shaders/texture3d.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentTexture3D"
+)
+set_source_files_properties("engine/shaders/texture3d.vert"
+ PROPERTIES QT_RESOURCE_ALIAS "vertexTexture3D"
+)
+set_source_files_properties("engine/shaders/texture3dlowdef.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentTexture3DLowDef"
+)
+set_source_files_properties("engine/shaders/texture3dslice.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentTexture3DSlice"
+)
+set_source_files_properties("engine/shaders/texture_ES2.frag"
+ PROPERTIES QT_RESOURCE_ALIAS "fragmentTextureES2"
+)
+set(shader_resource_files
+ "3dsliceframes.frag"
+ "colorOnY.frag"
+ "colorOnY_ES2.frag"
+ "default.frag"
+ "default.vert"
+ "defaultNoMatrices.vert"
+ "default_ES2.frag"
+ "depth.frag"
+ "depth.vert"
+ "label.frag"
+ "label.vert"
+ "plainColor.frag"
+ "plainColor.vert"
+ "point_ES2.vert"
+ "point_ES2_UV.vert"
+ "position.vert"
+ "positionmap.frag"
+ "shadow.frag"
+ "shadow.vert"
+ "shadowNoMatrices.vert"
+ "shadowNoTex.frag"
+ "shadowNoTexColorOnY.frag"
+ "surface.frag"
+ "surfaceFlat.frag"
+ "surfaceFlat.vert"
+ "surfaceShadowFlat.frag"
+ "surfaceShadowFlat.vert"
+ "surfaceShadowNoTex.frag"
+ "surfaceTexturedFlat.frag"
+ "surfaceTexturedShadow.frag"
+ "surfaceTexturedShadowFlat.frag"
+ "surface_ES2.frag"
+ "texture.frag"
+ "texture.vert"
+ "texture3d.frag"
+ "texture3d.vert"
+ "texture3dlowdef.frag"
+ "texture3dslice.frag"
+ "texture_ES2.frag"
+)
+
+qt_internal_add_resource(DataVisualization "shaders"
+ PREFIX
+ "/shaders"
+ BASE
+ "engine/shaders"
+ FILES
+ ${shader_resource_files}
+)
+
+qt_internal_add_resource(DataVisualization "meshes"
+ PREFIX
+ "/defaultMeshes"
+ BASE
+ "engine/meshes"
+ FILES
+ ${mesh_resource_files}
+)
+
+qt_internal_extend_target(DataVisualization CONDITION MACOS
+ LIBRARIES
+ Qt::GuiPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ PRIVATE_MODULE_INTERFACE
+ Qt::GuiPrivate
+)
+qt_internal_add_docs(DataVisualization
+ doc/qtdatavis3d.qdocconf
+)
+
diff --git a/src/datavisualization/configure.cmake b/src/datavisualization/configure.cmake
new file mode 100644
index 00000000..aff14785
--- /dev/null
+++ b/src/datavisualization/configure.cmake
@@ -0,0 +1,4 @@
+qt_extra_definition("QT_VERSION_STR" "\"${PROJECT_VERSION}\"" PUBLIC)
+qt_extra_definition("QT_VERSION_MAJOR" ${PROJECT_VERSION_MAJOR} PUBLIC)
+qt_extra_definition("QT_VERSION_MINOR" ${PROJECT_VERSION_MINOR} PUBLIC)
+qt_extra_definition("QT_VERSION_PATCH" ${PROJECT_VERSION_PATCH} PUBLIC)
diff --git a/src/datavisualization/engine/drawer.cpp b/src/datavisualization/engine/drawer.cpp
index 8d7cdf6e..4e5faada 100644
--- a/src/datavisualization/engine/drawer.cpp
+++ b/src/datavisualization/engine/drawer.cpp
@@ -44,7 +44,8 @@ class StaticLibInitializer
public:
StaticLibInitializer()
{
- Q_INIT_RESOURCE(engine);
+ Q_INIT_RESOURCE(shaders);
+ Q_INIT_RESOURCE(meshes);
}
};
StaticLibInitializer staticLibInitializer;
diff --git a/src/datavisualization/engine/engine.pri b/src/datavisualization/engine/engine.pri
index 60703e96..dd177151 100644
--- a/src/datavisualization/engine/engine.pri
+++ b/src/datavisualization/engine/engine.pri
@@ -54,7 +54,9 @@ SOURCES += $$PWD/qabstract3dgraph.cpp \
$$PWD/barseriesrendercache.cpp \
$$PWD/scatterseriesrendercache.cpp
-RESOURCES += engine/engine.qrc
+RESOURCES += \
+ engine/meshes.qrc \
+ engine/shaders.qrc
OTHER_FILES += $$PWD/meshes/* $$PWD/shaders/*
diff --git a/src/datavisualization/engine/meshes.qrc b/src/datavisualization/engine/meshes.qrc
new file mode 100644
index 00000000..5cca4c41
--- /dev/null
+++ b/src/datavisualization/engine/meshes.qrc
@@ -0,0 +1,33 @@
+<RCC>
+ <qresource prefix="/defaultMeshes">
+ <file alias="cone">meshes/coneFlat.obj</file>
+ <file alias="coneSmooth">meshes/coneSmooth.obj</file>
+ <file alias="pyramid">meshes/pyramidFlat.obj</file>
+ <file alias="pyramidSmooth">meshes/pyramidSmooth.obj</file>
+ <file alias="bar">meshes/cubeFlat.obj</file>
+ <file alias="barSmooth">meshes/cubeSmooth.obj</file>
+ <file alias="cylinder">meshes/cylinderFlat.obj</file>
+ <file alias="cylinderSmooth">meshes/cylinderSmooth.obj</file>
+ <file alias="background">meshes/background.obj</file>
+ <file alias="plane">meshes/plane.obj</file>
+ <file alias="sphere">meshes/sphere.obj</file>
+ <file alias="sphereSmooth">meshes/sphereSmooth.obj</file>
+ <file alias="bevelbar">meshes/barFlat.obj</file>
+ <file alias="bevelbarSmooth">meshes/barSmooth.obj</file>
+ <file alias="coneFull">meshes/coneFilledFlat.obj</file>
+ <file alias="coneSmoothFull">meshes/coneFilledSmooth.obj</file>
+ <file alias="cylinderFull">meshes/cylinderFilledFlat.obj</file>
+ <file alias="cylinderSmoothFull">meshes/cylinderFilledSmooth.obj</file>
+ <file alias="pyramidFull">meshes/pyramidFilledFlat.obj</file>
+ <file alias="pyramidSmoothFull">meshes/pyramidFilledSmooth.obj</file>
+ <file alias="bevelbarFull">meshes/barFilledFlat.obj</file>
+ <file alias="bevelbarSmoothFull">meshes/barFilledSmooth.obj</file>
+ <file alias="barFull">meshes/cubeFilledFlat.obj</file>
+ <file alias="barSmoothFull">meshes/cubeFilledSmooth.obj</file>
+ <file alias="backgroundNoFloor">meshes/backgroundNoFloor.obj</file>
+ <file alias="minimal">meshes/minimalFlat.obj</file>
+ <file alias="minimalSmooth">meshes/minimalSmooth.obj</file>
+ <file alias="arrow">meshes/arrowFlat.obj</file>
+ <file alias="arrowSmooth">meshes/arrowSmooth.obj</file>
+ </qresource>
+</RCC>
diff --git a/src/datavisualization/engine/engine.qrc b/src/datavisualization/engine/shaders.qrc
index 0ef169c9..452f303e 100644
--- a/src/datavisualization/engine/engine.qrc
+++ b/src/datavisualization/engine/shaders.qrc
@@ -1,35 +1,4 @@
<RCC>
- <qresource prefix="/defaultMeshes">
- <file alias="cone">meshes/coneFlat.obj</file>
- <file alias="coneSmooth">meshes/coneSmooth.obj</file>
- <file alias="pyramid">meshes/pyramidFlat.obj</file>
- <file alias="pyramidSmooth">meshes/pyramidSmooth.obj</file>
- <file alias="bar">meshes/cubeFlat.obj</file>
- <file alias="barSmooth">meshes/cubeSmooth.obj</file>
- <file alias="cylinder">meshes/cylinderFlat.obj</file>
- <file alias="cylinderSmooth">meshes/cylinderSmooth.obj</file>
- <file alias="background">meshes/background.obj</file>
- <file alias="plane">meshes/plane.obj</file>
- <file alias="sphere">meshes/sphere.obj</file>
- <file alias="sphereSmooth">meshes/sphereSmooth.obj</file>
- <file alias="bevelbar">meshes/barFlat.obj</file>
- <file alias="bevelbarSmooth">meshes/barSmooth.obj</file>
- <file alias="coneFull">meshes/coneFilledFlat.obj</file>
- <file alias="coneSmoothFull">meshes/coneFilledSmooth.obj</file>
- <file alias="cylinderFull">meshes/cylinderFilledFlat.obj</file>
- <file alias="cylinderSmoothFull">meshes/cylinderFilledSmooth.obj</file>
- <file alias="pyramidFull">meshes/pyramidFilledFlat.obj</file>
- <file alias="pyramidSmoothFull">meshes/pyramidFilledSmooth.obj</file>
- <file alias="bevelbarFull">meshes/barFilledFlat.obj</file>
- <file alias="bevelbarSmoothFull">meshes/barFilledSmooth.obj</file>
- <file alias="barFull">meshes/cubeFilledFlat.obj</file>
- <file alias="barSmoothFull">meshes/cubeFilledSmooth.obj</file>
- <file alias="backgroundNoFloor">meshes/backgroundNoFloor.obj</file>
- <file alias="minimal">meshes/minimalFlat.obj</file>
- <file alias="minimalSmooth">meshes/minimalSmooth.obj</file>
- <file alias="arrow">meshes/arrowFlat.obj</file>
- <file alias="arrowSmooth">meshes/arrowSmooth.obj</file>
- </qresource>
<qresource prefix="/shaders">
<file alias="fragment">shaders/default.frag</file>
<file alias="vertex">shaders/default.vert</file>
diff --git a/src/datavisualization/input/qtouch3dinputhandler.cpp b/src/datavisualization/input/qtouch3dinputhandler.cpp
index 7d5d5d15..ce059dd1 100644
--- a/src/datavisualization/input/qtouch3dinputhandler.cpp
+++ b/src/datavisualization/input/qtouch3dinputhandler.cpp
@@ -119,15 +119,15 @@ QTouch3DInputHandler::~QTouch3DInputHandler()
void QTouch3DInputHandler::touchEvent(QTouchEvent *event)
{
QList<QTouchEvent::TouchPoint> points;
- points = event->touchPoints();
+ points = event->points();
if (!scene()->isSlicingActive() && points.count() == 2) {
d_ptr->m_holdTimer->stop();
- QPointF distance = points.at(0).pos() - points.at(1).pos();
- QPoint midPoint = ((points.at(0).pos() + points.at(1).pos()) / 2.0).toPoint();
+ QPointF distance = points.at(0).position() - points.at(1).position();
+ QPoint midPoint = ((points.at(0).position() + points.at(1).position()) / 2.0).toPoint();
d_ptr->handlePinchZoom(distance.manhattanLength(), midPoint);
} else if (points.count() == 1) {
- QPointF pointerPos = points.at(0).pos();
+ QPointF pointerPos = points.at(0).position();
if (event->type() == QEvent::TouchBegin) {
// Flush input state
d_ptr->m_inputState = QAbstract3DInputHandlerPrivate::InputStateNone;
diff --git a/src/datavisualization/utils/shaderhelper.cpp b/src/datavisualization/utils/shaderhelper.cpp
index ba029be2..113eefd3 100644
--- a/src/datavisualization/utils/shaderhelper.cpp
+++ b/src/datavisualization/utils/shaderhelper.cpp
@@ -113,7 +113,12 @@ void ShaderHelper::initialize()
qFatal("Compiling Vertex shader failed");
if (!m_program->addShaderFromSourceFile(QOpenGLShader::Fragment, m_fragmentShaderFile))
qFatal("Compiling Fragment shader failed");
- m_program->link();
+
+ if (!m_program->link()) {
+ qWarning() << "Unable to link shader program:" <<
+ m_vertexShaderFile << m_fragmentShaderFile;
+ return;
+ }
m_positionAttr = m_program->attributeLocation("vertexPosition_mdl");
m_normalAttr = m_program->attributeLocation("vertexNormal_mdl");
diff --git a/src/datavisualizationqml2/CMakeLists.txt b/src/datavisualizationqml2/CMakeLists.txt
new file mode 100644
index 00000000..2b191e41
--- /dev/null
+++ b/src/datavisualizationqml2/CMakeLists.txt
@@ -0,0 +1,101 @@
+qt_internal_add_qml_module(DataVisualizationQml2
+ URI "QtDataVisualization"
+ VERSION "1.${CMAKE_PROJECT_VERSION_MINOR}"
+ CLASSNAME QtDataVisualizationQml2Plugin
+ SKIP_TYPE_REGISTRATION
+ SOURCES
+ abstractdeclarative.cpp abstractdeclarative_p.h
+ colorgradient.cpp colorgradient_p.h
+ datavisualizationqml2_plugin.cpp datavisualizationqml2_plugin.h
+ declarativebars.cpp declarativebars_p.h
+ declarativecolor.cpp declarativecolor_p.h
+ declarativerendernode.cpp declarativerendernode_p.h
+ declarativescatter.cpp declarativescatter_p.h
+ declarativescene.cpp declarativescene_p.h
+ declarativeseries.cpp declarativeseries_p.h
+ declarativesurface.cpp declarativesurface_p.h
+ declarativetheme.cpp declarativetheme_p.h
+ enumtostringmap.cpp enumtostringmap_p.h
+ glstatestore.cpp glstatestore_p.h
+ INCLUDE_DIRECTORIES
+ ../../include
+ ../../include/QtDataVisualization
+ ../datavisualization/axis
+ ../datavisualization/data
+ ../datavisualization/engine
+ ../datavisualization/global
+ ../datavisualization/input
+ ../datavisualization/theme
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::OpenGL
+ Qt::Qml
+ Qt::Quick
+ DataVisualization
+)
+
+qt_extend_target(DataVisualizationQml2 CONDITION MACOS
+ PUBLIC_LIBRARIES
+ Qt::GuiPrivate
+)
+
+set(qml_files
+ "designer/Bars3DSpecifics.qml"
+ "designer/Scatter3DSpecifics.qml"
+ "designer/Surface3DSpecifics.qml"
+ "designer/default/Bars3D.qml"
+ "designer/default/Scatter3D.qml"
+ "designer/default/Surface3D.qml"
+ "designer/qtdatavisualization.metainfo"
+ "designer/images/bars3d-icon.png"
+ "designer/images/bars3d-icon16.png"
+ "designer/images/scatter3d-icon.png"
+ "designer/images/scatter3d-icon16.png"
+ "designer/images/surface3d-icon.png"
+ "designer/images/surface3d-icon16.png"
+)
+set_source_files_properties(designer/Bars3DSpecifics.qml PROPERTIES
+ QT_QML_SKIP_QMLDIR_ENTRY TRUE
+)
+set_source_files_properties(designer/Scatter3DSpecifics.qml PROPERTIES
+ QT_QML_SKIP_QMLDIR_ENTRY TRUE
+)
+set_source_files_properties(designer/Surface3DSpecifics.qml PROPERTIES
+ QT_QML_SKIP_QMLDIR_ENTRY TRUE
+)
+set_source_files_properties(designer/default/Bars3D.qml PROPERTIES
+ QT_QML_SKIP_QMLDIR_ENTRY TRUE
+)
+set_source_files_properties(designer/default/Scatter3D.qml PROPERTIES
+ QT_QML_SKIP_QMLDIR_ENTRY TRUE
+)
+set_source_files_properties(designer/default/Surface3D.qml PROPERTIES
+ QT_QML_SKIP_QMLDIR_ENTRY TRUE
+)
+set_source_files_properties(designer/qtdatavisualization.metainfo PROPERTIES
+ QT_QML_SKIP_QMLDIR_ENTRY TRUE
+)
+set_source_files_properties(designer/images/bars3d-icon.png PROPERTIES
+ QT_QML_SKIP_QMLDIR_ENTRY TRUE
+)
+set_source_files_properties(designer/images/bars3d-icon16.png PROPERTIES
+ QT_QML_SKIP_QMLDIR_ENTRY TRUE
+)
+set_source_files_properties(designer/images/scatter3d-icon.png PROPERTIES
+ QT_QML_SKIP_QMLDIR_ENTRY TRUE
+)
+set_source_files_properties(designer/images/scatter3d-icon16.png PROPERTIES
+ QT_QML_SKIP_QMLDIR_ENTRY TRUE
+)
+set_source_files_properties(designer/images/surface3d-icon.png PROPERTIES
+ QT_QML_SKIP_QMLDIR_ENTRY TRUE
+)
+set_source_files_properties(designer/images/surface3d-icon16.png PROPERTIES
+ QT_QML_SKIP_QMLDIR_ENTRY TRUE
+)
+
+qt6_target_qml_files(DataVisualizationQml2
+ FILES
+ ${qml_files}
+)
diff --git a/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp b/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp
index 5b515a04..a54971cc 100644
--- a/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp
+++ b/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp
@@ -27,12 +27,97 @@
**
****************************************************************************/
+#include "declarativebars_p.h"
+#include "declarativescatter_p.h"
+#include "declarativesurface_p.h"
+#include "qitemmodelbardataproxy.h"
+#include "qitemmodelscatterdataproxy.h"
+#include "qitemmodelsurfacedataproxy.h"
+#include "qheightmapsurfacedataproxy.h"
+#include "qvalue3daxis.h"
+#include "qvalue3daxisformatter.h"
+#include "qlogvalue3daxisformatter.h"
+#include "qcategory3daxis.h"
+#include "q3dobject.h"
+#include "q3dcamera.h"
+#include "q3dscene.h"
+#include "q3dlight.h"
+#include "qabstract3dseries.h"
+#include "qbar3dseries.h"
+#include "qscatter3dseries.h"
+#include "qsurface3dseries.h"
+#include "declarativeseries_p.h"
+#include "q3dtheme.h"
+#include "declarativetheme_p.h"
+#include "q3dinputhandler.h"
+#include "qtouch3dinputhandler.h"
+#include "declarativecolor_p.h"
+#include "declarativescene_p.h"
+#include "qcustom3ditem.h"
+#include "qcustom3dlabel.h"
+#include "qcustom3dvolume.h"
#include "datavisualizationqml2_plugin.h"
#include <QtQml>
+
+QML_DECLARE_TYPE(AbstractDeclarative)
+QML_DECLARE_TYPE(DeclarativeBars)
+QML_DECLARE_TYPE(DeclarativeScatter)
+QML_DECLARE_TYPE(DeclarativeSurface)
+
+QML_DECLARE_TYPE(QAbstractItemModel)
+
+QML_DECLARE_TYPE(QAbstract3DAxis)
+QML_DECLARE_TYPE(QCategory3DAxis)
+QML_DECLARE_TYPE(QValue3DAxis)
+QML_DECLARE_TYPE(QValue3DAxisFormatter)
+QML_DECLARE_TYPE(QLogValue3DAxisFormatter)
+
+QML_DECLARE_TYPE(Q3DScene)
+QML_DECLARE_TYPE(Declarative3DScene)
+QML_DECLARE_TYPE(Q3DObject)
+QML_DECLARE_TYPE(Q3DCamera)
+QML_DECLARE_TYPE(Q3DLight)
+
+QML_DECLARE_TYPE(QAbstractDataProxy)
+QML_DECLARE_TYPE(QBarDataProxy)
+QML_DECLARE_TYPE(QItemModelBarDataProxy)
+QML_DECLARE_TYPE(QScatterDataProxy)
+QML_DECLARE_TYPE(QItemModelScatterDataProxy)
+QML_DECLARE_TYPE(QSurfaceDataProxy)
+QML_DECLARE_TYPE(QItemModelSurfaceDataProxy)
+QML_DECLARE_TYPE(QHeightMapSurfaceDataProxy)
+
+QML_DECLARE_TYPE(QAbstract3DSeries)
+QML_DECLARE_TYPE(QBar3DSeries)
+QML_DECLARE_TYPE(QScatter3DSeries)
+QML_DECLARE_TYPE(QSurface3DSeries)
+QML_DECLARE_TYPE(DeclarativeBar3DSeries)
+QML_DECLARE_TYPE(DeclarativeScatter3DSeries)
+QML_DECLARE_TYPE(DeclarativeSurface3DSeries)
+
+QML_DECLARE_TYPE(ColorGradientStop)
+QML_DECLARE_TYPE(ColorGradient)
+
+QML_DECLARE_TYPE(DeclarativeColor)
+
+QML_DECLARE_TYPE(Q3DTheme)
+QML_DECLARE_TYPE(DeclarativeTheme3D)
+
+QML_DECLARE_TYPE(QAbstract3DInputHandler)
+QML_DECLARE_TYPE(Q3DInputHandler)
+QML_DECLARE_TYPE(QTouch3DInputHandler)
+
+QML_DECLARE_TYPE(QCustom3DItem)
+QML_DECLARE_TYPE(QCustom3DLabel)
+QML_DECLARE_TYPE(QCustom3DVolume)
+
QT_BEGIN_NAMESPACE_DATAVISUALIZATION
+
+
+
void QtDataVisualizationQml2Plugin::registerTypes(const char *uri)
{
// @uri QtDataVisualization
diff --git a/src/datavisualizationqml2/datavisualizationqml2_plugin.h b/src/datavisualizationqml2/datavisualizationqml2_plugin.h
index d997f8c1..73c7b1e1 100644
--- a/src/datavisualizationqml2/datavisualizationqml2_plugin.h
+++ b/src/datavisualizationqml2/datavisualizationqml2_plugin.h
@@ -30,92 +30,12 @@
#ifndef DATAVISUALIZATIONQML2_PLUGIN_H
#define DATAVISUALIZATIONQML2_PLUGIN_H
-#include "datavisualizationglobal_p.h"
-#include "declarativebars_p.h"
-#include "declarativescatter_p.h"
-#include "declarativesurface_p.h"
-#include "qitemmodelbardataproxy.h"
-#include "qitemmodelscatterdataproxy.h"
-#include "qitemmodelsurfacedataproxy.h"
-#include "qheightmapsurfacedataproxy.h"
-#include "qvalue3daxis.h"
-#include "qvalue3daxisformatter.h"
-#include "qlogvalue3daxisformatter.h"
-#include "qcategory3daxis.h"
-#include "q3dobject.h"
-#include "q3dcamera.h"
-#include "q3dscene.h"
-#include "q3dlight.h"
-#include "qabstract3dseries.h"
-#include "qbar3dseries.h"
-#include "qscatter3dseries.h"
-#include "qsurface3dseries.h"
-#include "declarativeseries_p.h"
-#include "q3dtheme.h"
-#include "declarativetheme_p.h"
-#include "q3dinputhandler.h"
-#include "qtouch3dinputhandler.h"
-#include "declarativecolor_p.h"
-#include "declarativescene_p.h"
-#include "qcustom3ditem.h"
-#include "qcustom3dlabel.h"
-#include "qcustom3dvolume.h"
-
#include <QtQml/QQmlExtensionPlugin>
+#include "datavisualizationglobal_p.h"
using namespace QtDataVisualization;
-QML_DECLARE_TYPE(AbstractDeclarative)
-QML_DECLARE_TYPE(DeclarativeBars)
-QML_DECLARE_TYPE(DeclarativeScatter)
-QML_DECLARE_TYPE(DeclarativeSurface)
-
-QML_DECLARE_TYPE(QAbstractItemModel)
-
-QML_DECLARE_TYPE(QAbstract3DAxis)
-QML_DECLARE_TYPE(QCategory3DAxis)
-QML_DECLARE_TYPE(QValue3DAxis)
-QML_DECLARE_TYPE(QValue3DAxisFormatter)
-QML_DECLARE_TYPE(QLogValue3DAxisFormatter)
-
-QML_DECLARE_TYPE(Q3DScene)
-QML_DECLARE_TYPE(Declarative3DScene)
-QML_DECLARE_TYPE(Q3DObject)
-QML_DECLARE_TYPE(Q3DCamera)
-QML_DECLARE_TYPE(Q3DLight)
-
-QML_DECLARE_TYPE(QAbstractDataProxy)
-QML_DECLARE_TYPE(QBarDataProxy)
-QML_DECLARE_TYPE(QItemModelBarDataProxy)
-QML_DECLARE_TYPE(QScatterDataProxy)
-QML_DECLARE_TYPE(QItemModelScatterDataProxy)
-QML_DECLARE_TYPE(QSurfaceDataProxy)
-QML_DECLARE_TYPE(QItemModelSurfaceDataProxy)
-QML_DECLARE_TYPE(QHeightMapSurfaceDataProxy)
-
-QML_DECLARE_TYPE(QAbstract3DSeries)
-QML_DECLARE_TYPE(QBar3DSeries)
-QML_DECLARE_TYPE(QScatter3DSeries)
-QML_DECLARE_TYPE(QSurface3DSeries)
-QML_DECLARE_TYPE(DeclarativeBar3DSeries)
-QML_DECLARE_TYPE(DeclarativeScatter3DSeries)
-QML_DECLARE_TYPE(DeclarativeSurface3DSeries)
-
-QML_DECLARE_TYPE(ColorGradientStop)
-QML_DECLARE_TYPE(ColorGradient)
-
-QML_DECLARE_TYPE(DeclarativeColor)
-
-QML_DECLARE_TYPE(Q3DTheme)
-QML_DECLARE_TYPE(DeclarativeTheme3D)
-
-QML_DECLARE_TYPE(QAbstract3DInputHandler)
-QML_DECLARE_TYPE(Q3DInputHandler)
-QML_DECLARE_TYPE(QTouch3DInputHandler)
-QML_DECLARE_TYPE(QCustom3DItem)
-QML_DECLARE_TYPE(QCustom3DLabel)
-QML_DECLARE_TYPE(QCustom3DVolume)
QT_BEGIN_NAMESPACE_DATAVISUALIZATION
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
new file mode 100644
index 00000000..7d60f9ff
--- /dev/null
+++ b/tests/CMakeLists.txt
@@ -0,0 +1,3 @@
+if(QT_BUILD_STANDALONE_TESTS)
+endif()
+qt_build_tests()
diff --git a/tests/auto/CMakeLists.txt b/tests/auto/CMakeLists.txt
new file mode 100644
index 00000000..ffa2e824
--- /dev/null
+++ b/tests/auto/CMakeLists.txt
@@ -0,0 +1,6 @@
+if(NOT ANDROID)
+ add_subdirectory(cpptest)
+endif()
+if(TARGET Qt::Quick AND NOT boot2qt)
+ add_subdirectory(qmltest)
+endif()
diff --git a/tests/auto/cpptest/CMakeLists.txt b/tests/auto/cpptest/CMakeLists.txt
new file mode 100644
index 00000000..7b6ef00b
--- /dev/null
+++ b/tests/auto/cpptest/CMakeLists.txt
@@ -0,0 +1,25 @@
+add_subdirectory(q3dbars)
+add_subdirectory(q3dbars-proxy)
+add_subdirectory(q3dbars-modelproxy)
+add_subdirectory(q3dbars-series)
+add_subdirectory(q3dscatter)
+add_subdirectory(q3dscatter-proxy)
+add_subdirectory(q3dscatter-modelproxy)
+add_subdirectory(q3dscatter-series)
+add_subdirectory(q3dsurface)
+add_subdirectory(q3dsurface-proxy)
+add_subdirectory(q3dsurface-modelproxy)
+add_subdirectory(q3dsurface-heightproxy)
+add_subdirectory(q3dsurface-series)
+add_subdirectory(q3daxis-category)
+add_subdirectory(q3daxis-logvalue)
+add_subdirectory(q3daxis-value)
+add_subdirectory(q3dscene)
+add_subdirectory(q3dscene-camera)
+add_subdirectory(q3dscene-light)
+add_subdirectory(q3dtheme)
+add_subdirectory(q3dinput)
+add_subdirectory(q3dinput-touch)
+add_subdirectory(q3dcustom)
+add_subdirectory(q3dcustom-label)
+add_subdirectory(q3dcustom-volume)
diff --git a/tests/auto/cpptest/q3daxis-category/CMakeLists.txt b/tests/auto/cpptest/q3daxis-category/CMakeLists.txt
new file mode 100644
index 00000000..ca408c4a
--- /dev/null
+++ b/tests/auto/cpptest/q3daxis-category/CMakeLists.txt
@@ -0,0 +1,7 @@
+qt_add_test(q3daxis-category
+ SOURCES
+ tst_axis.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3daxis-logvalue/CMakeLists.txt b/tests/auto/cpptest/q3daxis-logvalue/CMakeLists.txt
new file mode 100644
index 00000000..de67a9b7
--- /dev/null
+++ b/tests/auto/cpptest/q3daxis-logvalue/CMakeLists.txt
@@ -0,0 +1,7 @@
+qt_add_test(q3daxis-logvalue
+ SOURCES
+ tst_axis.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3daxis-value/CMakeLists.txt b/tests/auto/cpptest/q3daxis-value/CMakeLists.txt
new file mode 100644
index 00000000..d7cdd7e3
--- /dev/null
+++ b/tests/auto/cpptest/q3daxis-value/CMakeLists.txt
@@ -0,0 +1,7 @@
+qt_add_test(q3daxis-value
+ SOURCES
+ tst_axis.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dbars-modelproxy/CMakeLists.txt b/tests/auto/cpptest/q3dbars-modelproxy/CMakeLists.txt
new file mode 100644
index 00000000..52ac3301
--- /dev/null
+++ b/tests/auto/cpptest/q3dbars-modelproxy/CMakeLists.txt
@@ -0,0 +1,11 @@
+qt_add_test(q3dbars-modelproxy
+ SOURCES
+ tst_proxy.cpp
+ INCLUDE_DIRECTORIES
+ ../common
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::Widgets
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dbars-proxy/CMakeLists.txt b/tests/auto/cpptest/q3dbars-proxy/CMakeLists.txt
new file mode 100644
index 00000000..479a684a
--- /dev/null
+++ b/tests/auto/cpptest/q3dbars-proxy/CMakeLists.txt
@@ -0,0 +1,7 @@
+qt_add_test(q3dbars-proxy
+ SOURCES
+ tst_proxy.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dbars-series/CMakeLists.txt b/tests/auto/cpptest/q3dbars-series/CMakeLists.txt
new file mode 100644
index 00000000..a1d540ca
--- /dev/null
+++ b/tests/auto/cpptest/q3dbars-series/CMakeLists.txt
@@ -0,0 +1,7 @@
+qt_add_test(q3dbars-series
+ SOURCES
+ tst_series.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dbars/CMakeLists.txt b/tests/auto/cpptest/q3dbars/CMakeLists.txt
new file mode 100644
index 00000000..b182ffc2
--- /dev/null
+++ b/tests/auto/cpptest/q3dbars/CMakeLists.txt
@@ -0,0 +1,10 @@
+qt_add_test(q3dbars
+ SOURCES
+ tst_bars.cpp
+ INCLUDE_DIRECTORIES
+ ../common
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dcustom-label/CMakeLists.txt b/tests/auto/cpptest/q3dcustom-label/CMakeLists.txt
new file mode 100644
index 00000000..e1c72685
--- /dev/null
+++ b/tests/auto/cpptest/q3dcustom-label/CMakeLists.txt
@@ -0,0 +1,10 @@
+qt_add_test(q3dcustom-label
+ SOURCES
+ tst_custom.cpp
+ INCLUDE_DIRECTORIES
+ ../common
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dcustom-volume/CMakeLists.txt b/tests/auto/cpptest/q3dcustom-volume/CMakeLists.txt
new file mode 100644
index 00000000..ca462e79
--- /dev/null
+++ b/tests/auto/cpptest/q3dcustom-volume/CMakeLists.txt
@@ -0,0 +1,7 @@
+qt_add_test(q3dcustom-volume
+ SOURCES
+ tst_custom.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dcustom/CMakeLists.txt b/tests/auto/cpptest/q3dcustom/CMakeLists.txt
new file mode 100644
index 00000000..86e937da
--- /dev/null
+++ b/tests/auto/cpptest/q3dcustom/CMakeLists.txt
@@ -0,0 +1,7 @@
+qt_add_test(q3dcustom
+ SOURCES
+ tst_custom.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dinput-touch/CMakeLists.txt b/tests/auto/cpptest/q3dinput-touch/CMakeLists.txt
new file mode 100644
index 00000000..616d1470
--- /dev/null
+++ b/tests/auto/cpptest/q3dinput-touch/CMakeLists.txt
@@ -0,0 +1,7 @@
+qt_add_test(q3dinput-touch
+ SOURCES
+ tst_input.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dinput/CMakeLists.txt b/tests/auto/cpptest/q3dinput/CMakeLists.txt
new file mode 100644
index 00000000..bcd485ba
--- /dev/null
+++ b/tests/auto/cpptest/q3dinput/CMakeLists.txt
@@ -0,0 +1,7 @@
+qt_add_test(q3dinput
+ SOURCES
+ tst_input.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dscatter-modelproxy/CMakeLists.txt b/tests/auto/cpptest/q3dscatter-modelproxy/CMakeLists.txt
new file mode 100644
index 00000000..232b192a
--- /dev/null
+++ b/tests/auto/cpptest/q3dscatter-modelproxy/CMakeLists.txt
@@ -0,0 +1,8 @@
+qt_add_test(q3dscatter-modelproxy
+ SOURCES
+ tst_proxy.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::Widgets
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dscatter-proxy/CMakeLists.txt b/tests/auto/cpptest/q3dscatter-proxy/CMakeLists.txt
new file mode 100644
index 00000000..a2c7e88c
--- /dev/null
+++ b/tests/auto/cpptest/q3dscatter-proxy/CMakeLists.txt
@@ -0,0 +1,7 @@
+qt_add_test(q3dscatter-proxy
+ SOURCES
+ tst_proxy.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dscatter-series/CMakeLists.txt b/tests/auto/cpptest/q3dscatter-series/CMakeLists.txt
new file mode 100644
index 00000000..b15b7617
--- /dev/null
+++ b/tests/auto/cpptest/q3dscatter-series/CMakeLists.txt
@@ -0,0 +1,7 @@
+qt_add_test(q3dscatter-series
+ SOURCES
+ tst_series.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dscatter/CMakeLists.txt b/tests/auto/cpptest/q3dscatter/CMakeLists.txt
new file mode 100644
index 00000000..c656933a
--- /dev/null
+++ b/tests/auto/cpptest/q3dscatter/CMakeLists.txt
@@ -0,0 +1,10 @@
+qt_add_test(q3dscatter
+ SOURCES
+ tst_scatter.cpp
+ INCLUDE_DIRECTORIES
+ ../common
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dscene-camera/CMakeLists.txt b/tests/auto/cpptest/q3dscene-camera/CMakeLists.txt
new file mode 100644
index 00000000..3ecc41b4
--- /dev/null
+++ b/tests/auto/cpptest/q3dscene-camera/CMakeLists.txt
@@ -0,0 +1,7 @@
+qt_add_test(q3dscene-camera
+ SOURCES
+ tst_camera.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dscene-light/CMakeLists.txt b/tests/auto/cpptest/q3dscene-light/CMakeLists.txt
new file mode 100644
index 00000000..4ad3fa2a
--- /dev/null
+++ b/tests/auto/cpptest/q3dscene-light/CMakeLists.txt
@@ -0,0 +1,7 @@
+qt_add_test(q3dscene-light
+ SOURCES
+ tst_light.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dscene/CMakeLists.txt b/tests/auto/cpptest/q3dscene/CMakeLists.txt
new file mode 100644
index 00000000..385aeee5
--- /dev/null
+++ b/tests/auto/cpptest/q3dscene/CMakeLists.txt
@@ -0,0 +1,10 @@
+qt_add_test(q3dscene
+ SOURCES
+ tst_scene.cpp
+ INCLUDE_DIRECTORIES
+ ../common
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dsurface-heightproxy/CMakeLists.txt b/tests/auto/cpptest/q3dsurface-heightproxy/CMakeLists.txt
new file mode 100644
index 00000000..8132c2a6
--- /dev/null
+++ b/tests/auto/cpptest/q3dsurface-heightproxy/CMakeLists.txt
@@ -0,0 +1,18 @@
+qt_add_test(q3dsurface-heightproxy
+ SOURCES
+ tst_proxy.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::DataVisualization
+)
+
+set(q3dsurface-heightproxy_resource_files
+ "customtexture.jpg"
+)
+
+qt_add_resource(q3dsurface-heightproxy "q3dsurface-heightproxy"
+ PREFIX
+ "/"
+ FILES
+ ${q3dsurface-heightproxy_resource_files}
+)
diff --git a/tests/auto/cpptest/q3dsurface-modelproxy/CMakeLists.txt b/tests/auto/cpptest/q3dsurface-modelproxy/CMakeLists.txt
new file mode 100644
index 00000000..fc864cf9
--- /dev/null
+++ b/tests/auto/cpptest/q3dsurface-modelproxy/CMakeLists.txt
@@ -0,0 +1,11 @@
+qt_add_test(q3dsurface-modelproxy
+ SOURCES
+ tst_proxy.cpp
+ INCLUDE_DIRECTORIES
+ ../common
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::Widgets
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dsurface-proxy/CMakeLists.txt b/tests/auto/cpptest/q3dsurface-proxy/CMakeLists.txt
new file mode 100644
index 00000000..6ca50f8f
--- /dev/null
+++ b/tests/auto/cpptest/q3dsurface-proxy/CMakeLists.txt
@@ -0,0 +1,7 @@
+qt_add_test(q3dsurface-proxy
+ SOURCES
+ tst_proxy.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dsurface-series/CMakeLists.txt b/tests/auto/cpptest/q3dsurface-series/CMakeLists.txt
new file mode 100644
index 00000000..da189866
--- /dev/null
+++ b/tests/auto/cpptest/q3dsurface-series/CMakeLists.txt
@@ -0,0 +1,7 @@
+qt_add_test(q3dsurface-series
+ SOURCES
+ tst_series.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dsurface/CMakeLists.txt b/tests/auto/cpptest/q3dsurface/CMakeLists.txt
new file mode 100644
index 00000000..e57f214a
--- /dev/null
+++ b/tests/auto/cpptest/q3dsurface/CMakeLists.txt
@@ -0,0 +1,10 @@
+qt_add_test(q3dsurface
+ SOURCES
+ tst_surface.cpp
+ INCLUDE_DIRECTORIES
+ ../common
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::DataVisualization
+)
diff --git a/tests/auto/cpptest/q3dtheme/CMakeLists.txt b/tests/auto/cpptest/q3dtheme/CMakeLists.txt
new file mode 100644
index 00000000..59c14b54
--- /dev/null
+++ b/tests/auto/cpptest/q3dtheme/CMakeLists.txt
@@ -0,0 +1,7 @@
+qt_add_test(q3dtheme
+ SOURCES
+ tst_theme.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::DataVisualization
+)
diff --git a/tests/auto/qmltest/CMakeLists.txt b/tests/auto/qmltest/CMakeLists.txt
new file mode 100644
index 00000000..9cb800a0
--- /dev/null
+++ b/tests/auto/qmltest/CMakeLists.txt
@@ -0,0 +1,19 @@
+qt_add_test(tst_qmltest
+ QMLTEST
+ SOURCES
+ tst_qmltest.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+)
+
+set(qmltest_resource_files
+ "customitem.obj"
+ "customtexture.jpg"
+)
+
+qt_add_resource(tst_qmltest "qmltest"
+ PREFIX
+ "/"
+ FILES
+ ${qmltest_resource_files}
+)
diff --git a/tests/manual/CMakeLists.txt b/tests/manual/CMakeLists.txt
new file mode 100644
index 00000000..66cd3967
--- /dev/null
+++ b/tests/manual/CMakeLists.txt
@@ -0,0 +1,18 @@
+if(TARGET Qt::Quick)
+ add_subdirectory(qmldynamicdata)
+ add_subdirectory(qmlmultitest)
+ add_subdirectory(qmlvolume)
+ add_subdirectory(qmlperf)
+endif()
+if(NOT ANDROID AND NOT IOS AND NOT WINRT)
+ add_subdirectory(barstest)
+ add_subdirectory(scattertest)
+ add_subdirectory(surfacetest)
+ add_subdirectory(multigraphs)
+ add_subdirectory(directional)
+ add_subdirectory(itemmodeltest)
+ add_subdirectory(volumetrictest)
+ add_subdirectory(minimalbars)
+ add_subdirectory(minimalscatter)
+ add_subdirectory(minimalsurface)
+endif()
diff --git a/tests/manual/barstest/CMakeLists.txt b/tests/manual/barstest/CMakeLists.txt
new file mode 100644
index 00000000..f3d695d5
--- /dev/null
+++ b/tests/manual/barstest/CMakeLists.txt
@@ -0,0 +1,22 @@
+qt_add_executable(barstest
+ GUI
+ SOURCES
+ chart.cpp chart.h
+ custominputhandler.cpp custominputhandler.h
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::Widgets
+)
+
+set(barstest_resource_files
+ "shuttle.obj"
+ "shuttle.png"
+)
+
+qt_add_resource(barstest "barstest"
+ PREFIX
+ "/"
+ FILES
+ ${barstest_resource_files}
+)
diff --git a/tests/manual/directional/CMakeLists.txt b/tests/manual/directional/CMakeLists.txt
new file mode 100644
index 00000000..4cb20b33
--- /dev/null
+++ b/tests/manual/directional/CMakeLists.txt
@@ -0,0 +1,9 @@
+qt_add_executable(directional
+ GUI
+ SOURCES
+ main.cpp
+ scatterdatamodifier.cpp scatterdatamodifier.h
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::Widgets
+)
diff --git a/tests/manual/galaxy/CMakeLists.txt b/tests/manual/galaxy/CMakeLists.txt
new file mode 100644
index 00000000..3558ae72
--- /dev/null
+++ b/tests/manual/galaxy/CMakeLists.txt
@@ -0,0 +1,12 @@
+qt_add_executable(galaxy
+ GUI
+ EXCEPTIONS
+ SOURCES
+ cumulativedistributor.cpp cumulativedistributor.h
+ galaxydata.cpp galaxydata.h
+ main.cpp
+ star.cpp star.h
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::Widgets
+)
diff --git a/tests/manual/itemmodeltest/CMakeLists.txt b/tests/manual/itemmodeltest/CMakeLists.txt
new file mode 100644
index 00000000..070ffe60
--- /dev/null
+++ b/tests/manual/itemmodeltest/CMakeLists.txt
@@ -0,0 +1,8 @@
+qt_add_executable(itemmodeltest
+ GUI
+ SOURCES
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::Widgets
+)
diff --git a/tests/manual/minimalbars/CMakeLists.txt b/tests/manual/minimalbars/CMakeLists.txt
new file mode 100644
index 00000000..00a8732c
--- /dev/null
+++ b/tests/manual/minimalbars/CMakeLists.txt
@@ -0,0 +1,8 @@
+qt_add_executable(MinimalBars
+ GUI
+ SOURCES
+ ../../../src/datavisualization/doc/snippets/doc_src_q3dbars_construction.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ datavisualization
+)
diff --git a/tests/manual/minimalscatter/CMakeLists.txt b/tests/manual/minimalscatter/CMakeLists.txt
new file mode 100644
index 00000000..12337ac7
--- /dev/null
+++ b/tests/manual/minimalscatter/CMakeLists.txt
@@ -0,0 +1,8 @@
+qt_add_executable(MinimalScatter
+ GUI
+ SOURCES
+ ../../../src/datavisualization/doc/snippets/doc_src_q3dscatter_construction.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ datavisualization
+)
diff --git a/tests/manual/minimalsurface/CMakeLists.txt b/tests/manual/minimalsurface/CMakeLists.txt
new file mode 100644
index 00000000..acd972a5
--- /dev/null
+++ b/tests/manual/minimalsurface/CMakeLists.txt
@@ -0,0 +1,8 @@
+qt_add_executable(minimalSurface
+ GUI
+ SOURCES
+ ../../../src/datavisualization/doc/snippets/doc_src_q3dsurface_construction.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ datavisualization
+)
diff --git a/tests/manual/multigraphs/CMakeLists.txt b/tests/manual/multigraphs/CMakeLists.txt
new file mode 100644
index 00000000..c328d97b
--- /dev/null
+++ b/tests/manual/multigraphs/CMakeLists.txt
@@ -0,0 +1,20 @@
+qt_add_executable(multigraphs
+ GUI
+ SOURCES
+ data.cpp data.h
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::Widgets
+)
+
+set(multigraphs_resource_files
+ "australia.png"
+)
+
+qt_add_resource(multigraphs "multigraphs"
+ PREFIX
+ "/"
+ FILES
+ ${multigraphs_resource_files}
+)
diff --git a/tests/manual/qmldynamicdata/CMakeLists.txt b/tests/manual/qmldynamicdata/CMakeLists.txt
new file mode 100644
index 00000000..6586e6ba
--- /dev/null
+++ b/tests/manual/qmldynamicdata/CMakeLists.txt
@@ -0,0 +1,18 @@
+qt_add_executable(qmldynamicdata
+ GUI
+ SOURCES
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+)
+
+set(qmldynamicdata_resource_files
+ "qml/qmldynamicdata/main.qml"
+)
+
+qt_add_resource(qmldynamicdata "qmldynamicdata"
+ PREFIX
+ "/"
+ FILES
+ ${qmldynamicdata_resource_files}
+)
diff --git a/tests/manual/qmlmultitest/CMakeLists.txt b/tests/manual/qmlmultitest/CMakeLists.txt
new file mode 100644
index 00000000..2a24f78c
--- /dev/null
+++ b/tests/manual/qmlmultitest/CMakeLists.txt
@@ -0,0 +1,19 @@
+qt_add_executable(qmlmultitest
+ GUI
+ SOURCES
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+)
+
+set(qmlmultitest_resource_files
+ "qml/qmlmultitest/Data.qml"
+ "qml/qmlmultitest/main.qml"
+)
+
+qt_add_resource(qmlmultitest "qmlmultitest"
+ PREFIX
+ "/"
+ FILES
+ ${qmlmultitest_resource_files}
+)
diff --git a/tests/manual/qmlperf/CMakeLists.txt b/tests/manual/qmlperf/CMakeLists.txt
new file mode 100644
index 00000000..666f279f
--- /dev/null
+++ b/tests/manual/qmlperf/CMakeLists.txt
@@ -0,0 +1,19 @@
+qt_add_executable(qmlperf
+ GUI
+ SOURCES
+ datagenerator.cpp datagenerator.h
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+)
+
+set(qmlperf_resource_files
+ "qml/qmlperf/main.qml"
+)
+
+qt_add_resource(qmlperf "qmlperf"
+ PREFIX
+ "/"
+ FILES
+ ${qmlperf_resource_files}
+)
diff --git a/tests/manual/qmlvolume/CMakeLists.txt b/tests/manual/qmlvolume/CMakeLists.txt
new file mode 100644
index 00000000..e18dc620
--- /dev/null
+++ b/tests/manual/qmlvolume/CMakeLists.txt
@@ -0,0 +1,20 @@
+qt_add_executable(qmlvolume
+ GUI
+ SOURCES
+ datasource.cpp datasource.h
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ datavisualization
+)
+
+set(qmlvolume_resource_files
+ "qml/qmlvolume/main.qml"
+)
+
+qt_add_resource(qmlvolume "qmlvolume"
+ PREFIX
+ "/"
+ FILES
+ ${qmlvolume_resource_files}
+)
diff --git a/tests/manual/scattertest/CMakeLists.txt b/tests/manual/scattertest/CMakeLists.txt
new file mode 100644
index 00000000..614dd1d3
--- /dev/null
+++ b/tests/manual/scattertest/CMakeLists.txt
@@ -0,0 +1,9 @@
+qt_add_executable(scattertest
+ GUI
+ SOURCES
+ main.cpp
+ scatterchart.cpp scatterchart.h
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::Widgets
+)
diff --git a/tests/manual/surfacetest/CMakeLists.txt b/tests/manual/surfacetest/CMakeLists.txt
new file mode 100644
index 00000000..27539f88
--- /dev/null
+++ b/tests/manual/surfacetest/CMakeLists.txt
@@ -0,0 +1,27 @@
+qt_add_executable(surfacetest
+ GUI
+ SOURCES
+ graphmodifier.cpp graphmodifier.h
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::Widgets
+)
+
+set_source_files_properties("Heightmap.png"
+ PROPERTIES QT_RESOURCE_ALIAS "map"
+)
+set_source_files_properties("mapimage.png"
+ PROPERTIES QT_RESOURCE_ALIAS "mapimage"
+)
+set(surfacetest_resource_files
+ "Heightmap.png"
+ "mapimage.png"
+)
+
+qt_add_resource(surfacetest "surfacetest"
+ PREFIX
+ "/maps"
+ FILES
+ ${surfacetest_resource_files}
+)
diff --git a/tests/manual/volumetrictest/CMakeLists.txt b/tests/manual/volumetrictest/CMakeLists.txt
new file mode 100644
index 00000000..d0fd8dde
--- /dev/null
+++ b/tests/manual/volumetrictest/CMakeLists.txt
@@ -0,0 +1,25 @@
+qt_add_executable(volumetrictest
+ GUI
+ SOURCES
+ main.cpp
+ volumetrictest.cpp volumetrictest.h
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::Widgets
+)
+
+set_source_files_properties("cubeFilledFlat.obj"
+ PROPERTIES QT_RESOURCE_ALIAS "mesh"
+)
+set(volumetrictest_resource_files
+ "cubeFilledFlat.obj"
+ "logo.png"
+ "logo_no_padding.png"
+)
+
+qt_add_resource(volumetrictest "volumetrictest"
+ PREFIX
+ "/"
+ FILES
+ ${volumetrictest_resource_files}
+)