diff mbox

[v6,12/16] package/opencv: add a choice for selecting the gui toolkit

Message ID 1435262397-888-13-git-send-email-s.martin49@gmail.com
State Superseded
Headers show

Commit Message

Samuel Martin June 25, 2015, 7:59 p.m. UTC
This patch moves the existing Qt4 and gtk2 options in that choice
because, in OpenCV, only one toolkik will be actually used at the time,
given priority to Qt4.

Suggested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>

---
changes v5->v6:
- new patch
---
 package/opencv/Config.in | 53 +++++++++++++++++++++++++++++++++++-------------
 1 file changed, 39 insertions(+), 14 deletions(-)

Comments

Yann E. MORIN June 26, 2015, 9:31 p.m. UTC | #1
Samuel, All,

On 2015-06-25 21:59 +0200, Samuel Martin spake thusly:
> This patch moves the existing Qt4 and gtk2 options in that choice
> because, in OpenCV, only one toolkik will be actually used at the time,
> given priority to Qt4.

Incomplete commit log (minor!):

    Also add comments when the toolkit are not available because
    of missing dependencies.

> Suggested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Signed-off-by: Samuel Martin <s.martin49@gmail.com>
> 
> ---
> changes v5->v6:
> - new patch
> ---
>  package/opencv/Config.in | 53 +++++++++++++++++++++++++++++++++++-------------
>  1 file changed, 39 insertions(+), 14 deletions(-)
> 
> diff --git a/package/opencv/Config.in b/package/opencv/Config.in
> index f89e62d..040ee55 100644
> --- a/package/opencv/Config.in
> +++ b/package/opencv/Config.in
> @@ -206,17 +206,54 @@ config BR2_PACKAGE_OPENCV_WITH_GSTREAMER1
>  
>  endchoice
>  
> +choice
> +	prompt "gui toolkit"
> +	depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI

If that depends on highgui, then maybe it would be better to put the
choice right below the option for highgui, no?

> +	help
> +	  GUI toolkit for opencv_highgui module.
> +
> +	  OpenCV GUI toolkit preference (from the most to the least):
> +	  - Qt4
> +	  - gtk-2

Do we really need this "preference" comment in the help text?
If thue user selects gtk2 as a toolkit for OpenCV, but also has Qt4
enabled, surely we'd build an OpenCV with gtk2 support and no Qt4
support, right?

So, there's no reason to have this comment, I think. Or it should maybe
rewritten, sometyhing like:

    The best toolkit to work with OpenCV are, in decreasing order of
    preference by the OpenCV build system):
        - Qt4
        - gtk2

    Note that, whatever you choose here will be used by OpenCV, even
    if you also enabled a more preferred toolkit in your Buildroot
    configuration.

(Not that this is perfect either, but still...)

Otherwise:

    Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

(I think I again forgot something, but can't figure out what it was...)

Regards,
Yann E. MORIN.

> +config BR2_PACKAGE_OPENCV_GUI_NONE
> +	bool "none"
> +
>  config BR2_PACKAGE_OPENCV_WITH_GTK
> -	bool "gtk support"
> +	bool "gtk2"
>  	depends on BR2_PACKAGE_XORG7
>  	depends on BR2_USE_WCHAR # libgtk2 -> libglib2
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libgtk2 -> libglib2
>  	depends on BR2_INSTALL_LIBSTDCPP
>  	depends on BR2_USE_MMU # libgtk2 -> glib2
>  	depends on BR2_ARCH_HAS_ATOMICS # libgtk2 -> cairo
> -	depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI
>  	select BR2_PACKAGE_LIBGTK2
>  
> +comment "gtk2 depends on X.org and needs a toolchain w/ wchar, threads, C++"
> +	depends on BR2_USE_MMU # libgtk2 -> glib2
> +	depends on BR2_ARCH_HAS_ATOMICS # libgtk2 -> cairo
> +	depends on !BR2_PACKAGE_XORG7 || \
> +		!BR2_USE_WCHAR || \
> +		!BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_INSTALL_LIBSTDCPP
> +
> +config BR2_PACKAGE_OPENCV_WITH_QT
> +	bool "qt4"
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	depends on BR2_USE_MMU # qt
> +	select BR2_PACKAGE_QT
> +	select BR2_PACKAGE_QT_STL
> +	select BR2_PACKAGE_QT_GUI_MODULE
> +	select BR2_PACKAGE_QT_TEST
> +	help
> +	  Use Qt with QtTest module and STL support
> +
> +comment "qt4 needs a toolchain w/ C++"
> +	depends on BR2_USE_MMU # qt
> +	depends on !BR2_INSTALL_LIBSTDCPP
> +
> +endchoice
> +
>  config BR2_PACKAGE_OPENCV_WITH_JASPER
>  	bool "jpeg2000 support"
>  	select BR2_PACKAGE_JASPER
> @@ -239,18 +276,6 @@ config BR2_PACKAGE_OPENCV_WITH_PNG
>  	help
>  	  Use shared libpng from the target system.
>  
> -config BR2_PACKAGE_OPENCV_WITH_QT
> -	bool "qt backend support"
> -	depends on BR2_INSTALL_LIBSTDCPP
> -	depends on BR2_USE_MMU # qt
> -	depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI
> -	select BR2_PACKAGE_QT
> -	select BR2_PACKAGE_QT_STL
> -	select BR2_PACKAGE_QT_GUI_MODULE
> -	select BR2_PACKAGE_QT_TEST
> -	help
> -	  Use Qt with QtTest module and STL support
> -
>  config BR2_PACKAGE_OPENCV_WITH_TIFF
>  	bool "tiff support"
>  	select BR2_PACKAGE_TIFF
> -- 
> 2.4.4
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Yann E. MORIN June 26, 2015, 10:47 p.m. UTC | #2
Samuel, All,

On 2015-06-25 21:59 +0200, Samuel Martin spake thusly:
> This patch moves the existing Qt4 and gtk2 options in that choice
> because, in OpenCV, only one toolkik will be actually used at the time,
> given priority to Qt4.
> 
> Suggested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Signed-off-by: Samuel Martin <s.martin49@gmail.com>
[--SNIP--]

And here's what I forgot:

> +comment "gtk2 depends on X.org and needs a toolchain w/ wchar, threads, C++"

    comment "gtk2 support needs X.org and a toolchain w/...."

OK, minor! ;-)

