package/opencv: add a choice for selecting the gui toolkit
authorSamuel Martin <s.martin49@gmail.com>
Sun, 5 Jul 2015 21:54:44 +0000 (23:54 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Mon, 6 Jul 2015 09:50:00 +0000 (11:50 +0200)
In OpenCV, only one GUI toolkit may be used at any one time, so group
the two existing options into a choice to make this situation explicit.

This will also be useful when we later add support for Qt5 and gtk3.

Suggested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
[yann.morin.1998@free.fr: tweak commit log]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/opencv/Config.in

index 079730e3c3969e775cb1c7af9b52cbeef9cb31fb..c3542c49f00be42058d25c98f5ac28262e8ac0a3 100644 (file)
@@ -52,6 +52,50 @@ 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 to be used by the opencv_highgui module.
+
+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 +253,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 +275,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