summaryrefslogtreecommitdiff
path: root/recipes-qt
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2016-04-20 17:49:45 +0200
committerMax Krummenacher <max.krummenacher@toradex.com>2016-06-30 13:28:27 +0200
commit1f8ba4c2231c32410f2a33480d2e259bcf1482d2 (patch)
tree55ff8b08ac6b1301ffd4e343c30667dac5839b13 /recipes-qt
parent746017b696a26dfd1b748c68751a56cfc2710628 (diff)
qt5-x11-free-systemd: add systemd service recipe to start a qt5 app
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Diffstat (limited to 'recipes-qt')
-rw-r--r--recipes-qt/qt5/qt5-x11-free-systemd.bb24
-rw-r--r--recipes-qt/qt5/qt5-x11-free-systemd/qt5-x11-demo-init43
-rw-r--r--recipes-qt/qt5/qt5-x11-free-systemd/qt5-x11-demo.service10
3 files changed, 77 insertions, 0 deletions
diff --git a/recipes-qt/qt5/qt5-x11-free-systemd.bb b/recipes-qt/qt5/qt5-x11-free-systemd.bb
new file mode 100644
index 0000000..304b711
--- /dev/null
+++ b/recipes-qt/qt5/qt5-x11-free-systemd.bb
@@ -0,0 +1,24 @@
+SECTION = "x11/libs"
+SUMMARY = "systemd qtapplication autostart"
+RDEPENDS_${PN} = ""
+# The license is meant for this recipe and the files it installs.
+# RNDIS is part of the kernel, udhcpd is part of busybox
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+
+inherit allarch systemd
+
+SRC_URI = "file://qt5-x11-demo.service \
+ file://qt5-x11-demo-init "
+
+do_install () {
+ install -d ${D}/${bindir}
+ install -m 0755 ${WORKDIR}/qt5-x11-demo-init ${D}/${bindir}
+
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/qt5-x11-demo.service ${D}${systemd_unitdir}/system
+}
+
+NATIVE_SYSTEMD_SUPPORT = "1"
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "qt5-x11-demo.service"
diff --git a/recipes-qt/qt5/qt5-x11-free-systemd/qt5-x11-demo-init b/recipes-qt/qt5/qt5-x11-free-systemd/qt5-x11-demo-init
new file mode 100644
index 0000000..76922ec
--- /dev/null
+++ b/recipes-qt/qt5/qt5-x11-free-systemd/qt5-x11-demo-init
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+set -e
+
+cd /usr/share/qtsmarthome-1.0
+QTAPP="smarthome"
+QTAPPSTART="./${QTAPP} > /var/log/Xsession.log 2>&1"
+
+case "$1" in
+ start)
+ echo "Starting ${QTAPP}"
+ if [ -f /etc/profile.d/tslib.sh ]; then
+ source /etc/profile.d/tslib.sh
+ fi
+ if [ -e "$TSLIB_TSDEVICE" ]; then
+ if [ ! -f /etc/pointercal ]; then
+ /usr/bin/ts_calibrate
+ fi
+ else
+ if [ -e "/usr/bin/xinput_calibrator_once.sh" ]; then
+ xinput_calibrator_once.sh
+ fi
+ fi
+ Xorg &
+ export DISPLAY=:0
+ eval $QTAPPSTART &
+ ;;
+ stop)
+ echo "Stopping ${QTAPP}"
+ killall $QTAPP
+ killall Xorg
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 { start | stop | restart }" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/recipes-qt/qt5/qt5-x11-free-systemd/qt5-x11-demo.service b/recipes-qt/qt5/qt5-x11-free-systemd/qt5-x11-demo.service
new file mode 100644
index 0000000..053f273
--- /dev/null
+++ b/recipes-qt/qt5/qt5-x11-free-systemd/qt5-x11-demo.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=start X and a qt application
+
+[Service]
+Type=forking
+ExecStart=/usr/bin/qt5-x11-demo-init start
+ExecStop=/usr/bin/qt5-x11-demo-init stop
+
+[Install]
+WantedBy=graphical.target