From patchwork Thu Mar 30 17:18:42 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ga=C3=ABl_PORTAY?= X-Patchwork-Id: 745366 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3vvBDv4pKzz9ryr for ; Fri, 31 Mar 2017 04:18:54 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id B963E89986; Thu, 30 Mar 2017 17:18:51 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nGflcYWYrU-x; Thu, 30 Mar 2017 17:18:50 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id 83B738902A; Thu, 30 Mar 2017 17:18:50 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id A890E1BFDB4 for ; Thu, 30 Mar 2017 17:18:48 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id A45C23049C for ; Thu, 30 Mar 2017 17:18:48 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id aiIGp5iZuW+X for ; Thu, 30 Mar 2017 17:18:47 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail.savoirfairelinux.com (mail.savoirfairelinux.com [208.88.110.44]) by silver.osuosl.org (Postfix) with ESMTPS id 1B7352626D for ; Thu, 30 Mar 2017 17:18:47 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 7A26D9C19FA; Thu, 30 Mar 2017 13:18:45 -0400 (EDT) Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id G_hBbLA3ZbKA; Thu, 30 Mar 2017 13:18:44 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 78B629C1CB0; Thu, 30 Mar 2017 13:18:44 -0400 (EDT) X-Virus-Scanned: amavisd-new at mail.savoirfairelinux.com Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id z691CeR4Upcz; Thu, 30 Mar 2017 13:18:44 -0400 (EDT) Received: from gportay.mtl.sfl (unknown [192.168.49.216]) by mail.savoirfairelinux.com (Postfix) with ESMTPSA id 50D0D9C19FA; Thu, 30 Mar 2017 13:18:44 -0400 (EDT) From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= To: buildroot@buildroot.org, Thomas Petazzoni Date: Thu, 30 Mar 2017 13:18:42 -0400 Message-Id: <20170330171842.29179-1-gael.portay@savoirfairelinux.com> X-Mailer: git-send-email 2.12.1 MIME-Version: 1.0 Cc: =?utf-8?q?Ga=C3=ABl=20PORTAY?= , Peter Seiderer Subject: [Buildroot] [v6] package: add qt5virtualkeyboard X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" This patch adds the Qt virtualkeyboard package. Signed-off-by: Gaƫl PORTAY Reviewed-by: Peter Seiderer --- Changes since v5: - Fix LICENSE information. - Fix missing QT5VIRTUALKEYBOARD_ prefix for QMAKEFLAGS. - Set QT5VIRTUALKEYBOARD_3RDPARTY_PARTS to YES instead of appending a list of mudules. Changes since v4: - Prefix local variables to avoid potential naming collisions. Changes since v3: - Fix another build issue when installing to target in case of zh_TW (or other layout) is not set. - Add licenses files when using 3rd-part modules. - Add support for handwriting module. Changes since v2: - Fix build issue when installing libqtvirtualkeyboardplugin.so library in case of some other qt5 package installs something to plugins/platforminputcontexts. Changes since v1: - Add missing hash file - Add license approval statement - Add support for languages layouts Note: Chinese, Japanese and Korean does not display properly (font?) - Install sample if is compiled (BR2_PACKAGE_QT5BASE_EXAMPLES=y) - Apply reviews from Peter: Add version constraint: message and dependency (needs at least qt 5.8) Update help to mention GPLv3 license package/qt5/Config.in | 1 + package/qt5/qt5virtualkeyboard/Config.in | 52 +++++++++++++ .../qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash | 2 + .../qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk | 86 ++++++++++++++++++++++ 4 files changed, 141 insertions(+) create mode 100644 package/qt5/qt5virtualkeyboard/Config.in create mode 100644 package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash create mode 100644 package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk diff --git a/package/qt5/Config.in b/package/qt5/Config.in index 4bcbc6ef5..a810503d3 100644 --- a/package/qt5/Config.in +++ b/package/qt5/Config.in @@ -76,6 +76,7 @@ source "package/qt5/qt5serialbus/Config.in" source "package/qt5/qt5serialport/Config.in" source "package/qt5/qt5svg/Config.in" source "package/qt5/qt5tools/Config.in" +source "package/qt5/qt5virtualkeyboard/Config.in" source "package/qt5/qt5webchannel/Config.in" source "package/qt5/qt5webkit/Config.in" source "package/qt5/qt5websockets/Config.in" diff --git a/package/qt5/qt5virtualkeyboard/Config.in b/package/qt5/qt5virtualkeyboard/Config.in new file mode 100644 index 000000000..16ca91655 --- /dev/null +++ b/package/qt5/qt5virtualkeyboard/Config.in @@ -0,0 +1,52 @@ +comment "qt5virtualkeyboard needs at least qt-5.7 and qt5declarative quick module" + depends on !BR2_PACKAGE_QT5_VERSION_LATEST || !BR2_PACKAGE_QT5DECLARATIVE_QUICK + +config BR2_PACKAGE_QT5VIRTUALKEYBOARD + bool "qt5virtualkeyboard" + depends on BR2_PACKAGE_QT5_VERSION_LATEST + depends on 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. + + This module is licensed under GPLv3. + +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: all is a flag for activating all 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 diff --git a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash new file mode 100644 index 000000000..ea30fdb7c --- /dev/null +++ b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash @@ -0,0 +1,2 @@ +# Hash from: http://download.qt.io/official_releases/qt/5.8/5.8.0/submodules/qtvirtualkeyboard-opensource-src-5.8.0.tar.xz +sha256 35fdf5b39d930935b6299ac59f347bea89b983e16bd7961fee3f1b8e16f4e21c qtvirtualkeyboard-opensource-src-5.8.0.tar.xz diff --git a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk new file mode 100644 index 000000000..c35dc31a4 --- /dev/null +++ b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk @@ -0,0 +1,86 @@ +################################################################################ +# +# 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 + +ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) +QT5VIRTUALKEYBOARD_LICENSE = GPLv3 +QT5VIRTUALKEYBOARD_LICENSE_FILES = LICENSE.GPL3 +else +QT5VIRTUALKEYBOARD_LICENSE = Commercial license +QT5VIRTUALKEYBOARD_REDISTRIBUTE = NO +endif + +QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS = $(call qstrip,$(BR2_PACKAGE_QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) +QT5VIRTUALKEYBOARD_ALL_LAYOUTS = $(findstring all,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) +ifneq ($(strip $(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) +QT5VIRTUALKEYBOARD_QMAKEFLAGS += CONFIG+="$(foreach lang,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS),lang-$(lang))" + +QT5VIRTUALKEYBOARD_OPENWNN = $(findstring ja_JP,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) +ifneq ($(strip $(QT5VIRTUALKEYBOARD_OPENWNN)$(QT5VIRTUALKEYBOARD_ALL_LAYOUTS)),) +QT5VIRTUALKEYBOARD_LICENSE := $(QT5VIRTUALKEYBOARD_LICENSE), Apache-2.0 (openwnn) +QT5VIRTUALKEYBOARD_LICENSE_FILES += src/virtualkeyboard/3rdparty/openwnn/NOTICE +endif + +QT5VIRTUALKEYBOARD_PINYIN = $(findstring zh_CN,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) +ifneq ($(strip $(QT5VIRTUALKEYBOARD_PINYIN)$(QT5VIRTUALKEYBOARD_ALL_LAYOUTS)),) +QT5VIRTUALKEYBOARD_3RDPARTY_PARTS = YES +QT5VIRTUALKEYBOARD_LICENSE := $(QT5VIRTUALKEYBOARD_LICENSE), Apache-2.0 (pinyin) +QT5VIRTUALKEYBOARD_LICENSE_FILES += src/virtualkeyboard/3rdparty/pinyin/NOTICE +endif + +QT5VIRTUALKEYBOARD_TCIME = $(findstring zh_TW,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) +ifneq ($(strip $(QT5VIRTUALKEYBOARD_TCIME)$(QT5VIRTUALKEYBOARD_ALL_LAYOUTS)),) +QT5VIRTUALKEYBOARD_3RDPARTY_PARTS = YES +QT5VIRTUALKEYBOARD_LICENSE := $(QT5VIRTUALKEYBOARD_LICENSE), Apache-2.0 BSD-3c (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 + +ifneq ($(strip $(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))