[Buildroot] [PATCH v2 21/24] opencv: define modules inter-dependencies

Yann E. MORIN yann.morin.1998 at free.fr
Sun May 4 10:04:15 UTC 2014


Samuel, All,

On 2014-04-23 01:15 +0200, Samuel Martin spake thusly:
> OpenCV allows to enable/disable the selection of modules (a.k.a.
> opencv libraries). These modules depend one from the others; these

... one on the others

> dependencies are already handled by the build-system (CMake).
> 
> However, the way we handled them in Buildroot was not really clean.
> For each opencv module, there is a kconfig option, but we forced the
> corresponding cmake config option without checking for module
> dependencies.
> 
> This patch replicates the modules' dependency relations in the
> Config.in, so that the selection of the user will actually be built.

I'll trust you on this dependency chain. ;-)

> Signed-off-by: Samuel Martin <s.martin49 at gmail.com>

With the small nit in the commit log above fixed:
Reviewed-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>

Regards,
Yann E. MORIN.

> ---
> changes v1 -> v2:
> - rebase
> ---
>  package/opencv/Config.in | 75 ++++++++++++++++++++++++++++++++++++++----------
>  1 file changed, 60 insertions(+), 15 deletions(-)
> 
> diff --git a/package/opencv/Config.in b/package/opencv/Config.in
> index e52f22a..31732a6 100644
> --- a/package/opencv/Config.in
> +++ b/package/opencv/Config.in
> @@ -8,6 +8,8 @@ menuconfig BR2_PACKAGE_OPENCV
>  	  OpenCV (Open Source Computer Vision) is a library of programming
>  	  functions for real time computer vision.
>  
> +	  Note that the opencv_core module is automatically enabled.
> +
>  	  http://opencv.org/
>  
>  if BR2_PACKAGE_OPENCV
> @@ -16,109 +18,152 @@ comment "OpenCV modules"
>  
>  config BR2_PACKAGE_OPENCV_LIB_CALIB3D
>  	bool "calib3d"
> -	default y
> +	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
> +	select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
>  	help
>  	  Include opencv_calib3d module into the OpenCV build.
>  
>  config BR2_PACKAGE_OPENCV_LIB_CONTRIB
>  	bool "contrib"
> -	default y
> +	select BR2_PACKAGE_OPENCV_LIB_CALIB3D
> +	select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
> +	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
> +	select BR2_PACKAGE_OPENCV_LIB_ML
> +	select BR2_PACKAGE_OPENCV_LIB_OBJDETECT
> +	select BR2_PACKAGE_OPENCV_LIB_VIDEO
>  	help
>  	  Include opencv_contrib module into the OpenCV build.
>  
> +# opencv_core module is automatically enabled when OpenCV package is selected
> +
>  config BR2_PACKAGE_OPENCV_LIB_FEATURES2D
>  	bool "features2d"
> -	default y
> +	select BR2_PACKAGE_OPENCV_LIB_FLANN
> +	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
>  	help
>  	  Include opencv_features2d module into the OpenCV build.
>  
>  config BR2_PACKAGE_OPENCV_LIB_FLANN
>  	bool "flann"
> -	default y
> +	# opencv_core dependency is already enabled
>  	help
>  	  Include opencv_flann module into the OpenCV build.
>  
>  config BR2_PACKAGE_OPENCV_LIB_GPU
>  	bool "gpu"
> +	select BR2_PACKAGE_OPENCV_LIB_CALIB3D
> +	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
> +	select BR2_PACKAGE_OPENCV_LIB_LEGACY
> +	select BR2_PACKAGE_OPENCV_LIB_OBJDETECT
> +	select BR2_PACKAGE_OPENCV_LIB_PHOTO
> +	select BR2_PACKAGE_OPENCV_LIB_VIDEO
>  	help
>  	  Include opencv_gpu module into the OpenCV build.
>  
>  config BR2_PACKAGE_OPENCV_LIB_HIGHGUI
>  	bool "highgui"
> -	default y
> +	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
>  	help
>  	  Include opencv_highgui module into the OpenCV build.
>  
>  config BR2_PACKAGE_OPENCV_LIB_IMGPROC
>  	bool "imgproc"
> -	default y
> +	# opencv_core dependency is already enabled
>  	help
>  	  Include opencv_imgproc module into the OpenCV build.
>  
>  config BR2_PACKAGE_OPENCV_LIB_LEGACY
>  	bool "legacy"
> -	default y
> +	select BR2_PACKAGE_OPENCV_LIB_CALIB3D
> +	select BR2_PACKAGE_OPENCV_LIB_ML
> +	select BR2_PACKAGE_OPENCV_LIB_VIDEO
>  	help
>  	  Include opencv_legacy module into the OpenCV build.
>  
>  config BR2_PACKAGE_OPENCV_LIB_ML
>  	bool "ml (machine learning)"
> -	default y
> +	# opencv_core dependency is already enabled
>  	help
>  	  Include opencv_ml module into the OpenCV build.
>  
>  config BR2_PACKAGE_OPENCV_LIB_NONFREE
>  	bool "nonfree"
> +	select BR2_PACKAGE_OPENCV_LIB_CALIB3D
> +	select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
> +	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
>  	help
>  	  Include opencv_nonfree module into the OpenCV build.
>  
>  config BR2_PACKAGE_OPENCV_LIB_OBJDETECT
>  	bool "objdetect"
> -	default y
> +	# opencv_core dependency is already enabled
> +	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
>  	help
>  	  Include opencv_objdetect module into the OpenCV build.
>  
>  config BR2_PACKAGE_OPENCV_LIB_PHOTO
>  	bool "photo"
> -	default y
> +	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
>  	help
>  	  Include opencv_photo module into the OpenCV build.
>  
>  config BR2_PACKAGE_OPENCV_LIB_PYTHON
>  	bool "python"
>  	depends on BR2_PACKAGE_PYTHON
> +	# opencv_core dependency is already enabled
> +	select BR2_PACKAGE_OPENCV_LIB_CALIB3D
> +	select BR2_PACKAGE_OPENCV_LIB_CONTRIB
> +	select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
> +	select BR2_PACKAGE_OPENCV_LIB_FLANN
> +	select BR2_PACKAGE_OPENCV_LIB_HIGHGUI
> +	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
> +	select BR2_PACKAGE_OPENCV_LIB_LEGACY
> +	select BR2_PACKAGE_OPENCV_LIB_ML
> +	select BR2_PACKAGE_OPENCV_LIB_OBJDETECT
> +	select BR2_PACKAGE_OPENCV_LIB_PHOTO
> +	select BR2_PACKAGE_OPENCV_LIB_VIDEO
>  	help
>  	  Include opencv_python module into the OpenCV build.
>  	  No python example is installed.
>  
>  config BR2_PACKAGE_OPENCV_LIB_STITCHING
>  	bool "stitching"
> -	default y
> +	select BR2_PACKAGE_OPENCV_LIB_CALIB3D
> +	select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
> +	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
> +	select BR2_PACKAGE_OPENCV_LIB_OBJDETECT
>  	help
>  	  Include opencv_stitching module into the OpenCV build.
>  
>  config BR2_PACKAGE_OPENCV_LIB_SUPERRES
>  	bool "superres"
> -	default y
> +	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
> +	select BR2_PACKAGE_OPENCV_LIB_VIDEO
>  	help
>  	  Include opencv_superres "super resolution" - module into the OpenCV
>  	  build.
>  
>  config BR2_PACKAGE_OPENCV_LIB_TS
>  	bool "ts (touchscreen)"
> -	default y
> +	# opencv_core dependency is already enabled
> +	select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
>  	help
>  	  Include opencv_ts module into the OpenCV build.
>  
>  config BR2_PACKAGE_OPENCV_LIB_VIDEO
>  	bool "video"
> -	default y
> +	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
>  	help
>  	  Include opencv_video module into the OpenCV build.
>  
>  config BR2_PACKAGE_OPENCV_LIB_VIDEOSTAB
>  	bool "videostab"
> -	default y
> +	select BR2_PACKAGE_OPENCV_LIB_CALIB3D
> +	select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
> +	select BR2_PACKAGE_OPENCV_LIB_HIGHGUI
> +	select BR2_PACKAGE_OPENCV_LIB_IMGPROC
> +	select BR2_PACKAGE_OPENCV_LIB_PHOTO
> +	select BR2_PACKAGE_OPENCV_LIB_VIDEO
>  	help
>  	  Include opencv_videostab module into the OpenCV build.
>  
> -- 
> 1.9.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

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


More information about the buildroot mailing list