-
Notifications
You must be signed in to change notification settings - Fork 6.4k
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
[opencv4] Fix build failure when dnn feature is not enabled #38594
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
dnn
feature is not included):it failed and here is what
vcpkg/buildtrees/opencv4/config-x64-linux-out.log
said: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 ofFlatbuffers
detection introduced by the previous patch0017-fix-flatbuffers.patch
, which has correctly fixed theflatbuffers
-related issues.In
vcpkg/ports/opencv4/vcpkg.json
we can see,flatbuffers
is only the dependency of featurednn
:and when
dnn
is 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.