[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