Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

opencv 4.x: refactor to allow fine-grained selection of each module/contrib #15193

Merged
merged 145 commits into from
Aug 13, 2023

Conversation

SpaceIm
Copy link
Contributor

@SpaceIm SpaceIm commented Jan 10, 2023

  • Refactoring to allow disabling each module independently:

    • Add options with consistent names to allow enabling/disabling:

      • main modules (except core obviously), not only gapi & dnn: calib3d, features2d, flann, highgui, imgproc, imgcodecs, ml, objdetect, photo, stitching, video and videoio.
        As a consequence with_ade option is deprecated in favor of gapi option.

      • each extra module (~55 libraries).
        As a consequence contrib option is deprecated. contrib_sfm & contrib_freetype options are also deprecated in favor of sfm & freetype options respectively (for option naming consistency).

    • Due to the huge number of optional modules and internal dependencies between them, it may be very hard for consumers to find the good combination allowing to build a specific module (raising for each bad tuples of options would be a nightmare for users). Therefore when a module is enabled by users, opencv modules of its internal dependency graph are also enabled if they were disabled, and recipe displays a warning for each module enabled with this mechanism (if they were disabled by default or by consumers).

    • Several issues had to be fixed to allow this refactoring:

      • Properly declare in package_info() these missing contrib modules (they were built when contrib option was True, but not properly declared as components):

        • dnn_objdetect & text
        • dnn_superres since 4.1.2
        • mcc since 4.5.0
        • wechat_qrcode since 4.5.2
        • barcode since 4.5.3
      • Allow to build 3 more extra modules cvv, hdf & ovis.

      • Allow to build objdetect main module without dnn module in 4.5.5 (it can't be built upstream without dnn only in 4.5.4 & 4.5.5). It has been "fixed" upstream in OpenCV 4.6.0 (see Fix support objdetect module for UWP opencv/opencv#21369).
        It fixes few things in this recipe:

      • Fix "requires" of photo & stitching components when cuda is enabled.

    • Refactor tests to take into account these changes, it's more modular. It allows to test each component in isolation and more easily detect issues in opencv recipe.

  • Few options have been added in the meantime:

    • world which aggregates all modules (except img_hash & sfm) in one lib (aggregated modules still have a dedicated imported target to properly mimic official OpenCV config file, but these targets depend on opencv_world).

    • with_tesseract (enabled by default): build text extra module with tesseract support. Option is removed if text module is not built.

    • with_gdal & with_gdcm (disabled by default): optional dependencies of imgcodecs main module. Options are removed if imgcodecs module is not built.

    • with_qt (disabled by default): optional dependency of highgui main module, and mandatory for cvv extra module. Option is removed if highgui and cvv module are not built.

    • with_vulkan (disabled by default): optional dependency of dnn main module. Option is removed if dnn module is not built.

    • with_opencl (disabled by default): optional global dependency.

  • Few compat improvements:

  • conan v2 fix:

    • use self.dependencies["gtk"].options.version instead of self.options["gtk"].version
    • add res dir to resdirs attribute of components in package_info()

closes #4265
closes #7439
closes #9127
closes #14816
closes #15581
closes #16726
closes #17042
closes #17182
closes #17368


It has been "fixed" upstream for OpenCV 4.6.0

It fixes few things in this recipe:
- avoid a bug where quirc is in requirements, but not required by any component in package_indo() when dnn is False
- a regression introduced by conan-io#11009. Indeed objdetect can be built without dnn in all OpenCV version before 4.5.4, so this PR was breaking these versions when dnn was False by not exposing opencv_objdetect and few contrib components.
components:
- dnn_objdetect & opencv_text
- dnn_superres since 4.1.2
- mcc since 4.5.0
- wechat_qrcode since 4.5.2
- barcode since 4.5.3
@conan-center-bot

This comment has been minimized.

@github-actions
Copy link
Contributor

Hooks produced the following warnings for commit 2b84e4e
opencv/4.5.1
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library './lib/libopencv_videoio.so' links to system library 'mvec' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_gapi451.dll' links to system library 'wsock32' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio451.dll' links to system library 'mf' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio451.dll' links to system library 'd3d11' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio451.dll' links to system library 'mfreadwrite' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio451.dll' links to system library 'mfplat' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio451d.dll' links to system library 'mfreadwrite' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_gapi451d.dll' links to system library 'wsock32' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio451d.dll' links to system library 'mfplat' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio451d.dll' links to system library 'd3d11' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio451d.dll' links to system library 'mf' but it is not in cpp_info.system_libs.
opencv/4.5.5
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library './lib/libopencv_videoio.so' links to system library 'mvec' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_gapi455.dll' links to system library 'wsock32' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio455.dll' links to system library 'dxgi' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio455.dll' links to system library 'd3d11' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio455.dll' links to system library 'mfreadwrite' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio455.dll' links to system library 'mfplat' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio455.dll' links to system library 'mf' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_gapi455d.dll' links to system library 'wsock32' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio455d.dll' links to system library 'mf' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio455d.dll' links to system library 'd3d11' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio455d.dll' links to system library 'dxgi' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio455d.dll' links to system library 'mfplat' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio455d.dll' links to system library 'mfreadwrite' but it is not in cpp_info.system_libs.
opencv/4.1.2
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library './lib/libopencv_videoio.so' links to system library 'mvec' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412.dll' links to system library 'mf' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412.dll' links to system library 'mfplat' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412.dll' links to system library 'mfreadwrite' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412.dll' links to system library 'd3d11' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412d.dll' links to system library 'mfplat' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412d.dll' links to system library 'd3d11' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412d.dll' links to system library 'mf' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412d.dll' links to system library 'mfreadwrite' but it is not in cpp_info.system_libs.
opencv/4.5.3
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library './lib/libopencv_videoio.so' links to system library 'mvec' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio453.dll' links to system library 'dxgi' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_gapi453.dll' links to system library 'wsock32' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio453.dll' links to system library 'mfreadwrite' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio453.dll' links to system library 'd3d11' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio453.dll' links to system library 'mfplat' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio453.dll' links to system library 'mf' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio453d.dll' links to system library 'mf' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_gapi453d.dll' links to system library 'wsock32' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio453d.dll' links to system library 'dxgi' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio453d.dll' links to system library 'd3d11' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio453d.dll' links to system library 'mfplat' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio453d.dll' links to system library 'mfreadwrite' but it is not in cpp_info.system_libs.

@conan-center-bot

This comment has been minimized.

@SpaceIm SpaceIm changed the title opencv 4.x: several fixes in components opencv 4.x: add option for each contrib + several fixes in components Jan 10, 2023
@SpaceIm SpaceIm force-pushed the fix/opencv-components branch from f9ba580 to 7619df4 Compare January 10, 2023 21:55
@conan-center-bot

This comment has been minimized.

@SpaceIm
Copy link
Contributor Author

SpaceIm commented Jul 1, 2023

12/14 Test #14: test_videoio .....................***Failed    0.01 sec
/home/conan/w/prod/BuildSingleReference/cci-335c42c4/recipes/opencv/4.x/test_v1_package/build/fc926f3ef0846225112e32da37080ac8b54a6e8c/bin/test_videoio: error while loading shared libraries: libva-drm.so.1: cannot open shared object file: No such file or directory

WTF

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@github-actions
Copy link
Contributor

Hooks produced the following warnings for commit 186011a
opencv/4.5.3
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio453.dll' links to system library 'dxgi' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio453.dll' links to system library 'mf' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio453.dll' links to system library 'mfreadwrite' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio453.dll' links to system library 'd3d11' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio453d.dll' links to system library 'd3d11' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio453d.dll' links to system library 'mf' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio453d.dll' links to system library 'mfreadwrite' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio453d.dll' links to system library 'dxgi' but it is not in cpp_info.system_libs.
opencv/4.5.5
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio455.dll' links to system library 'mfreadwrite' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio455.dll' links to system library 'd3d11' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio455.dll' links to system library 'mf' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio455.dll' links to system library 'dxgi' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio455d.dll' links to system library 'mf' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio455d.dll' links to system library 'mfreadwrite' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio455d.dll' links to system library 'd3d11' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio455d.dll' links to system library 'dxgi' but it is not in cpp_info.system_libs.
opencv/4.1.2
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412d.dll' links to system library 'd3d11' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412d.dll' links to system library 'mf' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412d.dll' links to system library 'mfreadwrite' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412.dll' links to system library 'mfreadwrite' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412.dll' links to system library 'd3d11' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412.dll' links to system library 'mf' but it is not in cpp_info.system_libs.

Copy link
Member

@uilianries uilianries left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good, just an info about a patch

recipes/opencv/4.x/conandata.yml Show resolved Hide resolved
Co-authored-by: Uilian Ries <uilianries@gmail.com>
@conan-center-bot
Copy link
Collaborator

Conan v1 pipeline ✔️

All green in build 3 (a3ad99a4128e90333d4beafc385125dbfd6528b0):

  • opencv/4.5.5@:
    All packages built successfully! (All logs)

  • opencv/4.5.3@:
    All packages built successfully! (All logs)

  • opencv/4.1.2@:
    All packages built successfully! (All logs)


Conan v2 pipeline ✔️

Note: Conan v2 builds may be required once they are on the v2 ready list

All green in build 3 (a3ad99a4128e90333d4beafc385125dbfd6528b0):

  • opencv/4.5.5@:
    All packages built successfully! (All logs)

  • opencv/4.5.3@:
    All packages built successfully! (All logs)

  • opencv/4.1.2@:
    All packages built successfully! (All logs)

@github-actions
Copy link
Contributor

Hooks produced the following warnings for commit a3ad99a
opencv/4.1.2
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412.dll' links to system library 'd3d11' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412.dll' links to system library 'mfreadwrite' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412.dll' links to system library 'mf' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412d.dll' links to system library 'd3d11' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412d.dll' links to system library 'mf' but it is not in cpp_info.system_libs.
post_package(): WARN: [MISSING SYSTEM LIBS (KB-H043)] Library '.\bin\opencv_videoio412d.dll' links to system library 'mfreadwrite' but it is not in cpp_info.system_libs.

@conan-center-bot conan-center-bot merged commit f9102fd into conan-io:master Aug 13, 2023
@SpaceIm SpaceIm deleted the fix/opencv-components branch August 13, 2023 11:07
ericLemanissier pushed a commit to ericLemanissier/conan-center-index that referenced this pull request Sep 15, 2023
… of each module/contrib

* allow to build opencv_objdetect without dnn in 4.5.5

It has been "fixed" upstream for OpenCV 4.6.0

It fixes few things in this recipe:
- avoid a bug where quirc is in requirements, but not required by any component in package_indo() when dnn is False
- a regression introduced by conan-io#11009. Indeed objdetect can be built without dnn in all OpenCV version before 4.5.4, so this PR was breaking these versions when dnn was False by not exposing opencv_objdetect and few contrib components.

* add missing contrib components when dnn is True

components:
- dnn_objdetect & opencv_text
- dnn_superres since 4.1.2
- mcc since 4.5.0
- wechat_qrcode since 4.5.2
- barcode since 4.5.3

* fix photo & stitching components when cuda is enabled

* add quality component in contrib only if version >= 4.1.0

* add dnn as an option dependency of video since 4.5.1

* dnn is an optional dependency of tracking

* text is an optional dependency of datasets

* move cuda components under contrib

* fix requires of several contrib components

* improve requires of main components

* add an option for each contrib and deprecate contrib option

* fix internal requirements of tracking module

* force disable tesseract in text module for the moment

* deprecate with_ade option in favor of gapi option

* add option to allow to disable stitching module

* remove useless comments

* adapt test package to new options

* add option to allow disabling highgui

* add option to allow disabling videoio

* add option to allow disabling ml

* add option to allow disabling photo

* move options related to modules first

* add missing frameworks for imgcodecs

* add with_tesseract option for text module

* also handle cuda contribs

* add option to allow disabling objdetect

* add option to allow disabling video

* prefer to force enable options required by modules explicitly required by consumers

* improve CMakeLists of test package

* add option to allow disabling imgcodecs

* typo

* remove with_imgcodec_* options when imgcodecs module is disabled

* add option to allow disabling calib3d

* add option to allow disabling features2d

* classification of options by category

* add option to allow disabling flann

* split executables in test package per tested module

* add option to allow disabling imgproc

* opencv 4.x requires at least C++11

* test opencv_core

* add options for gdal & gdcm support in imgcodecs

* test opencv_imgcodecs

* minor change

* add missing mantadory dependency to tracking

* minor change

* add contrib_ovis option

* add contrib_hdf option

* fix system libs of opencv_gapi on Windows

* remove with_v4l option if videoio module is disabled

* control build of cudev through with_cuda option

* add vulkan support in dnn module

* add with_opencl option

* do not build Android examples

* fix discovery of zlib static if Android

* fix install layout for Android

* better filter to collect extra libs in opencv core

* remove contrib prefix

* add deprecation messages

* alphamat requires eigen support

* fix injection of cpu_baseline and cpu_dispatch in case of empty string

* neon stuff

* pass False to WITH_FFMPEG if option removed

* remove deprecated options from package id

* simplify

* add cvv and viz options

viz module can't be enabled yet, due to lack of vtk recipe in conan-center

* avoid redefining cmake variables

* do not force disable openexr if Android

* better handling of qt

* no base_path in conandata.yml

* fix qt link

* improve deprecated contrib option handling

* factorize modules in options & default_options

* declare frameworks & system_libs in _opencv_modules

* typo

* fix link to qt in cvv module

* add a test of calib3d module

* add a test of flann module

* add a test of objdetect module

* add a test of video module

* add a test of photo module

* add a test of stitching module

* add a test of ml module

* add a test of highgui module

* parallel ctest in test package

* add a test of features2d module

* add a test of freetype module

* parallel ctest in test v1 package

* add a test of structured_light module

* add a test of shape module

* add a test of reg module

* simplify test_imgproc.cpp

* test more extra modules

* more elegant workaround of get_safe in test_v1_package

* small change

* missing tesseract in requires of text component

* add a test of text module

* add test of xfeatures2d module

* add test of ximgproc module

* test more extra modules

* add missing header in alphamat.hpp

* typo

* sfm module needs eigen enabled

* test more extra modules

* test more extra modules

* test more extra modules

* simplify CMakeLists of test package

* simplify test package even more

* test more modules

* adapt dnn_superres test to work with old versions

* fix build of sfm extra module in opencv < 4.5.3

* check again internal dependencies between options in validate()

in conan v2 downstream options values always have precedence, so we have to check again in validate() that combination of opencv options is still valid

* add world option

* minor change

* minor comment change

* factorize a little bit

* bump protobuf to 3.21.9

* compat with openexr 3.x in old opencv versions

* add res to resdirs of components

* bump dependencies

* some conan v2 stuff

* bump freetype

* properly set requires of each component regarding eigen

Eigen is a private dependency of:
- calib3d
- core
- features2d
- stitching
- rgbd
- sfm
- ximgproc

* fix cuda internal dependencies

* use self.dependencies["ffmpeg"]

* fix ffmpeg required components

* improve ffmpeg handling

* ffmpeg workaround for the moment

* bump ffmpeg

* avutil always available in ffmpeg

* bump dependencies

* factorize

* remove patches of removed versions

* fix world option

* bump dependencies

* fix typo in requires of cudacodec

* bump several dependencies

* Update recipes/opencv/4.x/conandata.yml

Co-authored-by: Uilian Ries <uilianries@gmail.com>

---------

Co-authored-by: Uilian Ries <uilianries@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment