--- /dev/null
+comment "qt5virtualkeyboard needs at least qt-5.7 and an OpenGL backend"
+ depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
+ depends on !BR2_PACKAGE_QT5_VERSION_LATEST || !BR2_PACKAGE_QT5_GL_AVAILABLE
+
+config BR2_PACKAGE_QT5VIRTUALKEYBOARD
+ bool "qt5virtualkeyboard"
+ # needs at least Qt 5.7
+ depends on BR2_PACKAGE_QT5_VERSION_LATEST
+ depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative
+ depends on BR2_PACKAGE_QT5_GL_AVAILABLE # qt5declarative quick
+ select BR2_PACKAGE_QT5DECLARATIVE
+ select BR2_PACKAGE_QT5DECLARATIVE_QUICK
+ select BR2_PACKAGE_QT5SVG
+ help
+ Qt Virtual Keyboard is a virtual keyboard framework that
+ consists of a C++ backend supporting custom input methods as
+ well as a UI frontend implemented in QML.
+
+if BR2_PACKAGE_QT5VIRTUALKEYBOARD
+
+config BR2_PACKAGE_QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS
+ string "language layouts"
+ default "en_GB"
+ help
+ The Virtual Keyboard supports the following languages:
+ - Arabic (ar_AR)
+ - Danish (da_DK)
+ - English (en_GB)
+ - Finnish (fi_FI)
+ - French (fr_FR)
+ - German (de_DE)
+ - Hindi (hi_IN)
+ - Italian (it_IT)
+ - Japanese (ja_JP)
+ - Korean (ko_KR)
+ - Norwegian (nb_NO)
+ - Persian/Farsi (fa_FA)
+ - Polish (pl_PL)
+ - Portugese (pt_PT)
+ - Romanian (ro_RO)
+ - Russian (ru_RU)
+ - Simplified Chinese (zh_CN)
+ - Traditional Chinese (zh_TW)
+ - Spanish (es_ES)
+ - Swedish (sv_SE)
+
+ Note: the special value "all" can be used to install support
+ for all supported languages.
+
+config BR2_PACKAGE_QT5VIRTUALKEYBOARD_HANDWRITING
+ bool "handwriting"
+ help
+ Handwriting support, with gestures for fullscreen input.
+
+ Lipi Toolkit (LipiTk) is an open source toolkit for online
+ Handwriting Recognition.
+
+endif
--- /dev/null
+################################################################################
+#
+# qt5virtualkeyboard
+#
+################################################################################
+
+QT5VIRTUALKEYBOARD_VERSION = $(QT5_VERSION)
+QT5VIRTUALKEYBOARD_SITE = $(QT5_SITE)
+QT5VIRTUALKEYBOARD_SOURCE = qtvirtualkeyboard-opensource-src-$(QT5VIRTUALKEYBOARD_VERSION).tar.xz
+QT5VIRTUALKEYBOARD_DEPENDENCIES = qt5base qt5declarative qt5svg
+QT5VIRTUALKEYBOARD_INSTALL_STAGING = YES
+
+QT5VIRTUALKEYBOARD_LICENSE = GPL-3.0
+QT5VIRTUALKEYBOARD_LICENSE_FILES = LICENSE.GPL3
+
+QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS = $(call qstrip,$(BR2_PACKAGE_QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS))
+ifneq ($(strip $(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),)
+QT5VIRTUALKEYBOARD_QMAKEFLAGS += CONFIG+="$(foreach lang,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS),lang-$(lang))"
+
+ifneq ($(filter ja_JP all,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),)
+QT5VIRTUALKEYBOARD_LICENSE := $(QT5VIRTUALKEYBOARD_LICENSE), Apache-2.0 (openwnn)
+QT5VIRTUALKEYBOARD_LICENSE_FILES += src/virtualkeyboard/3rdparty/openwnn/NOTICE
+endif
+
+ifneq ($(filter zh_CN all,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),)
+QT5VIRTUALKEYBOARD_3RDPARTY_PARTS = YES
+QT5VIRTUALKEYBOARD_LICENSE := $(QT5VIRTUALKEYBOARD_LICENSE), Apache-2.0 (pinyin)
+QT5VIRTUALKEYBOARD_LICENSE_FILES += src/virtualkeyboard/3rdparty/pinyin/NOTICE
+endif
+
+ifneq ($(filter zh_TW all,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),)
+QT5VIRTUALKEYBOARD_3RDPARTY_PARTS = YES
+QT5VIRTUALKEYBOARD_LICENSE := $(QT5VIRTUALKEYBOARD_LICENSE), Apache-2.0 (tcime), BSD-3-Clause (tcime)
+QT5VIRTUALKEYBOARD_LICENSE_FILES += src/virtualkeyboard/3rdparty/tcime/COPYING
+endif
+endif
+
+ifeq ($(BR2_PACKAGE_QT5VIRTUALKEYBOARD_HANDWRITING),y)
+QT5VIRTUALKEYBOARD_3RDPARTY_PARTS = YES
+QT5VIRTUALKEYBOARD_QMAKEFLAGS += CONFIG+=handwriting
+QT5VIRTUALKEYBOARD_LICENSE := $(QT5VIRTUALKEYBOARD_LICENSE), MIT (lipi-toolkit)
+QT5VIRTUALKEYBOARD_LICENSE_FILES += src/virtualkeyboard/3rdparty/lipi-toolkit/MIT_LICENSE.txt
+endif
+
+ifdef QT5VIRTUALKEYBOARD_3RDPARTY_PARTS
+define QT5VIRTUALKEYBOARD_INSTALL_TARGET_3RDPARTY_PARTS
+ cp -dpfr $(STAGING_DIR)/usr/qtvirtualkeyboard $(TARGET_DIR)/usr
+endef
+endif
+
+define QT5VIRTUALKEYBOARD_CONFIGURE_CMDS
+ (cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake $(QT5VIRTUALKEYBOARD_QMAKEFLAGS))
+endef
+
+define QT5VIRTUALKEYBOARD_BUILD_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
+endef
+
+define QT5VIRTUALKEYBOARD_INSTALL_STAGING_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install
+endef
+
+ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y)
+define QT5VIRTUALKEYBOARD_INSTALL_TARGET_EXAMPLES
+ cp -dpfr $(STAGING_DIR)/usr/lib/qt/examples/virtualkeyboard $(TARGET_DIR)/usr/lib/qt/examples/
+endef
+endif
+
+define QT5VIRTUALKEYBOARD_INSTALL_TARGET_CMDS
+ mkdir -p $(TARGET_DIR)/usr/lib/qt/plugins/platforminputcontexts
+ cp -dpfr $(STAGING_DIR)/usr/lib/qt/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so \
+ $(TARGET_DIR)/usr/lib/qt/plugins/platforminputcontexts
+ cp -dpfr $(STAGING_DIR)/usr/qml/QtQuick/VirtualKeyboard $(TARGET_DIR)/usr/qml/QtQuick
+ $(QT5VIRTUALKEYBOARD_INSTALL_TARGET_3RDPARTY_PARTS)
+ $(QT5VIRTUALKEYBOARD_INSTALL_TARGET_EXAMPLES)
+endef
+
+$(eval $(generic-package))