[opencv4] Fix build failure when dnn feature is not enabled#38594
[opencv4] Fix build failure when dnn feature is not enabled#38594data-queue merged 1 commit intomicrosoft:masterfrom
Conversation
|
I suggest adding constraints to the patch that determine when using dnn to find flatbuffers through the patch. Removing the patch may trigger the original CI error. |
|
But I don't think that it's a good way to use Eg. if(BUILD_opencv_dnn)We shouldn't assume that |
|
May I have ask why CI failed if we remove the patch? Does it related to something like caches? |
|
And your patches is the last one applied, remove it will not cause other patches applied failed |
Ok, I will test it locally and if there are no problems, I will mark it as reviewed. |
|
Compile test pass with following triplets: |
…t#38594) Given the following manifest (when `dnn` feature is not included): ```json "dependencies": [ { "name": "opencv4", "version>=": "4.8.0#18", "default-features": false, "features": [ "png" ] } ] ``` it failed and here is what `vcpkg/buildtrees/opencv4/config-x64-linux-out.log` said: ``` ... CMake Error at /home/peter/open-source/git/vcpkg/scripts/buildsystems/vcpkg.cmake:859 (_find_package): Could not find a package configuration file provided by "flatbuffers" with any of the following names: flatbuffersConfig.cmake flatbuffers-config.cmake Add the installation prefix of "flatbuffers" to CMAKE_PREFIX_PATH or set "flatbuffers_DIR" to a directory containing one of the above files. If "flatbuffers" provides a separate development package or SDK, be sure it has been installed. Call Stack (most recent call first): CMakeLists.txt:759 (find_package) ... ``` This problem is introduced by [commit 6d2c971](microsoft@6d2c971) contributed by @jimwang118 In the patch `vcpkg/ports/opencv4/0023-fix-no-flatbuffers.patch`, Jim disabled the procedure of `Flatbuffers` detection introduced by the previous patch `0017-fix-flatbuffers.patch`, which has correctly fixed the `flatbuffers`-related issues. ```patch ... --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -756,7 +756,7 @@ include(cmake/OpenCVFindLibsVideo.cmake) include(cmake/OpenCVFindLibsPerf.cmake) include(cmake/OpenCVFindLAPACK.cmake) include(cmake/OpenCVFindProtobuf.cmake) -include(cmake/OpenCVDetectFlatbuffers.cmake) +find_package(flatbuffers CONFIG REQUIRED) ... ``` In `vcpkg/ports/opencv4/vcpkg.json` we can see, `flatbuffers` is only the dependency of feature `dnn`: ```json "dependencies": [ ... "dnn": { "description": "Enable dnn module", "dependencies": [ "flatbuffers", { "name": "flatbuffers", "host": true, "default-features": false }, "protobuf" ] }, ... ``` and when `dnn` is not enabled, it broke down at the line `find_package(flatbuffers CONFIG REQUIRED)` And this change is unnecessary either: ```patch - list(APPEND libs ocv.3rdparty.flatbuffers) + list(APPEND libs flatbuffers::flatbuffers) ``` Thus, we'd better to revert those changes. Co-authored-by: WentsingNee <8090395+wentsingnee@user.noreply.gitee.com>




Given the following manifest (when
dnnfeature is not included):it failed and here is what
vcpkg/buildtrees/opencv4/config-x64-linux-out.logsaid:This problem is introduced by commit 6d2c9714 contributed by @jimwang118
In the patch
vcpkg/ports/opencv4/0023-fix-no-flatbuffers.patch, Jim disabled the procedure ofFlatbuffersdetection introduced by the previous patch0017-fix-flatbuffers.patch, which has correctly fixed theflatbuffers-related issues.In
vcpkg/ports/opencv4/vcpkg.jsonwe can see,flatbuffersis only the dependency of featurednn:and when
dnnis not enabled, it broke down at the linefind_package(flatbuffers CONFIG REQUIRED)And this change is unnecessary either:
Thus, we'd better to revert those changes.