From 190108b9bea85ecc5b9d471d2a7c594b853cbae9 Mon Sep 17 00:00:00 2001 From: Samuli Piippo Date: Wed, 13 May 2015 10:21:19 +0300 Subject: emulator: Qt5 support for emulator Emulator has special handling for OpenGL support: QtGlesStream provides the runtime opengl support but since it depends on qtbase, we need to use qtglesstream-dummy-client when building qt. Also since both recipes provide same files, we must disable do_populate_sysroot from qtglesstream so that libs from dummy-client remain there. Change-Id: Ifde698e7d46863dbb82c6f3ad791412775e111ea Reviewed-by: Eirik Aavitsland --- conf/distro/include/emulator.conf | 12 ++++- .../b2qt-appcontroller/emulator/appcontroller.conf | 7 +++ recipes-qt/images/b2qt-embedded-qt5-image.bb | 3 ++ ...kagegroup-b2qt-embedded-qt5-toolchain-target.bb | 3 ++ recipes-qt/qt5-addons/qtglesstream.bb | 58 ++++++++++++++++++++++ recipes/opengldummy/opengldummy.bb | 10 ++-- recipes/opengldummy/opengldummy.inc | 3 -- recipes/opengldummy/qtglesstream-dummy-client.bb | 10 +++- .../virtualbox-guest-additions_4.2.14.bb | 4 -- 9 files changed, 95 insertions(+), 15 deletions(-) create mode 100644 recipes-qt/b2qt-addons/b2qt-appcontroller/emulator/appcontroller.conf create mode 100644 recipes-qt/qt5-addons/qtglesstream.bb diff --git a/conf/distro/include/emulator.conf b/conf/distro/include/emulator.conf index 5453742..d7afc52 100644 --- a/conf/distro/include/emulator.conf +++ b/conf/distro/include/emulator.conf @@ -29,14 +29,22 @@ MACHINE_EXTRA_RRECOMMENDS += "\ kernel-module-snd-intel8x0 \ " -kernel_autoload_snd-intel8x0 = "snd-intel8x0" +PREFERRED_PROVIDER_virtual/egl = "qtglesstream-dummy-client" +PREFERRED_PROVIDER_virtual/libgles2 = "qtglesstream-dummy-client" + +KERNEL_MODULE_AUTOLOAD += "snd-intel8x0 vboxguest" DISTRO_FEATURES_remove = "webengine" MACHINE_EXTRA_INSTALL = "\ mount-vboxsf \ " - MACHINE_EXTRA_INSTALL_SDK = "\ qtglesstream-dummy-client-dev \ " +MACHINE_EXTRA_INSTALL_QT = "\ + qtglesstream \ + " +MACHINE_EXTRA_INSTALL_QT_SDK = "\ + qtglesstream-dev \ + " diff --git a/recipes-qt/b2qt-addons/b2qt-appcontroller/emulator/appcontroller.conf b/recipes-qt/b2qt-addons/b2qt-appcontroller/emulator/appcontroller.conf new file mode 100644 index 0000000..e3b35f0 --- /dev/null +++ b/recipes-qt/b2qt-addons/b2qt-appcontroller/emulator/appcontroller.conf @@ -0,0 +1,7 @@ +env=QT_QPA_GENERIC_PLUGINS=simulator +env=QT_QPA_EGLFS_HIDECURSOR=1 +env=QML2_IMPORT_PATH=/data/user/qt/qmlplugins +env=QT_IM_MODULE=qtvirtualkeyboard +env=QTGLESSTREAM_DISPLAY=192.168.56.1 +env=QT_QUICK_CONTROLS_STYLE=Flat +base=linux diff --git a/recipes-qt/images/b2qt-embedded-qt5-image.bb b/recipes-qt/images/b2qt-embedded-qt5-image.bb index 4631a58..daaa6e4 100644 --- a/recipes-qt/images/b2qt-embedded-qt5-image.bb +++ b/recipes-qt/images/b2qt-embedded-qt5-image.bb @@ -36,7 +36,10 @@ IMAGE_FEATURES += "\ inherit core-image inherit bootfs-image +MACHINE_EXTRA_INSTALL_QT ?= "" + IMAGE_INSTALL += "\ + ${MACHINE_EXTRA_INSTALL_QT} \ packagegroup-b2qt-embedded-base \ packagegroup-b2qt-embedded-tools \ packagegroup-b2qt-embedded-gstreamer \ diff --git a/recipes-qt/packagegroups/packagegroup-b2qt-embedded-qt5-toolchain-target.bb b/recipes-qt/packagegroups/packagegroup-b2qt-embedded-qt5-toolchain-target.bb index bbc8e44..a4fc1fa 100644 --- a/recipes-qt/packagegroups/packagegroup-b2qt-embedded-qt5-toolchain-target.bb +++ b/recipes-qt/packagegroups/packagegroup-b2qt-embedded-qt5-toolchain-target.bb @@ -28,7 +28,10 @@ inherit packagegroup PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1" +MACHINE_EXTRA_INSTALL_QT_SDK ?= "" + RDEPENDS_${PN} += " \ + ${MACHINE_EXTRA_INSTALL_QT_SDK} \ packagegroup-b2qt-embedded-toolchain-target \ qt3d-dev \ qtbase-dev \ diff --git a/recipes-qt/qt5-addons/qtglesstream.bb b/recipes-qt/qt5-addons/qtglesstream.bb new file mode 100644 index 0000000..96ab1f7 --- /dev/null +++ b/recipes-qt/qt5-addons/qtglesstream.bb @@ -0,0 +1,58 @@ +############################################################################# +## +## Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +## +## This file is part of the Qt Enterprise Embedded Scripts of the Qt +## framework. +## +## $QT_BEGIN_LICENSE$ +## Commercial License Usage Only +## Licensees holding valid commercial Qt license agreements with Digia +## with an appropriate addendum covering the Qt Enterprise Embedded Scripts, +## may use this file in accordance with the terms contained in said license +## agreement. +## +## For further information use the contact form at +## http://www.qt.io/contact-us. +## +## +## $QT_END_LICENSE$ +## +############################################################################# + +DESCRIPTION = "QtGlesStream" +LICENSE = "QtEnterprise" +LIC_FILES_CHKSUM = "file://qtglesstream.pro;md5=e95d9351d26ed899188e02d44133cae0" + +inherit qt5-module + +SRC_URI = " \ + git://qt-gerrit.it.local/QtRD-15810/qtglesstream.git;branch=${QT_BRANCH};protocol=ssh \ + " + +PV = "1.0.0" +SRCREV = "137d476b0e39eaaa6f35296b6bd962175e6ea5d6" +QT_BRANCH = "dev" + +S = "${WORKDIR}/git" + +DEPENDS = "qtbase" +RREPLACES_${PN} = "qtglesstream-dummy-client" +RREPLACES_${PN}-dev = "qtglesstream-dummy-client-dev" + +do_install_append() { + install -m 0755 -d ${D}${includedir}/EGL + install -m 0755 ${S}/headers/EGL/* ${D}${includedir}/EGL + + install -m 0755 -d ${D}${includedir}/GLES2 + install -m 0755 ${S}/headers/GLES2/* ${D}${includedir}/GLES2 + + install -m 0755 -d ${D}${includedir}/GLES3 + install -m 0755 ${S}/headers/GLES3/* ${D}${includedir}/GLES3 + + install -m 0755 -d ${D}${includedir}/KHR + install -m 0755 ${S}/headers/KHR/* ${D}${includedir}/KHR +} + +# no not overwrite files from qtglesstream-dummy-client +do_populate_sysroot[noexec] = "1" diff --git a/recipes/opengldummy/opengldummy.bb b/recipes/opengldummy/opengldummy.bb index b33e060..680e8cc 100644 --- a/recipes/opengldummy/opengldummy.bb +++ b/recipes/opengldummy/opengldummy.bb @@ -29,12 +29,14 @@ PV = "1.0.0" require opengldummy.inc do_compile() { - ${CC} -DQGS_BUILD_CLIENT_DLL -fPIC -shared -I${WORKDIR}/headers -o libEGL.so ${WORKDIR}/egl.cpp - ${CC} -DQGS_BUILD_CLIENT_DLL -fPIC -shared -I${WORKDIR}/headers -o libGLESv2.so ${WORKDIR}/gles2.cpp + ${CC} -DQGS_BUILD_CLIENT_DLL -fPIC -shared -Wl,-soname,libEGL.so.1 -I${WORKDIR}/headers -o libEGL.so.1 ${WORKDIR}/egl.cpp + ${CC} -DQGS_BUILD_CLIENT_DLL -fPIC -shared -Wl,-soname,libGLESv2.so.2 -I${WORKDIR}/headers -o libGLESv2.so.2 ${WORKDIR}/gles2.cpp } do_install_append() { install -m 0755 -d ${D}${libdir} - install -m 0755 ${S}/libEGL.so ${D}${libdir} - install -m 0755 ${S}/libGLESv2.so ${D}${libdir} + install -m 0755 ${S}/libEGL.so.1 ${D}${libdir} + ln -s libEGL.so.1 ${D}${libdir}/libEGL.so + install -m 0755 ${S}/libGLESv2.so.2 ${D}${libdir} + ln -s libGLESv2.so.2 ${D}${libdir}/libGLESv2.so } diff --git a/recipes/opengldummy/opengldummy.inc b/recipes/opengldummy/opengldummy.inc index 23af5df..2119da0 100644 --- a/recipes/opengldummy/opengldummy.inc +++ b/recipes/opengldummy/opengldummy.inc @@ -27,9 +27,6 @@ SRC_URI = "file://headers \ file://gles2.cpp \ " -FILES_${PN} = "${libdir}" -FILES_${PN}-dev = "${includedir}/" - do_install() { install -m 0755 -d ${D}${includedir}/EGL install -m 0755 ${WORKDIR}/headers/EGL/* ${D}${includedir}/EGL diff --git a/recipes/opengldummy/qtglesstream-dummy-client.bb b/recipes/opengldummy/qtglesstream-dummy-client.bb index 4c8c86a..c2e936e 100644 --- a/recipes/opengldummy/qtglesstream-dummy-client.bb +++ b/recipes/opengldummy/qtglesstream-dummy-client.bb @@ -25,14 +25,20 @@ SECTION = "devel" LICENSE = "CLOSED" PV = "1.0.0" +SOLIBMAJOR = "1" +SOLIBMINOR = "0" require opengldummy.inc do_compile() { - ${CC} -DQGS_BUILD_CLIENT_DLL -fPIC -shared -I${WORKDIR}/headers -o libQtGlesStreamClient.so ${WORKDIR}/egl.cpp ${WORKDIR}/gles2.cpp + ${CC} -DQGS_BUILD_CLIENT_DLL -fPIC -shared -Wl,-soname,libQtGlesStreamClient.so.${SOLIBMAJOR} \ + -I${WORKDIR}/headers -o libQtGlesStreamClient.so.${PV} ${WORKDIR}/egl.cpp ${WORKDIR}/gles2.cpp } do_install_append() { install -m 0755 -d ${D}${libdir} - install -m 0755 ${S}/libQtGlesStreamClient.so ${D}${libdir} + install -m 0755 ${S}/libQtGlesStreamClient.so.${PV} ${D}${libdir} + ln -s libQtGlesStreamClient.so.${PV} ${D}${libdir}/libQtGlesStreamClient.so.${SOLIBMAJOR}.${SOLIBMINOR} + ln -s libQtGlesStreamClient.so.${PV} ${D}${libdir}/libQtGlesStreamClient.so.${SOLIBMAJOR} + ln -s libQtGlesStreamClient.so.${PV} ${D}${libdir}/libQtGlesStreamClient.so } diff --git a/recipes/virtualbox/virtualbox-guest-additions_4.2.14.bb b/recipes/virtualbox/virtualbox-guest-additions_4.2.14.bb index ace4eea..587695c 100644 --- a/recipes/virtualbox/virtualbox-guest-additions_4.2.14.bb +++ b/recipes/virtualbox/virtualbox-guest-additions_4.2.14.bb @@ -51,7 +51,3 @@ do_install() { } PKG_${PN} = "kernel-module-vbox" - -module_autoload_vboxsf = "vboxsf" -module_autoload_vboxvideo = "vboxvideo" -module_autoload_vboxguest = "vboxguest" -- cgit v1.2.3-54-g00ecf