[Buildroot] [PATCH 1/1] qt5: remove Qt Quick dependency on opengl

Yann E. MORIN yann.morin.1998 at free.fr
Thu Nov 2 17:18:31 UTC 2017


Sébastien, Joshua, Peter, All,

On 2017-11-02 17:22 +0100, Sébastien Szymanski spake thusly:
> From: Joshua Henderson <joshua.henderson at microchip.com>
> 
> From: Joshua Henderson <joshua.henderson at microchip.com>
> 
> Qt Quick should no longer depend on opengl, and instead fallback to the limited
> functionality software renderer as a replacement [1] when not available. This
> also pulls a qt5declarative patch into 5.9.2 to fix examples compiling without
> opengl.
> 
> [1] http://blog.qt.io/blog/2016/08/15/the-qt-quick-graphics-stack-in-qt-5-8/
> 
> Cc: Peter Seiderer <ps.report at gmx.net>
> Cc: Julien Corjon <corjon.j at ecagroup.com>
> Signed-off-by: Joshua Henderson <joshua.henderson at microchip.com>
> [Sébastien: remove dependency on qt5virtualkeyboard]
> Signed-off-by: Sébastien Szymanski <sebastien.szymanski at armadeus.com>
> ---
>  ...uickviewcomparison-and-quickwidget-needs-.patch | 57 ++++++++++++++++++++++
>  package/qt5/qt5declarative/Config.in               |  6 +--
>  package/qt5/qt5multimedia/qt5multimedia.mk         |  3 +-
>  package/qt5/qt5quickcontrols/Config.in             |  4 +-
>  package/qt5/qt5quickcontrols2/Config.in            |  4 +-
>  package/qt5/qt5virtualkeyboard/Config.in           |  4 +-
>  6 files changed, 68 insertions(+), 10 deletions(-)
>  create mode 100644 package/qt5/qt5declarative/5.9.2/0002-examples-qquickviewcomparison-and-quickwidget-needs-.patch
> 
> diff --git a/package/qt5/qt5declarative/5.9.2/0002-examples-qquickviewcomparison-and-quickwidget-needs-.patch b/package/qt5/qt5declarative/5.9.2/0002-examples-qquickviewcomparison-and-quickwidget-needs-.patch
> new file mode 100644
> index 0000000..9c247d3
> --- /dev/null
> +++ b/package/qt5/qt5declarative/5.9.2/0002-examples-qquickviewcomparison-and-quickwidget-needs-.patch
> @@ -0,0 +1,57 @@
> +From b4db5c6cef877b33b5e7cd5a07fe4a7e6797dcfc Mon Sep 17 00:00:00 2001
> +From: Peter Seiderer <ps.report at gmx.net>
> +Date: Tue, 16 May 2017 19:47:19 +0200
> +Subject: [PATCH] examples: qquickviewcomparison and quickwidget needs OpenGL
> + support
> +
> +Fixes:
[--SNIP--]
> +Signed-off-by: Peter Seiderer <ps.report at gmx.net>
> +---
> + examples/quick/quick.pro | 5 ++++-
> + 1 file changed, 4 insertions(+), 1 deletion(-)
> +
> +diff --git a/examples/quick/quick.pro b/examples/quick/quick.pro
> +index 445dfb0fa..26ca0138e 100644
> +--- a/examples/quick/quick.pro
> ++++ b/examples/quick/quick.pro
> +@@ -36,7 +36,10 @@ qtConfig(opengl(es1|es2)?) {
> + # Widget dependent examples
> + qtHaveModule(widgets) {
> +     SUBDIRS += embeddedinwidgets
> +-    qtHaveModule(quickwidgets): SUBDIRS += quickwidgets
> ++    # OpenGL Support Required
> ++    qtConfig(opengl(es1|es2)?) {
> ++        qtHaveModule(quickwidgets): SUBDIRS += quickwidgets

Upstream has a different patch, as commit fa52bb665d6b. Can you use that
instead of your own?

Regards,
Yann E. MORIN.

> ++    }
> + }
> +
> + EXAMPLE_FILES = \
> +--
> +2.11.0
> diff --git a/package/qt5/qt5declarative/Config.in b/package/qt5/qt5declarative/Config.in
> index 5384b5f..3a353a8 100644
> --- a/package/qt5/qt5declarative/Config.in
> +++ b/package/qt5/qt5declarative/Config.in
> @@ -17,11 +17,11 @@ config BR2_PACKAGE_QT5DECLARATIVE
>  if BR2_PACKAGE_QT5DECLARATIVE
>  
>  comment "quick module needs an OpenGL-capable backend"
> -	depends on !BR2_PACKAGE_QT5_GL_AVAILABLE
> +	depends on !BR2_PACKAGE_QT5_GL_AVAILABLE && !BR2_PACKAGE_QT5_VERSION_LATEST
>  
>  config BR2_PACKAGE_QT5DECLARATIVE_QUICK
>  	bool "quick module"
> -	depends on BR2_PACKAGE_QT5_GL_AVAILABLE
> -	select BR2_PACKAGE_QT5BASE_OPENGL
> +	depends on BR2_PACKAGE_QT5_GL_AVAILABLE || BR2_PACKAGE_QT5_VERSION_LATEST
> +	select BR2_PACKAGE_QT5BASE_OPENGL if BR2_PACKAGE_QT5_GL_AVAILABLE
>  
>  endif
> diff --git a/package/qt5/qt5multimedia/qt5multimedia.mk b/package/qt5/qt5multimedia/qt5multimedia.mk
> index 835142e..6df96bc 100644
> --- a/package/qt5/qt5multimedia/qt5multimedia.mk
> +++ b/package/qt5/qt5multimedia/qt5multimedia.mk
> @@ -61,7 +61,8 @@ define QT5MULTIMEDIA_INSTALL_TARGET_LIBS
>  endef
>  endif
>  
> -ifeq ($(BR2_PACKAGE_QT5DECLARATIVE_QUICK),y)
> +# this is only built with quick/opengl support enabled
> +ifeq ($(BR2_PACKAGE_QT5DECLARATIVE_QUICK)$(BR2_PACKAGE_QT5_GL_AVAILABLE),yy)
>  define QT5MULTIMEDIA_INSTALL_TARGET_QMLS
>  	cp -dpfr $(STAGING_DIR)/usr/qml/QtMultimedia $(TARGET_DIR)/usr/qml/
>  endef
> diff --git a/package/qt5/qt5quickcontrols/Config.in b/package/qt5/qt5quickcontrols/Config.in
> index 3cc5821..59f6ca4 100644
> --- a/package/qt5/qt5quickcontrols/Config.in
> +++ b/package/qt5/qt5quickcontrols/Config.in
> @@ -1,6 +1,6 @@
>  config BR2_PACKAGE_QT5QUICKCONTROLS
>  	bool "qt5quickcontrols"
> -	depends on BR2_PACKAGE_QT5_GL_AVAILABLE
> +	depends on BR2_PACKAGE_QT5_GL_AVAILABLE || BR2_PACKAGE_QT5_VERSION_LATEST
>  	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
>  	select BR2_PACKAGE_QT5DECLARATIVE
>  	select BR2_PACKAGE_QT5DECLARATIVE_QUICK
> @@ -14,5 +14,5 @@ config BR2_PACKAGE_QT5QUICKCONTROLS
>  	  http://doc.qt.io/qt-5/qtquickcontrols-index.html
>  
>  comment "qt5quickcontrols needs an OpenGL-capable backend"
> -	depends on !BR2_PACKAGE_QT5_GL_AVAILABLE
> +	depends on !BR2_PACKAGE_QT5_GL_AVAILABLE && !BR2_PACKAGE_QT5_VERSION_LATEST
>  	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
> diff --git a/package/qt5/qt5quickcontrols2/Config.in b/package/qt5/qt5quickcontrols2/Config.in
> index 1066b17..d036f74 100644
> --- a/package/qt5/qt5quickcontrols2/Config.in
> +++ b/package/qt5/qt5quickcontrols2/Config.in
> @@ -1,6 +1,6 @@
>  config BR2_PACKAGE_QT5QUICKCONTROLS2
>  	bool "qt5quickcontrols2"
> -	depends on BR2_PACKAGE_QT5_GL_AVAILABLE # qt5declarative/quick
> +	depends on BR2_PACKAGE_QT5_GL_AVAILABLE || BR2_PACKAGE_QT5_VERSION_LATEST # qt5declarative/quick
>  	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative/quick
>  	select BR2_PACKAGE_QT5DECLARATIVE
>  	select BR2_PACKAGE_QT5DECLARATIVE_QUICK
> @@ -16,5 +16,5 @@ config BR2_PACKAGE_QT5QUICKCONTROLS2
>  	  https://doc.qt.io/qt-5/qtquickcontrols2-index.html
>  
>  comment "qt5quickcontrols2 needs an OpenGL-capable backend"
> -	depends on !BR2_PACKAGE_QT5_GL_AVAILABLE
> +	depends on !BR2_PACKAGE_QT5_GL_AVAILABLE && !BR2_PACKAGE_QT5_VERSION_LATEST
>  	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
> diff --git a/package/qt5/qt5virtualkeyboard/Config.in b/package/qt5/qt5virtualkeyboard/Config.in
> index a685815..f0e4f03 100644
> --- a/package/qt5/qt5virtualkeyboard/Config.in
> +++ b/package/qt5/qt5virtualkeyboard/Config.in
> @@ -1,13 +1,13 @@
>  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
> +	depends on !BR2_PACKAGE_QT5_GL_AVAILABLE && !BR2_PACKAGE_QT5_VERSION_LATEST
>  
>  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
> +	depends on BR2_PACKAGE_QT5_GL_AVAILABLE || BR2_PACKAGE_QT5_VERSION_LATEST # qt5declarative/quick
>  	select BR2_PACKAGE_QT5DECLARATIVE
>  	select BR2_PACKAGE_QT5DECLARATIVE_QUICK
>  	select BR2_PACKAGE_QT5SVG
> -- 
> 2.7.3
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'



More information about the buildroot mailing list