diff mbox

[v8,3/7] package/opencv: add a choice for selecting the gui toolkit

Message ID 1436089229-21103-4-git-send-email-s.martin49@gmail.com
State Superseded
Headers show

Commit Message

Samuel Martin July 5, 2015, 9:40 a.m. UTC
This patch moves the existing Qt4 and gtk2 options in that choice right
after the highgui knob.
In OpenCV, only one GUI toolkik will be actually used at the time by the
highgui module, given priority to Qt4.

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

---
changes v7->v8:
- update a/r/t tags

changes v6->v7:
- move choice right after highgui knob (Yann)
- reword help text and comment (Yann)

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

Comments

Thomas Petazzoni July 5, 2015, 12:53 p.m. UTC | #1
Dear Samuel Martin,

On Sun,  5 Jul 2015 11:40:25 +0200, Samuel Martin wrote:

> +choice
> +	prompt "gui toolkit"
> +	depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI
> +	help
> +	  GUI toolkit for opencv_highgui module.
> +
> +	  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.

This comment really doesn't make sense. Why do we care about the
preferred order of OpenCV for GUI toolkit, since we are anyway
overriding it by the below options? Why don't you simply have:

	help
	  GUI toolkit to be used by the opencv_highgui module.

The additional comments about the preferred order by OpenCV build
system are simply confusing and useless, IMO. If you agree, I can apply
this patch after reworking the comment.

Thanks,

Thomas
Samuel Martin July 5, 2015, 12:56 p.m. UTC | #2
Thomas,

On Sun, Jul 5, 2015 at 2:53 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Dear Samuel Martin,
>
> On Sun,  5 Jul 2015 11:40:25 +0200, Samuel Martin wrote:
>
>> +choice
>> +     prompt "gui toolkit"
>> +     depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI
>> +     help
>> +       GUI toolkit for opencv_highgui module.
>> +
>> +       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.
>
> This comment really doesn't make sense. Why do we care about the
> preferred order of OpenCV for GUI toolkit, since we are anyway
> overriding it by the below options? Why don't you simply have:
>
>         help
>           GUI toolkit to be used by the opencv_highgui module.
>
> The additional comments about the preferred order by OpenCV build
> system are simply confusing and useless, IMO. If you agree, I can apply
> this patch after reworking the comment.
>
I'm fine with this.

Thanks,
diff mbox

Patch

diff --git a/package/opencv/Config.in b/package/opencv/Config.in
index 079730e..d317603 100644
--- a/package/opencv/Config.in
+++ b/package/opencv/Config.in
@@ -52,6 +52,59 @@  config BR2_PACKAGE_OPENCV_LIB_HIGHGUI
 	  Include opencv_highgui (high-level gui and media i/o) module into the
 	  OpenCV build.
 
+choice
+	prompt "gui toolkit"
+	depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI
+	help
+	  GUI toolkit for opencv_highgui module.
+
+	  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.
+
+config BR2_PACKAGE_OPENCV_GUI_NONE
+	bool "none"
+
+config BR2_PACKAGE_OPENCV_WITH_GTK
+	bool "gtk2"
+	depends on BR2_ARCH_HAS_ATOMICS # libgtk2 -> cairo
+	depends on BR2_USE_MMU # libgtk2 -> libglib2
+	depends on BR2_USE_WCHAR # libgtk2 -> libglib2
+	depends on BR2_TOOLCHAIN_HAS_THREADS # libgtk2 -> libglib2
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_LIBGTK2
+
+comment "gtk2 needs X.org and 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_LIB_IMGCODECS
 	bool "imgcodecs"
 	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
@@ -209,17 +262,6 @@  comment "gstreamer-1.x support needs a toolchain w/ wchar, threads"
 
 endchoice
 
-config BR2_PACKAGE_OPENCV_WITH_GTK
-	bool "gtk support"
-	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
-
 config BR2_PACKAGE_OPENCV_WITH_JASPER
 	bool "jpeg2000 support"
 	select BR2_PACKAGE_JASPER
@@ -242,18 +284,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