[Buildroot] [PATCHv2] package: add qt5virtualkeyboard

Peter Seiderer ps.report at gmx.net
Wed Mar 22 20:21:26 UTC 2017


Hello Gaël,

On Tue, 21 Mar 2017 12:31:01 -0400, Gaël PORTAY <gael.portay at savoirfairelinux.com> wrote:

> This patch adds the Qt virtualkeyboard package.
> 
> Signed-off-by: Gaël PORTAY <gael.portay at savoirfairelinux.com>
> ---
>  package/qt5/Config.in                              |  1 +
>  package/qt5/qt5virtualkeyboard/Config.in           | 45 +++++++++++++++++++
>  .../qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash |  2 +
>  .../qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk   | 51 ++++++++++++++++++++++
>  4 files changed, 99 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..b98e76482
> --- /dev/null
> +++ b/package/qt5/qt5virtualkeyboard/Config.in
> @@ -0,0 +1,45 @@
> +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)
> +
> +	  all is a flag for activating all languages.
> +
> +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..f7daac333
> --- /dev/null
> +++ b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk
> @@ -0,0 +1,51 @@
> +################################################################################
> +#
> +# 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
> +
> +LANGUAGE_LAYOUTS = $(call qstrip,$(BR2_PACKAGE_QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS))
> +ifneq ($(LANGUAGE_LAYOUTS),)
> +QMAKEFLAGS += CONFIG+="$(foreach lang,$(LANGUAGE_LAYOUTS),lang-$(lang))"
> +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
> +
> +define QT5VIRTUALKEYBOARD_INSTALL_TARGET_CMDS
> +	cp -dpfr $(STAGING_DIR)/usr/lib/qt/plugins/platforminputcontexts $(TARGET_DIR)/usr/lib/qt/plugins/

This should be

	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

in case some other qt5 package installs something to plugins/platforminputcontexts
(eg. see qt5base-5.8.0/src/plugins/platforminputcontexts).

> +	cp -dpfr $(STAGING_DIR)/usr/qml/QtQuick/VirtualKeyboard $(TARGET_DIR)/usr/qml/QtQuick
> +	cp -dpfr $(STAGING_DIR)/usr/qtvirtualkeyboard $(TARGET_DIR)/usr

cp: cannot stat ‘.../host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/qtvirtualkeyboard’: No such file or directory
package/pkg-generic.mk:308: recipe for target '.../build/qt5virtualkeyboard-5.8.0/.stamp_target_installed' failed
make[1]: *** [.../build/qt5virtualkeyboard-5.8.0/.stamp_target_installed] Error 1

Otherwise patch looks good...

Regards,
Peter


> +	$(QT5VIRTUALKEYBOARD_INSTALL_TARGET_EXAMPLES)
> +endef
> +
> +$(eval $(generic-package))




More information about the buildroot mailing list