Regards,
Yann E. MORIN.
diff mbox

Patch

diff --git a/package/opencv/Config.in b/package/opencv/Config.in
index f89e62d..040ee55 100644
--- a/package/opencv/Config.in
+++ b/package/opencv/Config.in
@@ -206,17 +206,54 @@  config BR2_PACKAGE_OPENCV_WITH_GSTREAMER1
 
 endchoice
 
+choice
+	prompt "gui toolkit"
+	depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI
+	help
+	  GUI toolkit for opencv_highgui module.
+
+	  OpenCV GUI toolkit preference (from the most to the least):
+	  - Qt4
+	  - gtk-2
+
+config BR2_PACKAGE_OPENCV_GUI_NONE
+	bool "none"
+
 config BR2_PACKAGE_OPENCV_WITH_GTK
-	bool "gtk support"
+	bool "gtk2"
 	depends on BR2_PACKAGE_XORG7
 	depends on BR2_USE_WCHAR # libgtk2 -> libglib2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libgtk2 -> libglib2
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_USE_MMU # libgtk2 -> glib2
 	depends on BR2_ARCH_HAS_ATOMICS # libgtk2 -> cairo
-	depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI
 	select BR2_PACKAGE_LIBGTK2
 
+comment "gtk2 depends on X.org and needs a toolchain w/ wchar, threads, C++"
+	depends on BR2_USE_MMU # libgtk2 -> glib2
+	depends on BR2_ARCH_HAS_ATOMICS # libgtk2 -> cairo
+	depends on !BR2_PACKAGE_XORG7 || \
+		!BR2_USE_WCHAR || \
+		!BR2_TOOLCHAIN_HAS_THREADS || \
+		!BR2_INSTALL_LIBSTDCPP
+
+config BR2_PACKAGE_OPENCV_WITH_QT
+	bool "qt4"
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_USE_MMU # qt
+	select BR2_PACKAGE_QT
+	select BR2_PACKAGE_QT_STL
+	select BR2_PACKAGE_QT_GUI_MODULE
+	select BR2_PACKAGE_QT_TEST
+	help
+	  Use Qt with QtTest module and STL support
+
+comment "qt4 needs a toolchain w/ C++"
+	depends on BR2_USE_MMU # qt
+	depends on !BR2_INSTALL_LIBSTDCPP
+
+endchoice
+
 config BR2_PACKAGE_OPENCV_WITH_JASPER
 	bool "jpeg2000 support"
 	select BR2_PACKAGE_JASPER
@@ -239,18 +276,6 @@  config BR2_PACKAGE_OPENCV_WITH_PNG
 	help
 	  Use shared libpng from the target system.
 
-config BR2_PACKAGE_OPENCV_WITH_QT
-	bool "qt backend support"
-	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_USE_MMU # qt
-	depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI
-	select BR2_PACKAGE_QT
-	select BR2_PACKAGE_QT_STL
-	select BR2_PACKAGE_QT_GUI_MODULE
-	select BR2_PACKAGE_QT_TEST
-	help
-	  Use Qt with QtTest module and STL support
-
 config BR2_PACKAGE_OPENCV_WITH_TIFF
 	bool "tiff support"
 	select BR2_PACKAGE_TIFF