summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDominik Holland <dominik.holland@qt.io>2021-05-11 14:22:17 +0200
committerDominik Holland <dominik.holland@qt.io>2021-05-20 15:23:38 +0200
commit2d2d4e0cdaec8dbb6e8612f4d408d247ea57f993 (patch)
tree580be7366e716b5eb5e22ccc6059791f1cde1685 /src
parent3378986c6345587fbc55c9fb6e145bfa511095d3 (diff)
downloadqtivi-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')
-rw-r--r--src/helper/remoteobjects/CMakeLists.txt8
-rw-r--r--src/helper/remoteobjects/qivipagingmodelqtroadapter.h2
-rw-r--r--src/helper/remoteobjects/qiviremoteobjectpendingresult.h2
-rw-r--r--src/helper/remoteobjects/qiviremoteobjectsourcehelper.h2
-rw-r--r--src/tools/ivigenerator/templates/backend_qtro/CMakeLists.txt.tpl13
-rw-r--r--src/tools/ivigenerator/templates/backend_qtro/pagingmodel.cpp.tpl2
-rw-r--r--src/tools/ivigenerator/templates/backend_simulator/CMakeLists.txt.tpl12
-rw-r--r--src/tools/ivigenerator/templates/server_qtro/CMakeLists.txt.tpl12
-rw-r--r--src/tools/ivigenerator/templates/server_qtro_simulator/CMakeLists.txt.tpl26
-rw-r--r--src/tools/vehiclefunctions-simulation-server/CMakeLists.txt13
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