diff options
author | Dominik Holland <dominik.holland@qt.io> | 2021-05-11 14:22:17 +0200 |
---|---|---|
committer | Dominik Holland <dominik.holland@qt.io> | 2021-05-20 15:23:38 +0200 |
commit | 2d2d4e0cdaec8dbb6e8612f4d408d247ea57f993 (patch) | |
tree | 580be7366e716b5eb5e22ccc6059791f1cde1685 /src | |
parent | 3378986c6345587fbc55c9fb6e145bfa511095d3 (diff) | |
download | qtivi-2d2d4e0cdaec8dbb6e8612f4d408d247ea57f993.tar.gz |
Enable the QtRemoteObjects support
Similar to the previous commits, the examples and tests build ok, but
are not yet ready to be used and still need to be refactored.
Change-Id: Icb4482696e81a5a17b89622182053c5cfcb5fc7b
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
Diffstat (limited to 'src')
10 files changed, 68 insertions, 24 deletions
diff --git a/src/helper/remoteobjects/CMakeLists.txt b/src/helper/remoteobjects/CMakeLists.txt index 3a095e9..142e759 100644 --- a/src/helper/remoteobjects/CMakeLists.txt +++ b/src/helper/remoteobjects/CMakeLists.txt @@ -4,6 +4,12 @@ ## IviRemoteObjectsHelper Module: ##################################################################### +# FIXME Find a way to enable this again +# The generated remoteobjects headers are part of this internal module +# This is a problem as the headersclean target checks the headers before +# building the module and at that time the rep headers are not created yet +set(QT_FEATURE_headersclean FALSE) + qt_add_module(IviRemoteObjectsHelper CONFIG_MODULE_NAME iviremoteobjects_helper STATIC @@ -22,7 +28,7 @@ qt6_add_repc_source(IviRemoteObjectsHelper qivipagingmodel.rep ) qt6_add_repc_replica(IviRemoteObjectsHelper - qivipagingmodel.rep + qivipagingmodel.rep ) #### Keys ignored in scope 1:.:.:remoteobjects.pro:<TRUE>: diff --git a/src/helper/remoteobjects/qivipagingmodelqtroadapter.h b/src/helper/remoteobjects/qivipagingmodelqtroadapter.h index 9bd9a75..a7dc203 100644 --- a/src/helper/remoteobjects/qivipagingmodelqtroadapter.h +++ b/src/helper/remoteobjects/qivipagingmodelqtroadapter.h @@ -43,7 +43,7 @@ #define QIVIPAGINGMODELQTROADAPTER_H #include <QtIviCore/QIviPagingModelInterface> -#include <rep_qivipagingmodel_source.h> +#include "rep_qivipagingmodel_source.h" QT_BEGIN_NAMESPACE diff --git a/src/helper/remoteobjects/qiviremoteobjectpendingresult.h b/src/helper/remoteobjects/qiviremoteobjectpendingresult.h index d1fa92e..a9bdbb8 100644 --- a/src/helper/remoteobjects/qiviremoteobjectpendingresult.h +++ b/src/helper/remoteobjects/qiviremoteobjectpendingresult.h @@ -73,7 +73,7 @@ private: //POD, passing by value should be fine inline bool operator==(QIviRemoteObjectPendingResult left, QIviRemoteObjectPendingResult right) Q_DECL_NOTHROW { return left.id() == right.id() && left.failed() == right.failed(); -};; +} inline bool operator!=(QIviRemoteObjectPendingResult left, QIviRemoteObjectPendingResult right) Q_DECL_NOTHROW { return !(left == right); } diff --git a/src/helper/remoteobjects/qiviremoteobjectsourcehelper.h b/src/helper/remoteobjects/qiviremoteobjectsourcehelper.h index b60c9ac..80e7d5a 100644 --- a/src/helper/remoteobjects/qiviremoteobjectsourcehelper.h +++ b/src/helper/remoteobjects/qiviremoteobjectsourcehelper.h @@ -66,7 +66,7 @@ public: // work for methods/signals which take a QVariant. // The workaround is put the QVariant in a QVariant as a container. // QTBUG-75056 - return QVariant(QMetaType::QVariant, &variant); + return QVariant(QMetaType(QMetaType::QVariant), &variant); } QVariant fromPendingReply(const QIviPendingReplyBase &pendingReply) diff --git a/src/tools/ivigenerator/templates/backend_qtro/CMakeLists.txt.tpl b/src/tools/ivigenerator/templates/backend_qtro/CMakeLists.txt.tpl index f72276c..e1fbcd2 100644 --- a/src/tools/ivigenerator/templates/backend_qtro/CMakeLists.txt.tpl +++ b/src/tools/ivigenerator/templates/backend_qtro/CMakeLists.txt.tpl @@ -1,4 +1,6 @@ -find_package(Qt6 COMPONENTS RemoteObjects IviRemoteObjectsHelper) +if (NOT TARGET Qt6::RemoteObjects OR NOT TARGET Qt6::IviRemoteObjectsHelper) + find_package(Qt6 COMPONENTS RemoteObjects IviRemoteObjectsHelper) +endif() target_sources(${CURRENT_TARGET} PRIVATE @@ -8,12 +10,17 @@ target_sources(${CURRENT_TARGET} {{module.module_name|lower}}qtroplugin.cpp ) -qt_add_repc_replica(${CURRENT_TARGET} +qt6_add_repc_replica(${CURRENT_TARGET} {% for interface in module.interfaces %} - {{interface|lower}}.rep + ${CMAKE_CURRENT_BINARY_DIR}/{{interface|lower}}.rep {% endfor %} ) +target_link_libraries(${CURRENT_TARGET} PRIVATE + Qt6::RemoteObjects + Qt6::IviRemoteObjectsHelper +) + ### MISSING # OTHER_FILES += \ # $$PWD/{{module.module_name|lower}}.json diff --git a/src/tools/ivigenerator/templates/backend_qtro/pagingmodel.cpp.tpl b/src/tools/ivigenerator/templates/backend_qtro/pagingmodel.cpp.tpl index b9e7558..69be2a2 100644 --- a/src/tools/ivigenerator/templates/backend_qtro/pagingmodel.cpp.tpl +++ b/src/tools/ivigenerator/templates/backend_qtro/pagingmodel.cpp.tpl @@ -47,8 +47,8 @@ Q_LOGGING_CATEGORY(qLcRO{{interface}}{{property|upper_first}}, "{{module|qml_typ {{class}}::{{class}}(const QString &remoteObjectsLookupName, QObject* parent) : QIviPagingModelInterface(parent) - , m_node(nullptr) , m_helper(new QIviRemoteObjectReplicaHelper(qLcRO{{interface}}{{property|upper_first}}(), this)) + , m_node(nullptr) , m_remoteObjectsLookupName(remoteObjectsLookupName) { qRegisterMetaType<QIviPagingModelInterface*>(); diff --git a/src/tools/ivigenerator/templates/backend_simulator/CMakeLists.txt.tpl b/src/tools/ivigenerator/templates/backend_simulator/CMakeLists.txt.tpl index 843a3f4..93cad4a 100644 --- a/src/tools/ivigenerator/templates/backend_simulator/CMakeLists.txt.tpl +++ b/src/tools/ivigenerator/templates/backend_simulator/CMakeLists.txt.tpl @@ -1,5 +1,4 @@ -target_sources(${CURRENT_TARGET} - PRIVATE +set(${CURRENT_TARGET}_SOURCES {% for interface in module.interfaces %} {{interface|lower}}backend.cpp {% endfor %} @@ -7,6 +6,15 @@ target_sources(${CURRENT_TARGET} {{module.module_name|lower}}_simulation.qrc ) +qt_add_resources(${CURRENT_TARGET}_SOURCES + ${CMAKE_CURRENT_BINARY_DIR}/{{module.module_name|lower}}_simulation.qrc +) + +target_sources(${CURRENT_TARGET} + PRIVATE + ${${CURRENT_TARGET}_SOURCES} +) + ### MISSING # OTHER_FILES += \ # $$PWD/{{module.module_name|lower}}.json \ diff --git a/src/tools/ivigenerator/templates/server_qtro/CMakeLists.txt.tpl b/src/tools/ivigenerator/templates/server_qtro/CMakeLists.txt.tpl index 963d7aa..151d979 100644 --- a/src/tools/ivigenerator/templates/server_qtro/CMakeLists.txt.tpl +++ b/src/tools/ivigenerator/templates/server_qtro/CMakeLists.txt.tpl @@ -1,13 +1,19 @@ -find_package(Qt6 COMPONENTS RemoteObjects) +if (NOT TARGET Qt6::RemoteObjects OR NOT TARGET Qt6::IviRemoteObjectsHelper) + find_package(Qt6 COMPONENTS RemoteObjects IviRemoteObjectsHelper) +endif() target_sources(${CURRENT_TARGET} PRIVATE core.cpp ) -qt_add_repc_source(${CURRENT_TARGET} +qt6_add_repc_source(${CURRENT_TARGET} {% for interface in module.interfaces %} - {{interface|lower}}.rep + ${CMAKE_CURRENT_BINARY_DIR}/{{interface|lower}}.rep {% endfor %} ) +target_link_libraries(${CURRENT_TARGET} PRIVATE + Qt6::RemoteObjects + Qt6::IviRemoteObjectsHelper +) diff --git a/src/tools/ivigenerator/templates/server_qtro_simulator/CMakeLists.txt.tpl b/src/tools/ivigenerator/templates/server_qtro_simulator/CMakeLists.txt.tpl index 7398ad1..d48f2b8 100644 --- a/src/tools/ivigenerator/templates/server_qtro_simulator/CMakeLists.txt.tpl +++ b/src/tools/ivigenerator/templates/server_qtro_simulator/CMakeLists.txt.tpl @@ -1,22 +1,36 @@ -find_package(Qt6 COMPONENTS RemoteObjects IviRemoteObjectsHelper) +if (NOT TARGET Qt6::RemoteObjects OR NOT TARGET Qt6::IviRemoteObjectsHelper) + find_package(Qt6 COMPONENTS RemoteObjects IviRemoteObjectsHelper) +endif() -target_sources(${CURRENT_TARGET} - PRIVATE +set(${CURRENT_TARGET}_SOURCES {% 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} +qt_add_resources(${CURRENT_TARGET}_SOURCES + ${CMAKE_CURRENT_BINARY_DIR}/{{module.module_name|lower}}_simulation.qrc +) + +target_sources(${CURRENT_TARGET} + PRIVATE + ${${CURRENT_TARGET}_SOURCES} +) + +qt6_add_repc_source(${CURRENT_TARGET} {% for interface in module.interfaces %} - {{interface|lower}}.rep + ${CMAKE_CURRENT_BINARY_DIR}/{{interface|lower}}.rep {% endfor %} ) +target_link_libraries(${CURRENT_TARGET} PRIVATE + Qt6::RemoteObjects + Qt6::IviRemoteObjectsHelper +) + ### MISSING # OTHER_FILES += \ # $$PWD/{{module.module_name|lower}}.json \ diff --git a/src/tools/vehiclefunctions-simulation-server/CMakeLists.txt b/src/tools/vehiclefunctions-simulation-server/CMakeLists.txt index 549def5..8a091b3 100644 --- a/src/tools/vehiclefunctions-simulation-server/CMakeLists.txt +++ b/src/tools/vehiclefunctions-simulation-server/CMakeLists.txt @@ -5,11 +5,14 @@ ##################################################################### qt_get_tool_target_name(target_name ivivehiclefunctions-simulation-server) -qt_add_tool(${target_name} - PUBLIC_LIBRARIES - # Remove: gui +qt_internal_add_tool(${target_name} + TOOLS_TARGET IviVehicleFunctions + LIBRARIES Qt::IviCore - ivivehiclefunctions + Qt::IviVehicleFunctions + PUBLIC_LIBRARIES + Qt::IviCore + Qt::IviVehicleFunctions ) # Resources: @@ -35,7 +38,7 @@ qt_add_resource(${target_name} "qml" # IVI Generator: -qt_ivigenerator(ivivehiclefunctions-simulation-server +qt_ivigenerator(${target_name} QFACE_SOURCES ../../ivivehiclefunctions/ivivehiclefunctions.qface QFACE_FORMAT server_qtro_simulator QFACE_MODULE_NAME QtIviVehicleFunctions |