Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v5 11/13] package/opencv: add gtk3 support
Date: Sun, 7 Jun 2015 15:00:54 +0200	[thread overview]
Message-ID: <20150607130054.GL3545@free.fr> (raw)
In-Reply-To: <1433672799-21387-12-git-send-email-s.martin49@gmail.com>

Samuel, All,

On 2015-06-07 12:26 +0200, Samuel Martin spake thusly:
> Fully rework the GTK support in OpenCV because it now supports gtk-2 and
> gtk-3 (but only one at the time).
> Note that, in the build-system, the gtk support is only available when
> Qt support is disabled; so make sure the menuconfig reflects this.
> 
> Signed-off-by: Samuel Martin <s.martin49@gmail.com>
[--SNIP--]
> diff --git a/package/opencv/Config.in b/package/opencv/Config.in
> index f4072ef..ff834b9 100644
> --- a/package/opencv/Config.in
> +++ b/package/opencv/Config.in
> @@ -200,17 +200,41 @@ comment "gstreamer backend needs either Gstreamer-0.10 or Gstreamer-1"
>  	depends on !BR2_PACKAGE_GSTREAMER && !BR2_PACKAGE_GSTREAMER1
>  	depends on BR2_USE_MMU # gstreamer -> libglib2
>  
> +
> +choice
> +	prompt "gtk support"
> +	# common dependencies to libgtk2 and libgtk3
> +	depends on BR2_USE_WCHAR
> +	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	depends on BR2_USE_MMU
> +	depends on BR2_ARCH_HAS_ATOMICS
> +	# GTK check is disabled when Qt support is on in the OpenCV's cmake code
> +	depends on !BR2_PACKAGE_OPENCV_WITH_QT

No need for a default here, because 'none' is the first entry, so it is
expressly the default.

Otherwise looks good:

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

But see a comment below...

> +	default BR2_PACKAGE_OPENCV_WITHOUT_GTK
> +	help
> +	  GTK support is disabled if Qt support is enabled.
> +
> +config BR2_PACKAGE_OPENCV_WITHOUT_GTK
> +	bool "none"
> +
>  config BR2_PACKAGE_OPENCV_WITH_GTK
> -	bool "gtk support"
> +	bool "libgtk2"
>  	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_GTK3
> +	bool "libgtk3"
> +	select BR2_PACKAGE_LIBGTK3
> +
> +endchoice
> +
> +comment "gtk support needs wchar, threads, C++"
> +	depends on !(BR2_USE_WCHAR || BR2_TOOLCHAIN_HAS_THREADS || \
> +		BR2_INSTALL_LIBSTDCPP)
> +	depends on BR2_USE_MMU
> +	depends on BR2_ARCH_HAS_ATOMICS

I like that you've made it a choice. But it is inconsistent with how we
present the Qt/Qt5 options.

What about making it a single choice (with proper dependencies, of
course), like so:


    choice
        prompt "GUI toolkit"

    config BR2_PKG_OPENCV_GUI_NONE
        bool "none"

    config BR2_PKG_OPENCV_GUI_QT
        bool "Qt4"
        depends on BR2_PKG_QT
        ...
        select ...

    comment "Qt needs ..."

    config BR2_PKG_OPENCV_GUI_QT5
        bool "Qt5"
        depends on BR2_PKG_QT5
        ...
        select ...

    comment "Qt5 needs ..."

    config BR2_PKG_OPENCV_GUI_GTK
        bool "gtk2"
        depends on ...
        select BR2_PKG_GTK
        select ...

    comment "gtk2 needs ..."

    config BR2_PKG_OPENCV_GUI_GTK3
        bool "gtk3"
        depends on ...
        select BR2_PKG_GTK3
        select ...

    comment "gtk3 needs ..."

    endchoice

What's your opinion on that?

If you agree, then the series should look like:

    package/opencv: add a choice for selecting the GUI toolkit
        => moves the existing Qt4 and gtk2 options in that choice
    package/opencv: add qt5 support
        => adds Qt5 option to the GUI choice
    package/opencv: add gtk3 to the GUI toolkit choice
        => adds gtk3 option to thw GUI choice

Of course, that's not a show-stopper, as my Reviewed-by tag implies.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2015-06-07 13:00 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-07 10:26 [Buildroot] [PATCH v5 00/13] OpenCV bump Samuel Martin
2015-06-07 10:26 ` [Buildroot] [PATCH v5 01/13] package/opencv: cleanup spaces at ends of line Samuel Martin
2015-06-07 11:31   ` Yann E. MORIN
2015-06-09 20:45   ` Thomas Petazzoni
2015-06-07 10:26 ` [Buildroot] [PATCH v5 02/13] package/opencv: alphabetically sorted each _CONF_OPTS group Samuel Martin
2015-06-07 11:35   ` Yann E. MORIN
2015-06-07 11:49     ` Samuel Martin
2015-06-07 10:26 ` [Buildroot] [PATCH v5 03/13] package/opencv: bump to version 3.0 Samuel Martin
2015-06-07 12:03   ` Yann E. MORIN
2015-06-14 14:05     ` Samuel Martin
2015-06-07 10:26 ` [Buildroot] [PATCH v5 04/13] package/opencv: define modules inter-dependencies Samuel Martin
2015-06-07 12:11   ` Yann E. MORIN
2015-06-07 10:26 ` [Buildroot] [PATCH v5 05/13] package/opencv: reword modules' prompt and help text Samuel Martin
2015-06-07 12:12   ` Yann E. MORIN
2015-06-09 20:46     ` Thomas Petazzoni
2015-06-07 10:26 ` [Buildroot] [PATCH v5 06/13] package/opencv: add qt5 support Samuel Martin
2015-06-07 12:16   ` Yann E. MORIN
2015-06-07 10:26 ` [Buildroot] [PATCH v5 07/13] package/opencv: add python support Samuel Martin
2015-06-07 12:22   ` Yann E. MORIN
2015-06-07 10:26 ` [Buildroot] [PATCH v5 08/13] package/opencv: add gstreamer-1.x support Samuel Martin
2015-06-07 12:34   ` Yann E. MORIN
2015-06-07 10:26 ` [Buildroot] [PATCH v5 09/13] package/opencv: add opengl support Samuel Martin
2015-06-07 12:41   ` Yann E. MORIN
2015-06-07 10:26 ` [Buildroot] [PATCH v5 10/13] package/opencv: add openmp support Samuel Martin
2015-06-07 12:43   ` Yann E. MORIN
2015-06-07 10:26 ` [Buildroot] [PATCH v5 11/13] package/opencv: add gtk3 support Samuel Martin
2015-06-07 13:00   ` Yann E. MORIN [this message]
2015-06-07 10:26 ` [Buildroot] [PATCH v5 12/13] package/vlc: add opencv support Samuel Martin
2015-06-07 13:14   ` Yann E. MORIN
2015-06-07 10:26 ` [Buildroot] [PATCH v5 13/13] package/gstreamer1/gst1-plugins-bad: disable opencv plugin with opencv-3 Samuel Martin
2015-06-07 13:18   ` Yann E. MORIN

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150607130054.GL3545@free.fr \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox