aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPasi Petäjäjärvi <pasi.petajajarvi@qt.io>2021-06-17 19:49:56 +0300
committerSamuli Piippo <samuli.piippo@qt.io>2021-12-29 10:56:34 +0200
commit7b9b54e5d32ff530345ad5c099a4c92caec2ae78 (patch)
tree36415f726f4a6341b5905c7b02778d4ca9ae0b00
parent8927654c3e57e8240bb59faf16a60b6f0293a8e7 (diff)
QtInterfaceFramework: Add support
Adds Qt Interface Framework module. Task-number: QTBUG-94105 Change-Id: I3f8a1caf251e2e6b8be55e78361a3e0f2b95fca4 Reviewed-by: Samuli Piippo <samuli.piippo@qt.io> (cherry picked from commit d4572bf1b9ae141f85752d6c97dcb6041fd91e8f) Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
-rw-r--r--recipes-qt/packagegroups/nativesdk-packagegroup-qt6-toolchain-host.bb2
-rw-r--r--recipes-qt/packagegroups/packagegroup-qt6-addons.bb1
-rw-r--r--recipes-qt/qt6/qt6-git.inc1
-rw-r--r--recipes-qt/qt6/qtinterfaceframework.inc34
-rw-r--r--recipes-qt/qt6/qtinterfaceframework/if-services.target3
-rw-r--r--recipes-qt/qt6/qtinterfaceframework/ifmedia-simulation-server.service13
-rw-r--r--recipes-qt/qt6/qtinterfaceframework/ifvehiclefunctions-simulation-server.service13
-rw-r--r--recipes-qt/qt6/qtinterfaceframework/simulation-server.conf8
-rw-r--r--recipes-qt/qt6/qtinterfaceframework_git.bb73
9 files changed, 148 insertions, 0 deletions
diff --git a/recipes-qt/packagegroups/nativesdk-packagegroup-qt6-toolchain-host.bb b/recipes-qt/packagegroups/nativesdk-packagegroup-qt6-toolchain-host.bb
index efe01f0..cf9c0f4 100644
--- a/recipes-qt/packagegroups/nativesdk-packagegroup-qt6-toolchain-host.bb
+++ b/recipes-qt/packagegroups/nativesdk-packagegroup-qt6-toolchain-host.bb
@@ -18,6 +18,7 @@ RDEPENDS:${PN} += " \
nativesdk-qtbase-tools \
nativesdk-qtdeclarative-dev \
nativesdk-qtdeclarative-tools \
+ ${@bb.utils.contains('BBFILE_COLLECTIONS', 'meta-python', 'nativesdk-qtinterfaceframework-dev nativesdk-qtinterfaceframework-tools', '', d)} \
nativesdk-qtquick3d-dev \
nativesdk-qtquick3d-tools \
nativesdk-qtremoteobjects-dev \
@@ -37,4 +38,5 @@ RDEPENDS:${PN}:remove:mingw32 = " \
nativesdk-cmake \
nativesdk-ninja \
nativesdk-perl-modules \
+ ${@bb.utils.contains('BBFILE_COLLECTIONS', 'meta-python', 'nativesdk-qtinterfaceframework-dev nativesdk-qtinterfaceframework-tools', '', d)} \
"
diff --git a/recipes-qt/packagegroups/packagegroup-qt6-addons.bb b/recipes-qt/packagegroups/packagegroup-qt6-addons.bb
index 59b69cb..555f4ac 100644
--- a/recipes-qt/packagegroups/packagegroup-qt6-addons.bb
+++ b/recipes-qt/packagegroups/packagegroup-qt6-addons.bb
@@ -18,6 +18,7 @@ RDEPENDS:${PN} += " \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtdatavis3d', '', d)} \
qtdeviceutilities \
qtimageformats \
+ ${@bb.utils.contains('BBFILE_COLLECTIONS', 'meta-python', 'qtinterfaceframework', '', d)} \
qtlottie \
qtmqtt \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtmultimedia', '', d)} \
diff --git a/recipes-qt/qt6/qt6-git.inc b/recipes-qt/qt6/qt6-git.inc
index 4def346..96296fb 100644
--- a/recipes-qt/qt6/qt6-git.inc
+++ b/recipes-qt/qt6/qt6-git.inc
@@ -27,6 +27,7 @@ SRCREV_qtdatavis3d = "a55e93db7a9a69a6dcf64f8df78228c7584c15a5"
SRCREV_qtdeclarative = "c9518ea703fa1fd739e8f7cdbe2cbc1aa46cf205"
SRCREV_qtdeviceutilities = "b6ff504fab5efc2692c0adac7fc64e729011f625"
SRCREV_qtimageformats = "9c5aa280c1df6e161b25f5b0c1a1a7d7b0ddb51c"
+SRCREV_qtinterfaceframework = "01038ad500c2df3f8bdd9c40bd7633430ffa5db4"
SRCREV_qtlottie = "734dd09b28551859ad4d2208354cce11cf347058"
SRCREV_qtmqtt = "bb2dc4195dfe45008de883a7d0e85d8bc0a239b5"
SRCREV_qtmultimedia = "98336f92b84a8ecfde5cc01622471086579cfa52"
diff --git a/recipes-qt/qt6/qtinterfaceframework.inc b/recipes-qt/qt6/qtinterfaceframework.inc
new file mode 100644
index 0000000..02bfdc3
--- /dev/null
+++ b/recipes-qt/qt6/qtinterfaceframework.inc
@@ -0,0 +1,34 @@
+inherit systemd
+
+SRC_URI += " \
+ file://ifmedia-simulation-server.service \
+ file://ifvehiclefunctions-simulation-server.service \
+ file://if-services.target \
+ file://simulation-server.conf \
+"
+
+do_install:append:class-target() {
+ install -m 0755 -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/ifmedia-simulation-server.service ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/ifvehiclefunctions-simulation-server.service ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/if-services.target ${D}${systemd_unitdir}/system/
+
+ install -m 0755 -d ${D}${sysconfdir}
+ install -m 0755 ${WORKDIR}/simulation-server.conf ${D}${sysconfdir}/
+}
+
+SYSTEMD_PACKAGES = "${PN}-simulation"
+SYSTEMD_SERVICE:${PN}-simulation = " \
+ ifmedia-simulation-server.service \
+ ifvehiclefunctions-simulation-server.service \
+ if-services.target \
+ "
+
+PACKAGES =+ "${PN}-simulation"
+FILES:${PN}-simulation = " \
+ ${QT6_INSTALL_BINDIR}/ifmedia-simulation-server \
+ ${QT6_INSTALL_BINDIR}/ifvehiclefunctions-simulation-server \
+ ${QT6_INSTALL_PLUGINSDIR}/interfaceframework/ \
+ ${systemd_unitdir}/system \
+ ${sysconfdir}/simulation-server.conf \
+ "
diff --git a/recipes-qt/qt6/qtinterfaceframework/if-services.target b/recipes-qt/qt6/qtinterfaceframework/if-services.target
new file mode 100644
index 0000000..24d990e
--- /dev/null
+++ b/recipes-qt/qt6/qtinterfaceframework/if-services.target
@@ -0,0 +1,3 @@
+[Unit]
+Description=Qt Interface Framework services
+After=systemd-user-sessions.service
diff --git a/recipes-qt/qt6/qtinterfaceframework/ifmedia-simulation-server.service b/recipes-qt/qt6/qtinterfaceframework/ifmedia-simulation-server.service
new file mode 100644
index 0000000..2ecba90
--- /dev/null
+++ b/recipes-qt/qt6/qtinterfaceframework/ifmedia-simulation-server.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=ifmedia-simulation-server
+PartOf=if-services.target
+Before=if-services.target
+
+[Service]
+User=root
+ExecStart=/usr/bin/ifmedia-simulation-server
+Restart=on-failure
+Environment=SERVER_CONF_PATH=/etc/simulation-server.conf
+
+[Install]
+WantedBy=if-services.target
diff --git a/recipes-qt/qt6/qtinterfaceframework/ifvehiclefunctions-simulation-server.service b/recipes-qt/qt6/qtinterfaceframework/ifvehiclefunctions-simulation-server.service
new file mode 100644
index 0000000..0929118
--- /dev/null
+++ b/recipes-qt/qt6/qtinterfaceframework/ifvehiclefunctions-simulation-server.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=ifvehiclefunctions-simulation-server
+PartOf=if-services.target
+Before=if-services.target
+
+[Service]
+User=root
+ExecStart=/usr/bin/ifvehiclefunctions-simulation-server
+Restart=on-failure
+Environment=SERVER_CONF_PATH=/etc/simulation-server.conf
+
+[Install]
+WantedBy=if-services.target
diff --git a/recipes-qt/qt6/qtinterfaceframework/simulation-server.conf b/recipes-qt/qt6/qtinterfaceframework/simulation-server.conf
new file mode 100644
index 0000000..6b0a7af
--- /dev/null
+++ b/recipes-qt/qt6/qtinterfaceframework/simulation-server.conf
@@ -0,0 +1,8 @@
+[remotesettings]
+Registry=tcp://0.0.0.0:9999
+
+[drivedata]
+Registry=tcp://0.0.0.0:9998
+
+[qtifmedia]
+Registry=tcp://0.0.0.0:9997
diff --git a/recipes-qt/qt6/qtinterfaceframework_git.bb b/recipes-qt/qt6/qtinterfaceframework_git.bb
new file mode 100644
index 0000000..ba3d327
--- /dev/null
+++ b/recipes-qt/qt6/qtinterfaceframework_git.bb
@@ -0,0 +1,73 @@
+DESCRIPTION = "Qt Interface Framework"
+LICENSE = "(GFDL-1.3 & BSD & The-Qt-Company-GPL-Exception-1.0 & (LGPL-3.0 | GPL-2.0+)) | The-Qt-Company-Commercial"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
+ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \
+"
+
+inherit qt6-cmake pkgconfig
+
+include recipes-qt/qt6/qt6-git.inc
+include recipes-qt/qt6/qt6.inc
+
+python() {
+ if 'meta-python' not in d.getVar('BBFILE_COLLECTIONS').split():
+ raise bb.parse.SkipRecipe('Requires meta-python to be present.')
+}
+
+# Default build and package these
+REFERENCE_API ?= "1"
+SIMULATION_SUPPORT ?= "1"
+include ${@bb.utils.contains('SIMULATION_SUPPORT', '1', 'qtinterfaceframework.inc', '', d)}
+
+FILES:${PN}-dev += " \
+ ${QT6_INSTALL_DATADIR}/ifcodegen-templates \
+ "
+
+PACKAGES =+ "${PN}-refapi-media"
+FILES:${PN}-refapi-media = "\
+ ${QT6_INSTALL_LIBDIR}/libQt6IfMedia.so.* \
+ ${QT6_INSTALL_LIBDIR}/qml/QtInterfaceFramework/Media \
+ "
+
+PACKAGES =+ "${PN}-refapi-vehiclefuntions"
+FILES:${PN}-refapi-vehiclefuntions = "\
+ ${QT6_INSTALL_LIBDIR}/libQt6IfVehicleFunctions.so.* \
+ ${QT6_INSTALL_LIBDIR}/qml/QtInterfaceFramework/VehicleFunctions \
+ "
+
+DEPENDS += "qtbase qtinterfaceframework-native"
+
+PACKAGECONFIG ?= "ifcodegen remoteobjects interfaceframework \
+ ${PACKAGECONFIG_REFERENCE_API} \
+ ${PACKAGECONFIG_SIMULATION} \
+ "
+
+PACKAGECONFIG[taglib] = "-DFEATURE_taglib=ON,-DFEATURE_taglib=OFF,taglib"
+PACKAGECONFIG[host-tools-only] = "-DFEATURE_host_tools_only=ON,-DFEATURE_host_tools_only=OFF"
+PACKAGECONFIG[ifcodegen] = "-DFEATURE_ifcodegen=ON,-DFEATURE_ifcodegen=OFF,python3-qface,python3-qface"
+PACKAGECONFIG[remoteobjects] = "-DFEATURE_remoteobjects=ON,-DFEATURE_remoteobjects=OFF,qtremoteobjects qtremoteobjects-native"
+
+#interfaceframework only
+PACKAGECONFIG[interfaceframework] = "-DFEATURE_interfaceframework=ON,-DFEATURE_interfaceframework=OFF"
+
+# reference API's
+PACKAGECONFIG[ifmedia] = "-DFEATURE_ifmedia=ON,-DFEATURE_ifmedia=OFF, qtmultimedia qtdeclarative"
+PACKAGECONFIG[ifvehiclefunctions] = "-DFEATURE_ifvehiclefunctions=ON,-DFEATURE_ifvehiclefunctions=OFF, qtdeclarative"
+
+PACKAGECONFIG_REFERENCE_API ?= "${@bb.utils.contains('REFERENCE_API', '1', 'ifvehiclefunctions ifmedia taglib', '', d)}"
+
+# simulation support
+PACKAGECONFIG[no-media-simulation] = "-DFEATURE_media_qtro_backend=OFF -DFEATURE_media_qtro_simulation_server=OFF -DFEATURE_media_simulation_backend=OFF -DFEATURE_tuner_simulation_backend=OFF"
+PACKAGECONFIG[no-vehiclefuntions-simulation] = "-DFEATURE_vehiclefunctions_qtro_backend=OFF -DFEATURE_vehiclefunctions_qtro_simulation_server=OFF -DFEATURE_vehiclefunctions_simulation_backend=OFF"
+
+PACKAGECONFIG_SIMULATION ?= "${@bb.utils.contains('SIMULATION_SUPPORT', '1', '', 'no-media-simulation no-vehiclefuntions-simulation', d)}"
+
+PACKAGECONFIG:class-native ??= "interfaceframework ifcodegen host-tools-only remoteobjects"
+PACKAGECONFIG:class-nativesdk ??= "${PACKAGECONFIG:class-native}"
+
+BBCLASSEXTEND = "native nativesdk"
+