[Buildroot] [git commit branch/next] package/opencv: depends on GUI toolkits, rather than select them

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Sat Aug 8 10:56:22 UTC 2015


commit: http://git.buildroot.net/buildroot/commit/?id=e6a24e24462e0465364314c1e0bf9dd5a079ac96
branch: http://git.buildroot.net/buildroot/commit/?id=refs/heads/next

Currently, we only support either Qt4 or gtk2, but OpenCV also
additionally supports Qt5 or gtk3, making for a choice of four
toolkits, one of: Qt4, Qt5, gtk3, gtk2 (and obviously, none).

Since Buildroot does not support coexistence of Qt4 and Qt5, we
can no longer select one and depend on the other, like so:

    config BR2_PKG_OCV_WITH_QT4
        bool "Qt4"
        depends on !BR2_PKG_QT5
        select BR2_PKG_QT

    config BR2_PKG_OCV_WITH_QT5
        bool "Qt5"
        depends on !BR2_PKG_QT
        select BR2_PKG_QT5

otherwise, we'd get a circular dependency chain in Kconfig, which would
complain with:

  package/opencv/Config.in:57:error: recursive dependency detected!
  package/opencv/Config.in:57:    choice <choice> contains symbol BR2_PKG_OCV_WITH_QT5
  package/opencv/Config.in:111:   symbol BR2_PKG_OCV_WITH_QT5 depends on BR2_PKG_QT
  package/qt/Config.in:5: symbol BR2_PKG_QT is selected by BR2_PKG_OCV_WITH_QT
  package/opencv/Config.in:98:    symbol BR2_PKG_OCV_WITH_QT is part of choice <choice>

Instead, we need to depend on either Qt version.

So, to have a consistent choice, we make all support for GUI toolkits
actually depend on the toolkit, rather than select it.

Signed-off-by: Samuel Martin <s.martin49 at gmail.com>
[yann.morin.1998 at free.fr: split-out the switch-selects-to-depends hunk
 from the add-qt5 hunk]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
---
 package/opencv/Config.in |   25 +++++++------------------
 1 files changed, 7 insertions(+), 18 deletions(-)

diff --git a/package/opencv/Config.in b/package/opencv/Config.in
index c3542c4..5dd39ca 100644
--- a/package/opencv/Config.in
+++ b/package/opencv/Config.in
@@ -63,36 +63,25 @@ config BR2_PACKAGE_OPENCV_GUI_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
+	depends on BR2_PACKAGE_LIBGTK2
 
-comment "gtk2 needs X.org and a toolchain w/ wchar, threads, C++"
+comment "gtk2 support needs libgtk2"
 	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
+	depends on !BR2_PACKAGE_LIBGTK2
 
 config BR2_PACKAGE_OPENCV_WITH_QT
 	bool "qt4"
-	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_USE_MMU # qt
-	select BR2_PACKAGE_QT
+	depends on 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
+	  Use Qt4 with QtTest and QtGui modules and STL support, as GUI toolkit.
 
-comment "qt4 needs a toolchain w/ C++"
+comment "qt4 support needs qt"
 	depends on BR2_USE_MMU # qt
-	depends on !BR2_INSTALL_LIBSTDCPP
+	depends on !BR2_PACKAGE_QT
 
 endchoice
 


More information about the buildroot mailing list