summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt1
-rw-r--r--src/imports/CMakeLists.gen.txt11
-rw-r--r--src/imports/CMakeLists.txt2
-rw-r--r--src/imports/vehiclefunctions/CMakeLists.txt36
-rw-r--r--src/ivicore/CMakeLists.txt3
-rw-r--r--src/ivicore/Qt6IviCoreConfigExtras.cmake.in3
-rw-r--r--src/ivicore/Qt6IviCoreMacros.cmake199
-rw-r--r--src/ivivehiclefunctions/CMakeLists.txt29
-rw-r--r--src/plugins/CMakeLists.txt2
-rw-r--r--src/plugins/ivivehiclefunctions/vehiclefunctions_qtro/CMakeLists.txt12
-rw-r--r--src/plugins/ivivehiclefunctions/vehiclefunctions_simulator/CMakeLists.txt12
-rw-r--r--src/tools/ivigenerator/templates/backend_qtro.yaml1
-rw-r--r--src/tools/ivigenerator/templates/backend_qtro/CMakeLists.txt.tpl19
-rw-r--r--src/tools/ivigenerator/templates/backend_simulator.yaml1
-rw-r--r--src/tools/ivigenerator/templates/backend_simulator/CMakeLists.txt.tpl13
-rw-r--r--src/tools/ivigenerator/templates/backend_simulator/plugin.pri.tpl4
-rw-r--r--src/tools/ivigenerator/templates/frontend.yaml1
-rw-r--r--src/tools/ivigenerator/templates/frontend/CMakeLists.txt.tpl14
-rw-r--r--src/tools/ivigenerator/templates/qmlplugin.yaml1
-rw-r--r--src/tools/ivigenerator/templates/qmlplugin/CMakeLists.txt.tpl33
-rw-r--r--src/tools/ivigenerator/templates/server_qtro.yaml1
-rw-r--r--src/tools/ivigenerator/templates/server_qtro/CMakeLists.txt.tpl13
-rw-r--r--src/tools/ivigenerator/templates/server_qtro_simulator.yaml1
-rw-r--r--src/tools/ivigenerator/templates/server_qtro_simulator/CMakeLists.txt.tpl23
-rw-r--r--src/tools/ivigenerator/templates/test.yaml1
-rw-r--r--src/tools/ivigenerator/templates/test/CMakeLists.txt.tpl7
-rw-r--r--src/tools/vehiclefunctions-simulation-server/CMakeLists.txt10
27 files changed, 430 insertions, 23 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 23fbafd..636fb71 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,6 +1,7 @@
# Generated from src.pro.
qt_feature_evaluate_features("${CMAKE_CURRENT_SOURCE_DIR}/ivicore/configure.cmake") # special case
+qt_feature_evaluate_features("${CMAKE_CURRENT_SOURCE_DIR}/ivivehiclefunctions/configure.cmake") # special case
qt_feature_evaluate_features("${CMAKE_CURRENT_SOURCE_DIR}/ivimedia/configure.cmake") # special case
qt_feature_evaluate_features("${CMAKE_CURRENT_SOURCE_DIR}/geniviextras/configure.cmake") # special case
diff --git a/src/imports/CMakeLists.gen.txt b/src/imports/CMakeLists.gen.txt
new file mode 100644
index 0000000..343d24d
--- /dev/null
+++ b/src/imports/CMakeLists.gen.txt
@@ -0,0 +1,11 @@
+# Generated from imports.pro.
+
+if(TARGET Qt::IviCore)
+ add_subdirectory(core)
+endif()
+if(TARGET Qt::IviMedia)
+ add_subdirectory(media)
+endif()
+if(TARGET Qt::IviVehicleFunctions)
+ add_subdirectory(vehiclefunctions)
+endif()
diff --git a/src/imports/CMakeLists.txt b/src/imports/CMakeLists.txt
index a3e937e..046b6ad 100644
--- a/src/imports/CMakeLists.txt
+++ b/src/imports/CMakeLists.txt
@@ -6,6 +6,6 @@ endif()
if(TARGET Qt::IviMedia)
add_subdirectory(media)
endif()
-if(TARGET ivivehiclefunctions)
+if(TARGET Qt::IviVehicleFunctions) # special case
add_subdirectory(vehiclefunctions)
endif()
diff --git a/src/imports/vehiclefunctions/CMakeLists.txt b/src/imports/vehiclefunctions/CMakeLists.txt
new file mode 100644
index 0000000..d5a7c70
--- /dev/null
+++ b/src/imports/vehiclefunctions/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated from vehiclefunctions.pro.
+
+#####################################################################
+## vehiclefunctions Plugin:
+#####################################################################
+
+# IVI Generator:
+qt_ivigenerator(qtivivehiclefunctionsplugin
+ QFACE_SOURCES ../../ivivehiclefunctions/ivivehiclefunctions.qface
+ QFACE_FORMAT qmlplugin
+ QFACE_MODULE_NAME QtIviVehicleFunctions
+)
+
+# special case begin
+target_link_libraries(qtivivehiclefunctionsplugin PUBLIC
+ Qt::IviCore
+ Qt::IviVehicleFunctions
+)
+# special case end
+
+#### Keys ignored in scope 1:.:.:vehiclefunctions.pro:<TRUE>:
+# CXX_MODULE = "qml"
+# QML_IMPORT_VERSION = "1.0"
+# QT_FOR_CONFIG = "ivicore"
+# TARGETPATH = "$$replace(URI, \\., /)"
+# qml2build.files = "-$$_PRO_FILE_PWD_/qmldir" "-$$_PRO_FILE_PWD_/plugins.qmltypes"
+# qmldir2build.files = "-$$_PRO_FILE_PWD_/qmldir" "-$$_PRO_FILE_PWD_/plugins.qmltypes"
+
+## Scopes:
+#####################################################################
+
+#### Keys ignored in scope 3:.:.:vehiclefunctions.pro:NOT PWD___equals____ss_OUT_PWD:
+# qmldir.base = <EMPTY>
+# qmldir.files = "-$$_PRO_FILE_PWD_/qmldir"
+# qmlfiles.base = <EMPTY>
+# qmlfiles.files = "-$$_PRO_FILE_PWD_/qmldir"
diff --git a/src/ivicore/CMakeLists.txt b/src/ivicore/CMakeLists.txt
index 01e55f7..d6d7aed 100644
--- a/src/ivicore/CMakeLists.txt
+++ b/src/ivicore/CMakeLists.txt
@@ -39,6 +39,9 @@ qt_add_module(IviCore
PRIVATE_MODULE_INTERFACE
Qt::CorePrivate
Qt::QmlPrivate
+ EXTRA_CMAKE_FILES
+ Qt6IviCoreConfigExtras.cmake.in
+ Qt6IviCoreMacros.cmake
)
#### Keys ignored in scope 1:.:.:ivicore.pro:<TRUE>:
diff --git a/src/ivicore/Qt6IviCoreConfigExtras.cmake.in b/src/ivicore/Qt6IviCoreConfigExtras.cmake.in
new file mode 100644
index 0000000..057a591
--- /dev/null
+++ b/src/ivicore/Qt6IviCoreConfigExtras.cmake.in
@@ -0,0 +1,3 @@
+
+# install layout information, following what qmake -query provides
+get_filename_component(QTIVI_INSTALL_PREFIX ${CMAKE_CURRENT_LIST_DIR}/../../../ ABSOLUTE)
diff --git a/src/ivicore/Qt6IviCoreMacros.cmake b/src/ivicore/Qt6IviCoreMacros.cmake
new file mode 100644
index 0000000..5101501
--- /dev/null
+++ b/src/ivicore/Qt6IviCoreMacros.cmake
@@ -0,0 +1,199 @@
+function(qt6_ivigenerator target)
+ qt6_ivigenerator_generate(${ARGN})
+ qt6_ivigenerator_include(${target} ${ARGN})
+endfunction()
+
+if(NOT QT_NO_CREATE_VERSIONLESS_FUNCTIONS)
+ function(qt_ivigenerator)
+ qt6_ivigenerator(${ARGV})
+ endfunction()
+endif()
+
+macro(internal_resolve_ivigenerator_path)
+ if (DEFINED QtIvi_BINARY_DIR AND (NOT DEFINED QT_BUILD_STANDALONE_TESTS))
+ set (VIRTUALENV ${QtIvi_BINARY_DIR}/src/tools/ivigenerator/qtivi_qface_virtualenv)
+ set (GENERATOR_PATH ${QtIvi_SOURCE_DIR}/src/tools/ivigenerator)
+ set (IVIGENERATOR_CONFIG ${QtIvi_BINARY_DIR}/src/tools/ivigenerator/.config)
+ else()
+ set (GENERATOR_PATH ${QTIVI_INSTALL_PREFIX}/${QT6_INSTALL_BINS}/ivigenerator)
+ set (VIRTUALENV ${GENERATOR_PATH}/qtivi_qface_virtualenv)
+ endif()
+endmacro()
+
+function(qt6_ivigenerator_generate)
+ internal_resolve_ivigenerator_path()
+
+ if (NOT EXISTS ${VIRTUALENV}/bin/activate AND NOT EXISTS ${VIRTUALENV}/Scripts/activate.bat)
+ return()
+ endif()
+
+ cmake_parse_arguments(
+ PARSE_ARGV 0
+ ARG
+ "" "QFACE_FORMAT;QFACE_OUTPUT_DIR;QFACE_SOURCES;QFACE_HEADERS_OUTPUT_DIR" "QFACE_ANNOTATIONS;QFACE_IMPORT_PATH"
+ )
+
+ if (DEFINED ARG_KEYWORDS_MISSING_VALUES)
+ message(FATAL_ERROR "Keywords can't be empty: ${ARG_KEYWORDS_MISSING_VALUES}")
+ endif()
+
+ if (NOT DEFINED ARG_QFACE_FORMAT)
+ set(ARG_QFACE_FORMAT frontend)
+ endif()
+ set(QFACE_OUTPUT_DIR ${ARG_QFACE_OUTPUT_DIR})
+ if (NOT DEFINED ARG_QFACE_OUTPUT_DIR)
+ set(QFACE_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
+ endif()
+ if (NOT DEFINED ARG_QFACE_SOURCES)
+ message(FATAL_ERROR "QFACE_SOURCES can't be empty")
+ endif()
+ get_filename_component(QFACE_SOURCES "${ARG_QFACE_SOURCES}" REALPATH BASE_DIR)
+ get_filename_component(QFACE_SOURCE_DIR "${ARG_QFACE_SOURCES}" DIRECTORY)
+ get_filename_component(QFACE_BASE_NAME "${ARG_QFACE_SOURCES}" NAME_WLE)
+ get_filename_component(QFACE_SOURCE_ANNOTATION ${QFACE_SOURCE_DIR}/${QFACE_BASE_NAME}.yaml REALPATH BASE_DIR)
+
+ set(QFACE_TEMPLATE_PWD "${GENERATOR_PATH}/templates/${ARG_QFACE_FORMAT}")
+ if(EXISTS ${QFACE_TEMPLATE_PWD})
+ set(FORMAT_PATH ${QFACE_TEMPLATE_PWD})
+ set(QFACE_FORMAT ${ARG_QFACE_FORMAT})
+ else()
+ get_filename_component(FORMAT_PATH "${ARG_QFACE_FORMAT}" REALPATH)
+ if(EXISTS ${FORMAT_PATH})
+ set(QFACE_FORMAT ${FORMAT_PATH})
+ endif()
+ endif()
+ if (NOT DEFINED QFACE_FORMAT)
+ message(FATAL_ERROR "Invalid QFACE_FORMAT: Couldn't find the template folder: ${FORMAT_PATH}")
+ endif()
+
+ # Register all source files to cause a cmake rerun
+ set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${QFACE_SOURCES})
+ if (EXISTS ${QFACE_SOURCE_ANNOTATION})
+ set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${QFACE_SOURCE_ANNOTATION})
+ endif()
+ # Also register all files which are part of the current template
+ file(GLOB FORMAT_FILES ${FORMAT_PATH}/*)
+ set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${FORMAT_FILES})
+ set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${FORMAT_PATH}.yaml)
+ # Most templates also have a dependency to a common folder
+ file(GLOB COMMON_FORMAT_FILES ${GENERATOR_PATH}/templates/*common*/*)
+ set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${COMMON_FORMAT_FILES})
+
+ set(GENERATOR_ARGUMENTS --format=${QFACE_FORMAT} --force)
+ foreach(ANNOTATION ${ARG_QFACE_ANNOTATIONS})
+ get_filename_component(ANNOTATION_PATH "${ANNOTATION}" REALPATH BASE_DIR)
+ list(APPEND GENERATOR_ARGUMENTS -A ${ANNOTATION_PATH})
+ # Dependency for regeneration
+ set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${ANNOTATION_PATH})
+ endforeach()
+
+ foreach(IMPORT ${ARG_QFACE_IMPORT_PATH})
+ get_filename_component(IMPORT_PATH "${IMPORT}" REALPATH BASE_DIR)
+ list(APPEND GENERATOR_ARGUMENTS -I ${IMPORT_PATH})
+ # Dependency for regeneration
+ file(GLOB QFACE_FILES ${IMPORT_PATH}/*.qface)
+ set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${QFACE_FILES})
+ endforeach()
+
+ # If the generator was run successfully before
+ # Check for the timestamps to determine when to run it again.
+ # TODO, this needs to be extended to also include template and yaml changes
+ if (${QFACE_SOURCES} IS_NEWER_THAN ${QFACE_OUTPUT_DIR}/.stamp-ivigenerator)
+ # TODO How to best unset those again afterwards ?
+ # Use cmake -E slee + cmake -E env COMMAND instead ?
+ #equals(QMAKE_HOST.os, Windows): ENV = chcp 65001 &&
+ if ("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows")
+ set(PYTHON_EXECUTABLE ${VIRTUALENV}/Scripts/python.exe)
+ file(TO_NATIVE_PATH "${VIRTUALENV}" VIRTUALENV)
+ else()
+ set(PYTHON_EXECUTABLE ${VIRTUALENV}/bin/python)
+ set(ENV{LC_ALL} en_US.UTF-8)
+ set(ENV{LD_LIBRARY_PATH} ${VIRTUALENV}/bin)
+ endif()
+ if (DEFINED IVIGENERATOR_CONFIG)
+ set(ENV{IVIGENERATOR_CONFIG} ${IVIGENERATOR_CONFIG})
+ endif()
+ set(ENV{PYTHONHOME} ${VIRTUALENV})
+ set(ENV{VIRTUAL_ENV} ${VIRTUALENV})
+
+ message(STATUS "Running ivigenerator for ${QFACE_SOURCES}")
+ execute_process(
+ COMMAND ${PYTHON_EXECUTABLE}
+ ${GENERATOR_PATH}/generate.py
+ ${GENERATOR_ARGUMENTS}
+ ${QFACE_SOURCES}
+ ${QFACE_OUTPUT_DIR}
+ RESULT_VARIABLE RET_CODE
+ OUTPUT_VARIABLE GENERATOR_LOG
+ ERROR_VARIABLE GENERATOR_LOG
+ COMMAND_ECHO STDOUT
+ )
+ message("${GENERATOR_LOG}")
+
+ # Touch the stamp file if the generator run was successful
+ if("${RET_CODE}" EQUAL "0")
+ execute_process(COMMAND ${CMAKE_COMMAND} -E touch ${QFACE_OUTPUT_DIR}/.stamp-ivigenerator)
+ else()
+ message(FATAL_ERROR "Error while running the ivigenerator")
+ endif()
+ endif()
+
+ # hack for the developer-build to have all headers where the Qt build expects them
+ if (DEFINED ARG_QFACE_HEADERS_OUTPUT_DIR)
+ file(GLOB HEADER_FILES ${QFACE_OUTPUT_DIR}/*.h)
+ file(COPY ${HEADER_FILES} DESTINATION ${ARG_QFACE_HEADERS_OUTPUT_DIR})
+ endif()
+
+endfunction()
+
+if(NOT QT_NO_CREATE_VERSIONLESS_FUNCTIONS)
+ function(qt_ivigenerator_generate)
+ qt6_ivigenerator_generate(${ARGV})
+ endfunction()
+endif()
+
+function(qt6_ivigenerator_include target)
+ internal_resolve_ivigenerator_path()
+
+ if (NOT EXISTS ${VIRTUALENV}/bin/activate AND NOT EXISTS ${VIRTUALENV}/Scripts/activate.bat)
+ # Create a dummy target instead
+ if (NOT TARGET ${target} AND NOT TEST ${target})
+ if (DEFINED QtIvi_BINARY_DIR)
+ file(TOUCH ${CMAKE_CURRENT_BINARY_DIR}/cmake_dummy.cpp)
+ add_library(${target} ${CMAKE_CURRENT_BINARY_DIR}/cmake_dummy.cpp)
+ else()
+ message(FATAL_ERROR "No virtualenv environment to run the ivigenerator")
+ endif()
+ endif()
+ return()
+ endif()
+
+ cmake_parse_arguments(
+ PARSE_ARGV 1
+ ARG
+ "" "QFACE_SOURCES;QFACE_OUTPUT_DIR" ""
+ )
+
+ if (DEFINED ARG_KEYWORDS_MISSING_VALUES)
+ message(FATAL_ERROR "Keywords can't be empty: ${ARG_KEYWORDS_MISSING_VALUES}")
+ endif()
+
+ set(QFACE_OUTPUT_DIR ${ARG_QFACE_OUTPUT_DIR})
+ if (NOT DEFINED ARG_QFACE_OUTPUT_DIR)
+ set(QFACE_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
+ endif()
+ if (NOT DEFINED ARG_QFACE_SOURCES)
+ message(FATAL_ERROR "QFACE_SOURCES can't be empty")
+ endif()
+ get_filename_component(QFACE_SOURCES "${ARG_QFACE_SOURCES}" REALPATH BASE_DIR)
+ get_filename_component(QFACE_BASE_NAME "${ARG_QFACE_SOURCES}" NAME_WLE)
+
+ set(CURRENT_TARGET "${target}")
+ include(${QFACE_OUTPUT_DIR}/${QFACE_BASE_NAME}.cmake)
+endfunction()
+
+if(NOT QT_NO_CREATE_VERSIONLESS_FUNCTIONS)
+ function(qt_ivigenerator_include)
+ qt6_ivigenerator_include(${ARGV})
+ endfunction()
+endif()
diff --git a/src/ivivehiclefunctions/CMakeLists.txt b/src/ivivehiclefunctions/CMakeLists.txt
index 6ab20cc..4541cb1 100644
--- a/src/ivivehiclefunctions/CMakeLists.txt
+++ b/src/ivivehiclefunctions/CMakeLists.txt
@@ -1,22 +1,39 @@
# Generated from ivivehiclefunctions.pro.
+# special case begin
#####################################################################
-## QtIviVehicleFunctions Binary:
+## IviVehicleFunctions Module:
#####################################################################
-qt_add_executable(QtIviVehicleFunctions
- GUI
- PUBLIC_LIBRARIES
+qt_ivigenerator_generate(
+ QFACE_SOURCES ivivehiclefunctions.qface
+ QFACE_FORMAT frontend
+ QFACE_MODULE_NAME QtIviVehicleFunctions
+ QFACE_HEADERS_OUTPUT_DIR ${QT_BUILD_DIR}/src/ivivehiclefunctions
+)
+make_directory(${QT_BUILD_DIR}/src/ivivehiclefunctions)
+
+qt_add_module(IviVehicleFunctions
+ LIBRARIES
Qt::CorePrivate
+ Qt::IviCorePrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
Qt::IviCore
+ PRIVATE_MODULE_INTERFACE
+ Qt::CorePrivate
Qt::IviCorePrivate
)
+qt_ivigenerator_include(IviVehicleFunctions
+ QFACE_SOURCES ivivehiclefunctions.qface
+)
+
+# special case end
+
#### Keys ignored in scope 1:.:.:ivivehiclefunctions.pro:<TRUE>:
# CMAKE_MODULE_TESTS = "'-'"
# OTHER_FILES = "$$PWD/doc/*.qdocconf" "$$PWD/doc/src/*.qdoc" "$$PWD/doc/snippets/*" "$$PWD/doc/images/*"
-# QFACE_MODULE_NAME = "QtIviVehicleFunctions"
-# QFACE_SOURCES = "ivivehiclefunctions.qface"
# QT_FOR_CONFIG = "ivicore"
## Scopes:
diff --git a/src/plugins/CMakeLists.txt b/src/plugins/CMakeLists.txt
index f2dbb2d..810c302 100644
--- a/src/plugins/CMakeLists.txt
+++ b/src/plugins/CMakeLists.txt
@@ -3,6 +3,6 @@
if(TARGET Qt::IviMedia)
add_subdirectory(ivimedia)
endif()
-if(TARGET ivivehiclefunctions)
+if(TARGET Qt::IviVehicleFunctions)
add_subdirectory(ivivehiclefunctions)
endif()
diff --git a/src/plugins/ivivehiclefunctions/vehiclefunctions_qtro/CMakeLists.txt b/src/plugins/ivivehiclefunctions/vehiclefunctions_qtro/CMakeLists.txt
index c97f629..71a3091 100644
--- a/src/plugins/ivivehiclefunctions/vehiclefunctions_qtro/CMakeLists.txt
+++ b/src/plugins/ivivehiclefunctions/vehiclefunctions_qtro/CMakeLists.txt
@@ -10,12 +10,16 @@ qt_internal_add_plugin(QtIviVehicleFunctionsQtROPlugin
PUBLIC_LIBRARIES
Qt::Core
Qt::IviCore
- ivivehiclefunctions
+ Qt::IviVehicleFunctions
+)
+
+# IVI Generator:
+qt_ivigenerator(QtIviVehicleFunctionsQtROPlugin
+ QFACE_SOURCES ../../../ivivehiclefunctions/ivivehiclefunctions.qface
+ QFACE_FORMAT backend_qtro
+ QFACE_MODULE_NAME QtIviVehicleFunctions
)
#### Keys ignored in scope 1:.:.:vehiclefunctions_qtro.pro:<TRUE>:
# CMAKE_MODULE_TESTS = "'-'"
# PLUGIN_EXTENDS = "ivivehiclefunctions"
-# QFACE_FORMAT = "backend_qtro"
-# QFACE_MODULE_NAME = "QtIviVehicleFunctions"
-# QFACE_SOURCES = "../../../ivivehiclefunctions/ivivehiclefunctions.qface"
diff --git a/src/plugins/ivivehiclefunctions/vehiclefunctions_simulator/CMakeLists.txt b/src/plugins/ivivehiclefunctions/vehiclefunctions_simulator/CMakeLists.txt
index 71ab87d..58c98a0 100644
--- a/src/plugins/ivivehiclefunctions/vehiclefunctions_simulator/CMakeLists.txt
+++ b/src/plugins/ivivehiclefunctions/vehiclefunctions_simulator/CMakeLists.txt
@@ -10,7 +10,7 @@ qt_internal_add_plugin(QtIviVehicleFunctionsSimulatorPlugin
PUBLIC_LIBRARIES
Qt::Core
Qt::IviCore
- ivivehiclefunctions
+ Qt::IviVehicleFunctions
)
# Resources:
@@ -27,10 +27,14 @@ qt_internal_add_resource(QtIviVehicleFunctionsSimulatorPlugin "qml"
)
+# IVI Generator:
+qt_ivigenerator(QtIviVehicleFunctionsSimulatorPlugin
+ QFACE_SOURCES ../../../ivivehiclefunctions/ivivehiclefunctions.qface
+ QFACE_FORMAT backend_simulator
+ QFACE_MODULE_NAME QtIviVehicleFunctions
+)
+
#### Keys ignored in scope 1:.:.:vehiclefunctions_simulator.pro:<TRUE>:
# CMAKE_MODULE_TESTS = "'-'"
# PLUGIN_EXTENDS = "ivivehiclefunctions"
-# QFACE_FORMAT = "backend_simulator"
-# QFACE_MODULE_NAME = "QtIviVehicleFunctions"
-# QFACE_SOURCES = "../../../ivivehiclefunctions/ivivehiclefunctions.qface"
# QML_IMPORT_PATH = "$$OUT_PWD/qml"
diff --git a/src/tools/ivigenerator/templates/backend_qtro.yaml b/src/tools/ivigenerator/templates/backend_qtro.yaml
index 795d781..0d0fbff 100644
--- a/src/tools/ivigenerator/templates/backend_qtro.yaml
+++ b/src/tools/ivigenerator/templates/backend_qtro.yaml
@@ -5,6 +5,7 @@ backend_qtro:
- "{{module.module_name|lower}}qtroplugin.cpp": "plugin.cpp.tpl"
- "{{module.module_name|lower}}.json": "plugin.json"
- "{{srcBase|lower}}.pri": "plugin.pri.tpl"
+ - '{{srcBase|lower}}.cmake': 'CMakeLists.txt.tpl'
interface:
documents:
- '{{interface|lower}}backend.h': 'backend.h.tpl'
diff --git a/src/tools/ivigenerator/templates/backend_qtro/CMakeLists.txt.tpl b/src/tools/ivigenerator/templates/backend_qtro/CMakeLists.txt.tpl
new file mode 100644
index 0000000..f72276c
--- /dev/null
+++ b/src/tools/ivigenerator/templates/backend_qtro/CMakeLists.txt.tpl
@@ -0,0 +1,19 @@
+find_package(Qt6 COMPONENTS RemoteObjects IviRemoteObjectsHelper)
+
+target_sources(${CURRENT_TARGET}
+ PRIVATE
+{% for interface in module.interfaces %}
+ {{interface|lower}}backend.cpp
+{% endfor %}
+ {{module.module_name|lower}}qtroplugin.cpp
+)
+
+qt_add_repc_replica(${CURRENT_TARGET}
+{% for interface in module.interfaces %}
+ {{interface|lower}}.rep
+{% endfor %}
+)
+
+### MISSING
+# OTHER_FILES += \
+# $$PWD/{{module.module_name|lower}}.json
diff --git a/src/tools/ivigenerator/templates/backend_simulator.yaml b/src/tools/ivigenerator/templates/backend_simulator.yaml
index bf8dad7..e1a75d2 100644
--- a/src/tools/ivigenerator/templates/backend_simulator.yaml
+++ b/src/tools/ivigenerator/templates/backend_simulator.yaml
@@ -8,6 +8,7 @@ backend_simulator:
- "{{module.module_name|lower}}_simulation_data.json": "common/simulation_data.json.tpl"
- "{{module.module_name|lower}}_simulation.qrc": "common/simulation.qrc.tpl"
- "{{srcBase|lower}}.pri": "plugin.pri.tpl"
+ - '{{srcBase|lower}}.cmake': 'CMakeLists.txt.tpl'
- "qml/{{module|qml_type|replace('.', '/')}}/simulation/plugins.qmltypes": "common/simulation.qmltypes.tpl"
- "qml/{{module|qml_type|replace('.', '/')}}/simulation/qmldir": "common/qmldir.tpl"
- "qml/{{module|qml_type|replace('.', '/')}}/plugins.qmltypes": "common/plugins.qmltypes.tpl"
diff --git a/src/tools/ivigenerator/templates/backend_simulator/CMakeLists.txt.tpl b/src/tools/ivigenerator/templates/backend_simulator/CMakeLists.txt.tpl
new file mode 100644
index 0000000..843a3f4
--- /dev/null
+++ b/src/tools/ivigenerator/templates/backend_simulator/CMakeLists.txt.tpl
@@ -0,0 +1,13 @@
+target_sources(${CURRENT_TARGET}
+ PRIVATE
+{% for interface in module.interfaces %}
+ {{interface|lower}}backend.cpp
+{% endfor %}
+ {{module.module_name|lower}}simulatorplugin.cpp
+ {{module.module_name|lower}}_simulation.qrc
+)
+
+### MISSING
+# OTHER_FILES += \
+# $$PWD/{{module.module_name|lower}}.json \
+# $$PWD/{{module.module_name|lower}}_simulation_data.json
diff --git a/src/tools/ivigenerator/templates/backend_simulator/plugin.pri.tpl b/src/tools/ivigenerator/templates/backend_simulator/plugin.pri.tpl
index 84dbe37..62a76b2 100644
--- a/src/tools/ivigenerator/templates/backend_simulator/plugin.pri.tpl
+++ b/src/tools/ivigenerator/templates/backend_simulator/plugin.pri.tpl
@@ -42,10 +42,6 @@
## Do not edit! All changes made to it will be lost.
#############################################################################
-{% if 'simulator' in features %}
-QT += simulator
-{% endif %}
-
HEADERS += \
{% for interface in module.interfaces %}
$$PWD/{{interface|lower}}backend.h \
diff --git a/src/tools/ivigenerator/templates/frontend.yaml b/src/tools/ivigenerator/templates/frontend.yaml
index 7aec967..7323d32 100644
--- a/src/tools/ivigenerator/templates/frontend.yaml
+++ b/src/tools/ivigenerator/templates/frontend.yaml
@@ -8,6 +8,7 @@ frontend:
- '{{module.module_name|lower}}modulefactory.h': 'modulefactory.h.tpl'
- '{{module.module_name|lower}}modulefactory.cpp': 'modulefactory.cpp.tpl'
- '{{srcBase|lower}}.pri': 'module.pri.tpl'
+ - '{{srcBase|lower}}.cmake': 'CMakeLists.txt.tpl'
- 'qml/{{module|qml_type|replace(".", "/")}}/plugins.qmltypes': 'common/plugins.qmltypes.tpl'
- "qml/{{module|qml_type|replace('.', '/')}}/designer/{{module.module_name|lower}}.metainfo": "common/designer.metainfo.tpl"
- 'qml/{{module|qml_type|replace(".", "/")}}/qmldir': 'common/qmldir.tpl'
diff --git a/src/tools/ivigenerator/templates/frontend/CMakeLists.txt.tpl b/src/tools/ivigenerator/templates/frontend/CMakeLists.txt.tpl
new file mode 100644
index 0000000..4f39367
--- /dev/null
+++ b/src/tools/ivigenerator/templates/frontend/CMakeLists.txt.tpl
@@ -0,0 +1,14 @@
+target_compile_definitions(${CURRENT_TARGET} PRIVATE QT_BUILD_{{module|upper|replace('.', '_')|strip_QT}}_LIB)
+
+target_sources(${CURRENT_TARGET}
+ PRIVATE
+{% for interface in module.interfaces %}
+ {{interface|lower}}.cpp
+ {{interface|lower}}backendinterface.cpp
+{% endfor %}
+{% for struct in module.structs %}
+ {{struct|lower}}.cpp
+{% endfor %}
+ {{module.module_name|lower}}module.cpp
+ {{module.module_name|lower}}modulefactory.cpp
+)
diff --git a/src/tools/ivigenerator/templates/qmlplugin.yaml b/src/tools/ivigenerator/templates/qmlplugin.yaml
index 368b4c1..e64398c 100644
--- a/src/tools/ivigenerator/templates/qmlplugin.yaml
+++ b/src/tools/ivigenerator/templates/qmlplugin.yaml
@@ -3,6 +3,7 @@ qmlplugin:
documents:
- "plugin.cpp": "plugin.cpp.tpl"
- "{{srcBase|lower}}.pri": "module.pri.tpl"
+ - '{{srcBase|lower}}.cmake': 'CMakeLists.txt.tpl'
- "plugins.qmltypes": "common/plugins.qmltypes.tpl"
- "designer/{{module.module_name|lower}}.metainfo": "common/designer.metainfo.tpl"
- "qmldir": "qmldir_plugin.tpl"
diff --git a/src/tools/ivigenerator/templates/qmlplugin/CMakeLists.txt.tpl b/src/tools/ivigenerator/templates/qmlplugin/CMakeLists.txt.tpl
new file mode 100644
index 0000000..435b92a
--- /dev/null
+++ b/src/tools/ivigenerator/templates/qmlplugin/CMakeLists.txt.tpl
@@ -0,0 +1,33 @@
+# TODO We probably dont' need this template at all in the cmake case
+# Keep it until the templates have been adapted and everything can be done without autogenerating
+
+if (NOT TARGET ${CURRENT_TARGET})
+ qt_add_qml_module(${CURRENT_TARGET}
+ URI "{{module|qml_type}}"
+ VERSION "{{module.majorVersion}}.{{module.minorVersion}}"
+ SKIP_TYPE_REGISTRATION
+ # TODO remove this again
+ # This is needed to make the test build work as it would create duplicate qmldir entries
+ # in the global qml folder
+ OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ PUBLIC_LIBRARIES
+ Qt::IviCore
+ SOURCES
+ plugin.cpp
+ )
+else()
+ target_sources(${CURRENT_TARGET}
+ PRIVATE
+ plugin.cpp
+ )
+endif()
+
+#set_target_properties(${CURRENT_TARGET} PROPERTIES
+# QT_QML_MODULE_VERSION {{module.majorVersion}}.{{module.minorVersion}}
+# QT_QML_MODULE_URI {{module|qml_type}}
+# QT_QMLTYPES_FILENAME plugins.qmltypes
+#)
+
+### MISSING
+# AUX_QML_FILES += $$PWD/qmldir \
+# $$PWD/designer/{{module.module_name|lower}}.metainfo
diff --git a/src/tools/ivigenerator/templates/server_qtro.yaml b/src/tools/ivigenerator/templates/server_qtro.yaml
index 0c8024e..f397468 100644
--- a/src/tools/ivigenerator/templates/server_qtro.yaml
+++ b/src/tools/ivigenerator/templates/server_qtro.yaml
@@ -4,6 +4,7 @@ server_qtro:
- "core.cpp": "core.cpp.tpl"
- "core.h": "core.h.tpl"
- "{{srcBase|lower}}.pri": "server.pri.tpl"
+ - '{{srcBase|lower}}.cmake': 'CMakeLists.txt.tpl'
interface:
documents:
- "{{interface|lower}}.rep": "common/interface.rep.tpl"
diff --git a/src/tools/ivigenerator/templates/server_qtro/CMakeLists.txt.tpl b/src/tools/ivigenerator/templates/server_qtro/CMakeLists.txt.tpl
new file mode 100644
index 0000000..963d7aa
--- /dev/null
+++ b/src/tools/ivigenerator/templates/server_qtro/CMakeLists.txt.tpl
@@ -0,0 +1,13 @@
+find_package(Qt6 COMPONENTS RemoteObjects)
+
+target_sources(${CURRENT_TARGET}
+ PRIVATE
+ core.cpp
+)
+
+qt_add_repc_source(${CURRENT_TARGET}
+{% for interface in module.interfaces %}
+ {{interface|lower}}.rep
+{% endfor %}
+)
+
diff --git a/src/tools/ivigenerator/templates/server_qtro_simulator.yaml b/src/tools/ivigenerator/templates/server_qtro_simulator.yaml
index 5563460..5a8dabe 100644
--- a/src/tools/ivigenerator/templates/server_qtro_simulator.yaml
+++ b/src/tools/ivigenerator/templates/server_qtro_simulator.yaml
@@ -4,6 +4,7 @@ server_qtro_simulator:
- "core.cpp": "core.cpp.tpl"
- "core.h": "core.h.tpl"
- "{{srcBase|lower}}.pri": "server.pri.tpl"
+ - '{{srcBase|lower}}.cmake': 'CMakeLists.txt.tpl'
- "main.cpp": "main.cpp.tpl"
- "{{module.module_name|lower}}_simulation.qml": "common/module_simulation.qml.tpl"
- "{{module.module_name|lower}}_simulation_data.json": "common/simulation_data.json.tpl"
diff --git a/src/tools/ivigenerator/templates/server_qtro_simulator/CMakeLists.txt.tpl b/src/tools/ivigenerator/templates/server_qtro_simulator/CMakeLists.txt.tpl
new file mode 100644
index 0000000..7398ad1
--- /dev/null
+++ b/src/tools/ivigenerator/templates/server_qtro_simulator/CMakeLists.txt.tpl
@@ -0,0 +1,23 @@
+find_package(Qt6 COMPONENTS RemoteObjects IviRemoteObjectsHelper)
+
+target_sources(${CURRENT_TARGET}
+ PRIVATE
+{% for interface in module.interfaces %}
+ {{interface|lower}}backend.cpp
+ {{interface|lower}}adapter.cpp
+{% endfor %}
+ core.cpp
+ main.cpp
+ {{module.module_name|lower}}_simulation.qrc
+)
+
+qt_add_repc_source(${CURRENT_TARGET}
+{% for interface in module.interfaces %}
+ {{interface|lower}}.rep
+{% endfor %}
+)
+
+### MISSING
+# OTHER_FILES += \
+# $$PWD/{{module.module_name|lower}}.json \
+# $$PWD/{{module.module_name|lower}}_simulation_data.json
diff --git a/src/tools/ivigenerator/templates/test.yaml b/src/tools/ivigenerator/templates/test.yaml
index fbd2801..70bec2d 100644
--- a/src/tools/ivigenerator/templates/test.yaml
+++ b/src/tools/ivigenerator/templates/test.yaml
@@ -2,6 +2,7 @@ test:
module:
documents:
- "{{srcBase|lower}}.pri": "module.pri.tpl"
+ - '{{srcBase|lower}}.cmake': 'CMakeLists.txt.tpl'
- 'main.cpp': 'main.cpp.tpl'
interface:
documents:
diff --git a/src/tools/ivigenerator/templates/test/CMakeLists.txt.tpl b/src/tools/ivigenerator/templates/test/CMakeLists.txt.tpl
new file mode 100644
index 0000000..4348529
--- /dev/null
+++ b/src/tools/ivigenerator/templates/test/CMakeLists.txt.tpl
@@ -0,0 +1,7 @@
+target_sources(${CURRENT_TARGET}
+ PRIVATE
+{% for interface in module.interfaces %}
+ tst_{{interface|lower}}.cpp
+{% endfor %}
+ main.cpp
+)
diff --git a/src/tools/vehiclefunctions-simulation-server/CMakeLists.txt b/src/tools/vehiclefunctions-simulation-server/CMakeLists.txt
index 54cd9f5..549def5 100644
--- a/src/tools/vehiclefunctions-simulation-server/CMakeLists.txt
+++ b/src/tools/vehiclefunctions-simulation-server/CMakeLists.txt
@@ -34,10 +34,14 @@ qt_add_resource(${target_name} "qml"
)
+# IVI Generator:
+qt_ivigenerator(ivivehiclefunctions-simulation-server
+ QFACE_SOURCES ../../ivivehiclefunctions/ivivehiclefunctions.qface
+ QFACE_FORMAT server_qtro_simulator
+ QFACE_MODULE_NAME QtIviVehicleFunctions
+)
+
#### Keys ignored in scope 1:.:.:vehiclefunctions-simulation-server.pro:<TRUE>:
-# QFACE_FORMAT = "server_qtro_simulator"
-# QFACE_MODULE_NAME = "QtIviVehicleFunctions"
-# QFACE_SOURCES = "../../ivivehiclefunctions/ivivehiclefunctions.qface"
# QML_IMPORT_PATH = "$$OUT_PWD/qml"
# QT_FOR_CONFIG = "ivicore"
# TEMPLATE = "app"