Skip to contentSkip to conversation

package: add qt5virtualkeyboard

PATCH Superseded Gaël PORTAY 2 participants 3 messages Mar 24, 2017 – Mar 29, 2017

v4 of 7 Superseded Latest is v7 →

lore
Share & tools
lore
#0 lore raw

PATCH v4 1/1 package: add qt5virtualkeyboard

This patch adds the Qt virtualkeyboard package.

---
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
package/qt5/Config.in +1 -0
index 4bcbc6ef5..a810503d3 100644
@@ -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"
package/qt5/qt5virtualkeyboard/Config.in new file +52 -0

52 lines not on this page · raw message

package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash new file +2 -0
new file mode 100644
index 000000000..ea30fdb7c
@@ -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
package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk new file +86 -0

86 lines not on this page · raw message

Signature · 1 line
2.12.1
#1 lore raw

PATCH v4 1/1 package: add qt5virtualkeyboard

Hello Ga?l,

Quoted 132 lines · Ga?l PORTAY

This patch adds the Qt virtualkeyboard package.

---
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
package/qt5/Config.in +1 -0
index 4bcbc6ef5..a810503d3 100644
@@ -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"
package/qt5/qt5virtualkeyboard/Config.in new file +52 -0
new file mode 100644
index 000000000..16ca91655
@@ -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
package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash new file +2 -0
new file mode 100644
index 000000000..ea30fdb7c
@@ -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
package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk new file +14 -0
new file mode 100644
index 000000000..773326f9f
@@ -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

package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk line 24

Quoted 10 lines
package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk new file +10 -0
+QT5VIRTUALKEYBOARD_LICENSE_FILES = LICENSE.GPL3
+else
+QT5VIRTUALKEYBOARD_LICENSE = Commercial license
+QT5VIRTUALKEYBOARD_REDISTRIBUTE = NO
+endif
+
+LANGUAGE_LAYOUTS = $(call qstrip,$(BR2_PACKAGE_QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS))
+ALL = $(findstring all,$(LANGUAGE_LAYOUTS))
+ifneq ($(strip $(LANGUAGE_LAYOUTS)),)
+QMAKEFLAGS += CONFIG+="$(foreach lang,$(LANGUAGE_LAYOUTS),lang-$(lang))"

All variables must start with the same package prefix, here QT5VIRTUALKEYBOARD_ (see [1], I think this is to avoid name clashes between the different package makefiles which are loaded for all (enabled) packages)...

package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk line 34

Quoted 10 lines
package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk new file +10 -0
+
+OPENWNN = $(findstring ja_JP,$(LANGUAGE_LAYOUTS))
+ifneq ($(strip $(OPENWNN)$(ALL)),)
+QT5VIRTUALKEYBOARD_LICENSE += Apache-2.0
+QT5VIRTUALKEYBOARD_LICENSE_FILES += src/virtualkeyboard/3rdparty/openwnn/NOTICE
+endif
+
+PINYIN = $(findstring zh_CN,$(LANGUAGE_LAYOUTS))
+ifneq ($(strip $(PINYIN)$(ALL)),)
+THIRD_PARTS += pinyin

Nitpick:

QT5VIRTUALKEYBOARD_3RDPARTY_PARTS ?

Quoted 42 lines
package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk new file +42 -0
+QT5VIRTUALKEYBOARD_LICENSE += Apache-2.0
+QT5VIRTUALKEYBOARD_LICENSE_FILES += src/virtualkeyboard/3rdparty/pinyin/NOTICE
+endif
+
+TCIME = $(findstring zh_TW,$(LANGUAGE_LAYOUTS))
+ifneq ($(strip $(TCIME)$(ALL)),)
+THIRD_PARTS += tcime
+QT5VIRTUALKEYBOARD_LICENSE += Apache-2.0 BSD-3c
+QT5VIRTUALKEYBOARD_LICENSE_FILES += src/virtualkeyboard/3rdparty/tcime/COPYING
+endif
+endif
+
+ifeq ($(BR2_PACKAGE_QT5VIRTUALKEYBOARD_HANDWRITING),y)
+THIRD_PARTS += lipi_toolkit
+QMAKEFLAGS += CONFIG+=handwriting
+QT5VIRTUALKEYBOARD_LICENSE += MIT
+QT5VIRTUALKEYBOARD_LICENSE_FILES += src/virtualkeyboard/3rdparty/lipi-toolkit/MIT_LICENSE.txt
+endif
+
+ifneq ($(strip $(THIRD_PARTS)),)
+define QT5VIRTUALKEYBOARD_INSTALL_TARGET_THIRD_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 $(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

package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk line 86

Quoted 10 lines
package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk new file +10 -0
+
+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_THIRD_PARTS)
+	$(QT5VIRTUALKEYBOARD_INSTALL_TARGET_EXAMPLES)
+endef
+
+$(eval $(generic-package))

Otherwise looks good, with the above fixed you can add my

Regards,
Peter

[1] http://nightly.buildroot.org/manual.html#_infrastructure_for_packages_with_specific_build_systems

#2 lore raw

PATCH v4 1/1 package: add qt5virtualkeyboard

Hello Peter,

Quoted 10 lines · Peter Seiderer

Hello Ga?l,

Quoted 4 lines · Ga?l PORTAY

This patch adds the Qt virtualkeyboard package.

[...]

Quoted 1 line
Quoted 10 lines

package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk line 24

Quoted 5 lines
package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk new file +5 -0
+
+LANGUAGE_LAYOUTS = $(call qstrip,$(BR2_PACKAGE_QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS))
+ALL = $(findstring all,$(LANGUAGE_LAYOUTS))
+ifneq ($(strip $(LANGUAGE_LAYOUTS)),)
+QMAKEFLAGS += CONFIG+="$(foreach lang,$(LANGUAGE_LAYOUTS),lang-$(lang))"

All variables must start with the same package prefix, here QT5VIRTUALKEYBOARD_ (see [1], I think this is to avoid name clashes between the different package makefiles which are loaded for all (enabled) packages)...

Fixed.

I guess you are right, it is about naming collision.

Quoted 13 lines

package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk line 34

Quoted 10 lines
package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk new file +10 -0
+
+OPENWNN = $(findstring ja_JP,$(LANGUAGE_LAYOUTS))
+ifneq ($(strip $(OPENWNN)$(ALL)),)
+QT5VIRTUALKEYBOARD_LICENSE += Apache-2.0
+QT5VIRTUALKEYBOARD_LICENSE_FILES += src/virtualkeyboard/3rdparty/openwnn/NOTICE
+endif
+
+PINYIN = $(findstring zh_CN,$(LANGUAGE_LAYOUTS))
+ifneq ($(strip $(PINYIN)$(ALL)),)
+THIRD_PARTS += pinyin

Nitpick:

Quoted 2 lines

QT5VIRTUALKEYBOARD_3RDPARTY_PARTS ?

Fixed.

Quoted 10 lines
Quoted 5 lines
package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk new file +4 -0
+QT5VIRTUALKEYBOARD_LICENSE += Apache-2.0
+QT5VIRTUALKEYBOARD_LICENSE_FILES += src/virtualkeyboard/3rdparty/pinyin/NOTICE
+endif
+

[...]

Quoted 3 lines

+
+$(eval $(generic-package))

Quoted 8 lines

Otherwise looks good, with the above fixed you can add my

Regards,
Peter

[1] http://nightly.buildroot.org/manual.html#_infrastructure_for_packages_with_specific_build_systems

Thanks you very much for your review.

Regards,
Gael