package/opencv: define modules inter-dependencies

OpenCV allows to enable/disable the selection of modules (a.k.a.
opencv libraries). These modules depend one on the others; these
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 the modules'
dependencies.

This patch replicates the modules' dependency relations in the
Config.in, so that the selection of the user will actually be built.

Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Cc: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Samuel Martin 2015-06-25 21:59:45 +02:00 committed by Thomas Petazzoni
parent 5e238a87ea
commit 1a49f97b00

View File

@ -22,54 +22,70 @@ comment "OpenCV modules"
config BR2_PACKAGE_OPENCV_LIB_CALIB3D
bool "calib3d"
default y
select BR2_PACKAGE_OPENCV_LIB_FEATURES2D
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
help
Include opencv_calib3d module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_FEATURES2D
bool "features2d"
default y
select BR2_PACKAGE_OPENCV_LIB_FLANN
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
select BR2_PACKAGE_OPENCV_LIB_ML
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_HIGHGUI
bool "highgui"
default y
select BR2_PACKAGE_OPENCV_LIB_IMGCODECS
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
select BR2_PACKAGE_OPENCV_LIB_VIDEOIO
help
Include opencv_highgui module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_IMGCODECS
bool "imgcodecs"
default y
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
help
Include opencv_imgcodecs 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_ML
bool "ml"
default y
# opencv_core dependency is already enabled
help
Include opencv_ml 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
select BR2_PACKAGE_OPENCV_LIB_ML
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.
@ -78,44 +94,65 @@ comment "opencv_python module requires numpy which is not yet available."
config BR2_PACKAGE_OPENCV_LIB_SHAPE
bool "shape (shape descriptors and matchers)"
default y
# opencv_core dependency is already enabled
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
select BR2_PACKAGE_OPENCV_LIB_VIDEO
help
Include opencv_shape module into the OpenCV build.
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)"
select BR2_PACKAGE_OPENCV_LIB_HIGHGUI
default y
# opencv_core dependency is already enabled
select BR2_PACKAGE_OPENCV_LIB_HIGHGUI
select BR2_PACKAGE_OPENCV_LIB_IMGCODECS
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
select BR2_PACKAGE_OPENCV_LIB_VIDEOIO
help
Include opencv_ts module into the OpenCV build.
config BR2_PACKAGE_OPENCV_LIB_VIDEOIO
bool "videoio (media i/o)"
default y
select BR2_PACKAGE_OPENCV_LIB_IMGCODECS
select BR2_PACKAGE_OPENCV_LIB_IMGPROC
help
Include opencv_videoio 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_IMGPROC
select BR2_PACKAGE_OPENCV_LIB_PHOTO
select BR2_PACKAGE_OPENCV_LIB_VIDEO
help
Include opencv_videostab module into the OpenCV build.