vcpkg/ports/opencv4
Wentsing Nee 44fb94f7a1
[opencv4] Fix build failure when dnn feature is not enabled (#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
6d2c9714](6d2c971458)
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>
2024-05-07 20:38:17 -07:00
..
0001-disable-downloading.patch
0002-install-options.patch
0003-force-package-requirements.patch
0004-fix-eigen.patch
0005-fix-policy-CMP0057.patch
0006-fix-uwp.patch
0007-fix-hdf5.patch
0008-devendor-quirc.patch
0009-fix-protobuf.patch
0010-fix-uwp-tiff-imgcodecs.patch
0011-remove-python2.patch
0012-fix-zlib.patch
0015-fix-freetype.patch
0016-fix-freetype-contrib.patch
0017-fix-flatbuffers.patch
0018-fix-depend-tesseract.patch
0019-fix-ogre-dependency.patch
0019-missing-include.patch
0020-fix-compat-cuda12.2.patch
0021-static-openvino.patch
0022-fix-supportqnx.patch
portfile.cmake [opencv4] Fix build failure when dnn feature is not enabled (#38594) 2024-05-07 20:38:17 -07:00
usage.in
vcpkg.json [opencv4] Fix build failure when dnn feature is not enabled (#38594) 2024-05-07 20:38:17 -07:00