Message ID | 20170330171842.29179-1-gael.portay@savoirfairelinux.com |
---|---|
State | Changes Requested |
Headers | show |
Hello, On Thu, 30 Mar 2017 13:18:42 -0400, Gaël PORTAY wrote: > This patch adds the Qt virtualkeyboard package. > > Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com> > Reviewed-by: Peter Seiderer <ps.report@gmx.net> I was about to apply this, but there's still one thing unclear to me. I'll be making some minor suggestions along the way (but those I would have fixed myself when applying if I didn't had the doubt I'm referring to). See below. > +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. You can remove this part, it is incorrect (can be a commercial license), and already documented in the package itself. > +if BR2_PACKAGE_QT5VIRTUALKEYBOARD One empty line should be added here. > +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. I believe something like this would be clearer: 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. One empty line should be added here. > +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))" I don't understand how this will behave when the "all" flag is used. You will have: CONFIG+=lang-all is this actually working? > +QT5VIRTUALKEYBOARD_OPENWNN = $(findstring ja_JP,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) > +ifneq ($(strip $(QT5VIRTUALKEYBOARD_OPENWNN)$(QT5VIRTUALKEYBOARD_ALL_LAYOUTS)),) Is the strip really needed in this condition (and the similar ones below) ? Perhaps we could do: ifneq ($(findstring zh_CN,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) QT5VIRTUALKEYBOARD_INSTALL_PINYIN = YES endif ifneq ($(findstring ja_JP,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) QT5VIRTUALKEYBOARD_INSTALL_OPENWNN = YES endif ... ifneq ($(findstring all,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) QT5VIRTUALKEYBOARD_INSTALL_PINYIN = YES QT5VIRTUALKEYBOARD_INSTALL_OPENWNN = YES ... endif And then use the QT5VIRTUALKEYBOARD_INSTALL_<foo> variables to know what should be installed. > +ifneq ($(strip $(QT5VIRTUALKEYBOARD_3RDPARTY_PARTS)),) strip really needed? Thanks, Thomas
On 01-04-17 15:09, Thomas Petazzoni wrote: > Hello, > [snip] > Perhaps we could do: > > ifneq ($(findstring zh_CN,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) Or just the pattern we use everywhere else: ifneq ($(filter zh_CN all,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) Regards, Arnout > QT5VIRTUALKEYBOARD_INSTALL_PINYIN = YES > endif > > ifneq ($(findstring ja_JP,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) > QT5VIRTUALKEYBOARD_INSTALL_OPENWNN = YES > endif > > ... > > ifneq ($(findstring all,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) > QT5VIRTUALKEYBOARD_INSTALL_PINYIN = YES > QT5VIRTUALKEYBOARD_INSTALL_OPENWNN = YES > ... > endif > > And then use the QT5VIRTUALKEYBOARD_INSTALL_<foo> variables to know > what should be installed. > >> +ifneq ($(strip $(QT5VIRTUALKEYBOARD_3RDPARTY_PARTS)),) > > strip really needed? > > Thanks, > > Thomas >
Hello Thomas, On Sat, Apr 01, 2017 at 03:09:38PM +0200, Thomas Petazzoni wrote: > Hello, > > On Thu, 30 Mar 2017 13:18:42 -0400, Gaël PORTAY wrote: > > This patch adds the Qt virtualkeyboard package. > > > > Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com> > > Reviewed-by: Peter Seiderer <ps.report@gmx.net> > > I was about to apply this, but there's still one thing unclear to me. > I'll be making some minor suggestions along the way (but those I would > have fixed myself when applying if I didn't had the doubt I'm referring > to). See below. > > > +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. > > You can remove this part, it is incorrect (can be a commercial > license), and already documented in the package itself. Done. > > > +if BR2_PACKAGE_QT5VIRTUALKEYBOARD > > One empty line should be added here. > Done. > > +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. > > I believe something like this would be clearer: > > Note: the special value "all" can be used to install support > for all supported languages. > Done. > > + > > +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. > > One empty line should be added here. > Done. > > > +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))" > > I don't understand how this will behave when the "all" flag is used. > You will have: > > CONFIG+=lang-all > > is this actually working? > Yes. The Makefile will call qmake with CONFIG+=lang-all. I tested it and it works fine. CONFIG+=lang-all acts as an alias for all languages. You can have a look to [1] & [2]. > > +QT5VIRTUALKEYBOARD_OPENWNN = $(findstring ja_JP,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)) > > +ifneq ($(strip $(QT5VIRTUALKEYBOARD_OPENWNN)$(QT5VIRTUALKEYBOARD_ALL_LAYOUTS)),) > > Is the strip really needed in this condition (and the similar ones > below) ? > > Perhaps we could do: > > ifneq ($(findstring zh_CN,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) > QT5VIRTUALKEYBOARD_INSTALL_PINYIN = YES > endif > > ifneq ($(findstring ja_JP,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) > QT5VIRTUALKEYBOARD_INSTALL_OPENWNN = YES > endif > > ... > > ifneq ($(findstring all,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) > QT5VIRTUALKEYBOARD_INSTALL_PINYIN = YES > QT5VIRTUALKEYBOARD_INSTALL_OPENWNN = YES > ... > endif > > And then use the QT5VIRTUALKEYBOARD_INSTALL_<foo> variables to know > what should be installed. It is another solution; which is much more nice. Done. > > > +ifneq ($(strip $(QT5VIRTUALKEYBOARD_3RDPARTY_PARTS)),) > > strip really needed? Indeed, the strip here is definelty not needed. > > Thanks, > > Thomas > -- > Thomas Petazzoni, CTO, Free Electrons > Embedded Linux and Kernel engineering > http://free-electrons.com > _______________________________________________ > buildroot mailing list > buildroot@busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot Thanks! I will resend a new version. Regards, Gael [1] https://github.com/qt/qtvirtualkeyboard/blob/5.8/src/config.pri#L23-L44 [2] https://doc.qt.io/qt-5/qtvirtualkeyboard-build.html
Hi Arnout, On Sat, Apr 01, 2017 at 11:05:51PM +0200, , Vandecappelle wrote: > > > On 01-04-17 15:09, Thomas Petazzoni wrote: > > Hello, > > > [snip] > > Perhaps we could do: > > > > ifneq ($(findstring zh_CN,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) > > Or just the pattern we use everywhere else: > > ifneq ($(filter zh_CN all,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) > Thanks! it was the solution I wanted. > Regards, > Arnout > > > QT5VIRTUALKEYBOARD_INSTALL_PINYIN = YES > > endif > > > > ifneq ($(findstring ja_JP,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) > > QT5VIRTUALKEYBOARD_INSTALL_OPENWNN = YES > > endif > > > > ... > > > > ifneq ($(findstring all,$(QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS)),) > > QT5VIRTUALKEYBOARD_INSTALL_PINYIN = YES > > QT5VIRTUALKEYBOARD_INSTALL_OPENWNN = YES > > ... > > endif > > > > And then use the QT5VIRTUALKEYBOARD_INSTALL_<foo> variables to know > > what should be installed. > > > >> +ifneq ($(strip $(QT5VIRTUALKEYBOARD_3RDPARTY_PARTS)),) > > > > strip really needed? > > > > Thanks, > > > > Thomas > > > > -- > Arnout Vandecappelle arnout at mind be > Senior Embedded Software Architect +32-16-286500 > Essensium/Mind http://www.mind.be > G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven > LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle > GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF Regards, Gael
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))