]>
Commit | Line | Data |
---|---|---|
1e59de90 TL |
1 | if (EXISTS "${CURRENT_INSTALLED_DIR}/share/opencv2") |
2 | message(FATAL_ERROR "OpenCV 2 is installed, please uninstall and try again:\n vcpkg remove opencv2") | |
3 | endif() | |
4 | ||
5 | if (EXISTS "${CURRENT_INSTALLED_DIR}/share/opencv4") | |
6 | message(FATAL_ERROR "OpenCV 4 is installed, please uninstall and try again:\n vcpkg remove opencv4") | |
7 | endif() | |
8 | ||
9 | set(OPENCV_VERSION "3.4.13") | |
10 | ||
11 | vcpkg_from_github( | |
12 | OUT_SOURCE_PATH SOURCE_PATH | |
13 | REPO opencv/opencv | |
14 | REF ${OPENCV_VERSION} | |
15 | SHA512 ec87b10534b9187c5ac2eea498c05c73bceab08afaed93b5a117ed34d1eeeb0ffc45901642bebf8f55126fd49ec78d731fc61debe6b40d8642f1323b5dbbeacf | |
16 | HEAD_REF master | |
17 | PATCHES | |
18 | 0001-disable-downloading.patch | |
19 | 0002-install-options.patch | |
20 | 0003-force-package-requirements.patch | |
21 | 0004-fix-eigen.patch | |
22 | 0005-fix-vtk9.patch | |
23 | 0006-fix-uwp.patch | |
24 | 0008-devendor-quirc.patch | |
25 | ) | |
26 | ||
27 | if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") | |
28 | set(TARGET_IS_AARCH64 1) | |
29 | elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") | |
30 | set(TARGET_IS_ARM 1) | |
31 | elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") | |
32 | set(TARGET_IS_X86_64 1) | |
33 | else() | |
34 | set(TARGET_IS_X86 1) | |
35 | endif() | |
36 | ||
37 | file(REMOVE "${SOURCE_PATH}/cmake/FindCUDNN.cmake") | |
38 | ||
39 | string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_WITH_STATIC_CRT) | |
40 | ||
41 | vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS | |
42 | "contrib" WITH_CONTRIB | |
43 | "cuda" WITH_CUBLAS | |
44 | "cuda" WITH_CUDA | |
45 | "dnn" BUILD_opencv_dnn | |
46 | "eigen" WITH_EIGEN | |
47 | "ffmpeg" WITH_FFMPEG | |
48 | "flann" BUILD_opencv_flann | |
49 | "gdcm" WITH_GDCM | |
50 | "halide" WITH_HALIDE | |
51 | "jasper" WITH_JASPER | |
52 | "jpeg" WITH_JPEG | |
53 | "lapack" WITH_LAPACK | |
54 | "nonfree" OPENCV_ENABLE_NONFREE | |
55 | "openexr" WITH_OPENEXR | |
56 | "opengl" WITH_OPENGL | |
57 | "png" WITH_PNG | |
58 | "qt" WITH_QT | |
59 | "quirc" WITH_QUIRC | |
60 | "sfm" BUILD_opencv_sfm | |
61 | "tiff" WITH_TIFF | |
62 | "vtk" WITH_VTK | |
63 | "webp" WITH_WEBP | |
64 | "world" BUILD_opencv_world | |
65 | ) | |
66 | ||
67 | # Cannot use vcpkg_check_features() for "dnn", "ipp", ovis", "tbb" | |
68 | # As the respective value of their variables can be unset conditionally. | |
69 | set(BUILD_opencv_dnn OFF) | |
70 | if("dnn" IN_LIST FEATURES) | |
71 | if(NOT VCPKG_TARGET_IS_ANDROID) | |
72 | set(BUILD_opencv_dnn ON) | |
73 | else() | |
74 | message(WARNING "The dnn module cannot be enabled on Android") | |
75 | endif() | |
76 | endif() | |
77 | ||
78 | set(WITH_IPP OFF) | |
79 | if("ipp" IN_LIST FEATURES) | |
80 | set(WITH_IPP ON) | |
81 | endif() | |
82 | ||
83 | set(BUILD_opencv_ovis OFF) | |
84 | if("ovis" IN_LIST FEATURES) | |
85 | set(BUILD_opencv_ovis ON) | |
86 | endif() | |
87 | ||
88 | set(WITH_TBB OFF) | |
89 | if("tbb" IN_LIST FEATURES) | |
90 | set(WITH_TBB ON) | |
91 | endif() | |
92 | ||
93 | if("dnn" IN_LIST FEATURES) | |
94 | vcpkg_download_distfile(TINYDNN_ARCHIVE | |
95 | URLS "https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz" | |
96 | FILENAME "opencv-cache/tiny_dnn/adb1c512e09ca2c7a6faef36f9c53e59-v1.0.0a3.tar.gz" | |
97 | SHA512 5f2c1a161771efa67e85b1fea395953b7744e29f61187ac5a6c54c912fb195b3aef9a5827135c3668bd0eeea5ae04a33cc433e1f6683e2b7955010a2632d168b | |
98 | ) | |
99 | endif() | |
100 | ||
101 | # Build image quality module when building with 'contrib' feature and not UWP. | |
102 | set(BUILD_opencv_quality OFF) | |
103 | if("contrib" IN_LIST FEATURES) | |
104 | if (VCPKG_TARGET_IS_UWP) | |
105 | set(BUILD_opencv_quality OFF) | |
106 | message(WARNING "The image quality module (quality) does not build for UWP, the module has been disabled.") | |
107 | # The hdf module is silently disabled by OpenCVs buildsystem if HDF5 is not detected. | |
108 | message(WARNING "The hierarchical data format module (hdf) depends on HDF5 which doesn't support UWP, the module has been disabled.") | |
109 | else() | |
110 | set(BUILD_opencv_quality CMAKE_DEPENDS_IN_PROJECT_ONLY) | |
111 | endif() | |
112 | ||
113 | vcpkg_from_github( | |
114 | OUT_SOURCE_PATH CONTRIB_SOURCE_PATH | |
115 | REPO opencv/opencv_contrib | |
116 | REF ${OPENCV_VERSION} | |
117 | SHA512 49f0aed8e07a443f354859a16c8de5ceae26560f141721ae4beb0d5fcc5b24b755ee313519e159b1a5b6ba125dcca8584f2a515e0ac96a8c9c36bb11ac6b3375 | |
118 | HEAD_REF master | |
119 | PATCHES | |
120 | 0007-fix-hdf5.patch | |
121 | ) | |
122 | set(BUILD_WITH_CONTRIB_FLAG "-DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules") | |
123 | ||
124 | vcpkg_download_distfile(OCV_DOWNLOAD | |
125 | URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat" | |
126 | FILENAME "opencv-cache/data/7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat" | |
127 | SHA512 c16e60a6c4bb4de3ab39b876ae3c3f320ea56f69c93e9303bd2dff8760841dcd71be4161fff8bc71e8fe4fe8747fa8465d49d6bd8f5ebcdaea161f4bc2da7c93 | |
128 | ) | |
129 | ||
130 | function(download_opencv_3rdparty ID COMMIT HASH) | |
131 | if(NOT EXISTS "${DOWNLOADS}/opencv-cache/${ID}/${COMMIT}.stamp") | |
132 | vcpkg_download_distfile(OCV_DOWNLOAD | |
133 | URLS "https://github.com/opencv/opencv_3rdparty/archive/${COMMIT}.zip" | |
134 | FILENAME "opencv_3rdparty-${COMMIT}.zip" | |
135 | SHA512 ${HASH} | |
136 | ) | |
137 | vcpkg_extract_source_archive(${OCV_DOWNLOAD}) | |
138 | file(MAKE_DIRECTORY "${DOWNLOADS}/opencv-cache/${ID}") | |
139 | file(GLOB XFEATURES2D_I ${CURRENT_BUILDTREES_DIR}/src/opencv_3rdparty-${COMMIT}/*) | |
140 | foreach(FILE ${XFEATURES2D_I}) | |
141 | file(COPY ${FILE} DESTINATION "${DOWNLOADS}/opencv-cache/${ID}") | |
142 | get_filename_component(XFEATURES2D_I_NAME "${FILE}" NAME) | |
143 | file(MD5 "${FILE}" FILE_HASH) | |
144 | file(RENAME "${DOWNLOADS}/opencv-cache/${ID}/${XFEATURES2D_I_NAME}" "${DOWNLOADS}/opencv-cache/${ID}/${FILE_HASH}-${XFEATURES2D_I_NAME}") | |
145 | endforeach() | |
146 | file(WRITE "${DOWNLOADS}/opencv-cache/${ID}/${COMMIT}.stamp") | |
147 | endif() | |
148 | endfunction() | |
149 | ||
150 | # Used for opencv's xfeature2d module | |
151 | download_opencv_3rdparty( | |
152 | xfeatures2d/boostdesc | |
153 | 34e4206aef44d50e6bbcd0ab06354b52e7466d26 | |
154 | 2ccdc8fb59da55eabc73309a80a4d3b1e73e2341027cdcdd2d714e0f519e60f243f38f79b13ed3de32f595aa23e4f86418eed42e741f32a81b1e6e0879190601 | |
155 | ) | |
156 | ||
157 | # Used for opencv's xfeature2d module | |
158 | download_opencv_3rdparty( | |
159 | xfeatures2d/vgg | |
160 | fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d | |
161 | 7051f5d6ccb938d296b919dd6d5dcddc5afb527aed456639c9984276a8f64565c084d96a72499a7756f127f8d2b1ce9ab70e4cbb3f89c4e16f82296c2a15daed | |
162 | ) | |
163 | endif() | |
164 | ||
165 | if(WITH_IPP) | |
166 | if(VCPKG_TARGET_IS_OSX) | |
167 | if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") | |
168 | vcpkg_download_distfile(OCV_DOWNLOAD | |
169 | URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_mac_intel64_20191018_general.tgz" | |
170 | FILENAME "opencv-cache/ippicv/1c3d675c2a2395d094d523024896e01b-ippicv_2020_mac_intel64_20191018_general.tgz" | |
171 | SHA512 454dfaaa245e3a3b2f1ffb1aa8e27e280b03685009d66e147482b14e5796fdf2d332cac0f9b0822caedd5760fda4ee0ce2961889597456bbc18202f10bf727cd | |
172 | ) | |
173 | else() | |
174 | message(WARNING "This target architecture is not supported IPPICV") | |
175 | set(WITH_IPP OFF) | |
176 | endif() | |
177 | elseif(VCPKG_TARGET_IS_LINUX) | |
178 | if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") | |
179 | vcpkg_download_distfile(OCV_DOWNLOAD | |
180 | URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_lnx_intel64_20191018_general.tgz" | |
181 | FILENAME "opencv-cache/ippicv/7421de0095c7a39162ae13a6098782f9-ippicv_2020_lnx_intel64_20191018_general.tgz" | |
182 | SHA512 de6d80695cd6deef359376476edc4ff85fdddcf94972b936e0017f8a48aaa5d18f55c4253ae37deb83bff2f71410f68408063c88b5f3bf4df3c416aa93ceca87 | |
183 | ) | |
184 | elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") | |
185 | vcpkg_download_distfile(OCV_DOWNLOAD | |
186 | URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_lnx_ia32_20191018_general.tgz" | |
187 | FILENAME "opencv-cache/ippicv/ad189a940fb60eb71f291321322fe3e8-ippicv_2020_lnx_ia32_20191018_general.tgz" | |
188 | SHA512 5ca9dafc3a634e2a5f83f6a498611c990ef16d54358e9b44574b01694e9d64b118d46d6e2011506e40d37e5a9865f576f790e37ff96b7c8b503507633631a296 | |
189 | ) | |
190 | else() | |
191 | message(WARNING "This target architecture is not supported IPPICV") | |
192 | set(WITH_IPP OFF) | |
193 | endif() | |
194 | elseif(VCPKG_TARGET_IS_WINDOWS) | |
195 | if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") | |
196 | vcpkg_download_distfile(OCV_DOWNLOAD | |
197 | URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_win_intel64_20191018_general.zip" | |
198 | FILENAME "opencv-cache/ippicv/879741a7946b814455eee6c6ffde2984-ippicv_2020_win_intel64_20191018_general.zip" | |
199 | SHA512 50c4af4b7fe2161d652264230389dad2330e8c95b734d04fb7565bffdab855c06d43085e480da554c56b04f8538087d49503538d5943221ee2a772ee7be4c93c | |
200 | ) | |
201 | elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") | |
202 | vcpkg_download_distfile(OCV_DOWNLOAD | |
203 | URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_win_ia32_20191018_general.zip" | |
204 | FILENAME "opencv-cache/ippicv/cd39bdf0c2e1cac9a61101dad7a2413e-ippicv_2020_win_ia32_20191018_general.zip" | |
205 | SHA512 058d00775d9f16955c7a557d554b8c2976ab9dbad4ba3fdb9823c0f768809edbd835e4397f01dc090a9bc80d81de834375e7006614d2a898f42e8004de0e04bf | |
206 | ) | |
207 | else() | |
208 | message(WARNING "This target architecture is not supported IPPICV") | |
209 | set(WITH_IPP OFF) | |
210 | endif() | |
211 | else() | |
212 | message(WARNING "This target architecture is not supported IPPICV") | |
213 | set(WITH_IPP OFF) | |
214 | endif() | |
215 | endif() | |
216 | ||
217 | set(WITH_MSMF ON) | |
218 | if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP) | |
219 | set(WITH_MSMF OFF) | |
220 | endif() | |
221 | ||
222 | if (VCPKG_LIBRARY_LINKAGE STREQUAL static) | |
223 | if (WITH_TBB) | |
224 | message(WARNING "TBB is currently unsupported in this build configuration, turning it off") | |
225 | set(WITH_TBB OFF) | |
226 | endif() | |
227 | ||
228 | if (VCPKG_TARGET_IS_WINDOWS AND BUILD_opencv_ovis) | |
229 | message(WARNING "OVIS is currently unsupported in this build configuration, turning it off") | |
230 | set(BUILD_opencv_ovis OFF) | |
231 | endif() | |
232 | endif() | |
233 | ||
234 | if("ffmpeg" IN_LIST FEATURES) | |
235 | if(VCPKG_TARGET_IS_UWP) | |
236 | set(VCPKG_C_FLAGS "/sdl- ${VCPKG_C_FLAGS}") | |
237 | set(VCPKG_CXX_FLAGS "/sdl- ${VCPKG_CXX_FLAGS}") | |
238 | endif() | |
239 | endif() | |
240 | ||
241 | if("qt" IN_LIST FEATURES) | |
242 | list(APPEND ADDITIONAL_BUILD_FLAGS "-DCMAKE_AUTOMOC=ON") | |
243 | endif() | |
244 | ||
245 | set(BUILD_opencv_line_descriptor ON) | |
246 | set(BUILD_opencv_saliency ON) | |
247 | set(BUILD_opencv_bgsegm ON) | |
248 | if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm") | |
249 | set(BUILD_opencv_line_descriptor OFF) | |
250 | set(BUILD_opencv_saliency OFF) | |
251 | set(BUILD_opencv_bgsegm OFF) | |
252 | endif() | |
253 | ||
254 | vcpkg_configure_cmake( | |
255 | PREFER_NINJA | |
256 | SOURCE_PATH ${SOURCE_PATH} | |
257 | OPTIONS | |
258 | ###### opencv cpu recognition is broken, always using host and not target: here we bypass that | |
259 | -DOPENCV_SKIP_SYSTEM_PROCESSOR_DETECTION=TRUE | |
260 | -DAARCH64=${TARGET_IS_AARCH64} | |
261 | -DX86_64=${TARGET_IS_X86_64} | |
262 | -DX86=${TARGET_IS_X86} | |
263 | -DARM=${TARGET_IS_ARM} | |
264 | ###### ocv_options | |
265 | -DOpenCV_INSTALL_BINARIES_PREFIX= | |
266 | -DOPENCV_BIN_INSTALL_PATH=bin | |
267 | -DOPENCV_INCLUDE_INSTALL_PATH=include | |
268 | -DOPENCV_LIB_INSTALL_PATH=lib | |
269 | -DOPENCV_3P_LIB_INSTALL_PATH=lib | |
270 | -DOPENCV_CONFIG_INSTALL_PATH=share/opencv | |
271 | -DINSTALL_TO_MANGLED_PATHS=OFF | |
272 | -DOPENCV_FFMPEG_USE_FIND_PACKAGE=FFMPEG | |
273 | -DOPENCV_FFMPEG_SKIP_BUILD_CHECK=TRUE | |
274 | -DCMAKE_DEBUG_POSTFIX=d | |
275 | -DOPENCV_DLLVERSION= | |
276 | -DOPENCV_DEBUG_POSTFIX=d | |
277 | -DOPENCV_GENERATE_SETUPVARS=OFF | |
278 | # Do not build docs/examples | |
279 | -DBUILD_DOCS=OFF | |
280 | -DBUILD_EXAMPLES=OFF | |
281 | ###### Disable build 3rd party libs | |
282 | -DBUILD_JASPER=OFF | |
283 | -DBUILD_JPEG=OFF | |
284 | -DBUILD_OPENEXR=OFF | |
285 | -DBUILD_PNG=OFF | |
286 | -DBUILD_TIFF=OFF | |
287 | -DBUILD_WEBP=OFF | |
288 | -DBUILD_ZLIB=OFF | |
289 | -DBUILD_TBB=OFF | |
290 | -DBUILD_IPP_IW=OFF | |
291 | -DBUILD_ITT=OFF | |
292 | ###### Disable build 3rd party components | |
293 | -DBUILD_PROTOBUF=OFF | |
294 | ###### OpenCV Build components | |
295 | -DBUILD_opencv_apps=OFF | |
296 | -DBUILD_opencv_bgsegm=${BUILD_opencv_bgsegm} | |
297 | -DBUILD_opencv_line_descriptor=${BUILD_opencv_line_descriptor} | |
298 | -DBUILD_opencv_saliency=${BUILD_opencv_saliency} | |
299 | -DBUILD_ANDROID_PROJECT=OFF | |
300 | -DBUILD_ANDROID_EXAMPLES=OFF | |
301 | -DBUILD_PACKAGE=OFF | |
302 | -DBUILD_PERF_TESTS=OFF | |
303 | -DBUILD_TESTS=OFF | |
304 | -DBUILD_WITH_DEBUG_INFO=ON | |
305 | -DBUILD_WITH_STATIC_CRT=${BUILD_WITH_STATIC_CRT} | |
306 | -DBUILD_JAVA=OFF | |
307 | -DCURRENT_INSTALLED_DIR=${CURRENT_INSTALLED_DIR} | |
308 | ###### PROTOBUF | |
309 | -DPROTOBUF_UPDATE_FILES=${BUILD_opencv_flann} | |
310 | -DUPDATE_PROTO_FILES=${BUILD_opencv_flann} | |
311 | ###### PYLINT/FLAKE8 | |
312 | -DENABLE_PYLINT=OFF | |
313 | -DENABLE_FLAKE8=OFF | |
314 | # CMAKE | |
315 | -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON | |
316 | -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON | |
317 | # ENABLE | |
318 | -DENABLE_CXX11=ON | |
319 | ###### OPENCV vars | |
320 | "-DOPENCV_DOWNLOAD_PATH=${DOWNLOADS}/opencv-cache" | |
321 | ${BUILD_WITH_CONTRIB_FLAG} | |
322 | -DOPENCV_OTHER_INSTALL_PATH=share/opencv | |
323 | ###### customized properties | |
324 | ## Options from vcpkg_check_features() | |
325 | ${FEATURE_OPTIONS} | |
326 | -DCMAKE_DISABLE_FIND_PACKAGE_Halide=ON | |
327 | -DHALIDE_ROOT_DIR=${CURRENT_INSTALLED_DIR} | |
328 | -DWITH_GTK=OFF | |
329 | -DWITH_IPP=${WITH_IPP} | |
330 | -DWITH_MATLAB=OFF | |
331 | -DWITH_MSMF=${WITH_MSMF} | |
332 | -DWITH_OPENMP=OFF | |
333 | -DWITH_PROTOBUF=${BUILD_opencv_flann} | |
334 | -DWITH_OPENCLAMDBLAS=OFF | |
335 | -DWITH_TBB=${WITH_TBB} | |
336 | -DWITH_OPENJPEG=OFF | |
337 | ###### BUILD_options (mainly modules which require additional libraries) | |
338 | -DBUILD_opencv_ovis=${BUILD_opencv_ovis} | |
339 | -DBUILD_opencv_dnn=${BUILD_opencv_dnn} | |
340 | ###### The following modules are disabled for UWP | |
341 | -DBUILD_opencv_quality=${BUILD_opencv_quality} | |
342 | ###### Additional build flags | |
343 | ${ADDITIONAL_BUILD_FLAGS} | |
344 | ) | |
345 | ||
346 | vcpkg_install_cmake() | |
347 | vcpkg_fixup_cmake_targets(CONFIG_PATH "share/opencv" TARGET_PATH "share/opencv") | |
348 | vcpkg_copy_pdbs() | |
349 | ||
350 | if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") | |
351 | file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake OPENCV_MODULES) | |
352 | set(DEPS_STRING "include(CMakeFindDependencyMacro) | |
353 | find_dependency(protobuf CONFIG) | |
354 | if(protobuf_FOUND) | |
355 | if(TARGET protobuf::libprotobuf) | |
356 | add_library (libprotobuf INTERFACE IMPORTED) | |
357 | set_target_properties(libprotobuf PROPERTIES | |
358 | INTERFACE_LINK_LIBRARIES protobuf::libprotobuf | |
359 | ) | |
360 | else() | |
361 | add_library (libprotobuf UNKNOWN IMPORTED) | |
362 | set_target_properties(libprotobuf PROPERTIES | |
363 | IMPORTED_LOCATION \"${Protobuf_LIBRARY}\" | |
364 | INTERFACE_INCLUDE_DIRECTORIES \"${Protobuf_INCLUDE_DIR}\" | |
365 | INTERFACE_SYSTEM_INCLUDE_DIRECTORIES \"${Protobuf_INCLUDE_DIR}\" | |
366 | ) | |
367 | endif() | |
368 | endif() | |
369 | find_dependency(Threads)") | |
370 | if("tiff" IN_LIST FEATURES) | |
371 | string(APPEND DEPS_STRING "\nfind_dependency(TIFF)") | |
372 | endif() | |
373 | if("cuda" IN_LIST FEATURES) | |
374 | string(APPEND DEPS_STRING "\nfind_dependency(CUDA)") | |
375 | endif() | |
376 | if(BUILD_opencv_quality) | |
377 | string(APPEND DEPS_STRING " | |
378 | # C language is required for try_compile tests in FindHDF5 | |
379 | enable_language(C) | |
380 | find_dependency(HDF5) | |
381 | find_dependency(Tesseract)") | |
382 | endif() | |
383 | if(WITH_TBB) | |
384 | string(APPEND DEPS_STRING "\nfind_dependency(TBB)") | |
385 | endif() | |
386 | if("vtk" IN_LIST FEATURES) | |
387 | string(APPEND DEPS_STRING "\nfind_dependency(VTK)") | |
388 | endif() | |
389 | if("sfm" IN_LIST FEATURES) | |
390 | string(APPEND DEPS_STRING "\nfind_dependency(gflags CONFIG)\nfind_dependency(Ceres CONFIG)") | |
391 | endif() | |
392 | if("eigen" IN_LIST FEATURES) | |
393 | string(APPEND DEPS_STRING "\nfind_dependency(Eigen3 CONFIG)") | |
394 | endif() | |
395 | if("lapack" IN_LIST FEATURES) | |
396 | string(APPEND DEPS_STRING "\nfind_dependency(LAPACK)") | |
397 | endif() | |
398 | if("openexr" IN_LIST FEATURES) | |
399 | string(APPEND DEPS_STRING "\nfind_dependency(OpenEXR CONFIG)") | |
400 | endif() | |
401 | if(WITH_OPENMP) | |
402 | string(APPEND DEPS_STRING "\nfind_dependency(OpenMP)") | |
403 | endif() | |
404 | if(BUILD_opencv_ovis) | |
405 | string(APPEND DEPS_STRING "\nfind_dependency(Ogre)\nfind_dependency(Freetype)") | |
406 | endif() | |
407 | if("quirc" IN_LIST FEATURES) | |
408 | string(APPEND DEPS_STRING "\nfind_dependency(quirc)") | |
409 | endif() | |
410 | if("qt" IN_LIST FEATURES) | |
411 | string(APPEND DEPS_STRING " | |
412 | set(CMAKE_AUTOMOC ON) | |
413 | set(CMAKE_AUTORCC ON) | |
414 | set(CMAKE_AUTOUIC ON) | |
415 | find_dependency(Qt5 COMPONENTS OpenGL Concurrent Test)") | |
416 | endif() | |
417 | if("ade" IN_LIST FEATURES) | |
418 | string(APPEND DEPS_STRING "\nfind_dependency(ade)") | |
419 | endif() | |
420 | if("gdcm" IN_LIST FEATURES) | |
421 | string(APPEND DEPS_STRING "\nfind_dependency(GDCM)") | |
422 | endif() | |
423 | ||
424 | string(REPLACE "set(CMAKE_IMPORT_FILE_VERSION 1)" | |
425 | "set(CMAKE_IMPORT_FILE_VERSION 1)\n${DEPS_STRING}" OPENCV_MODULES "${OPENCV_MODULES}") | |
426 | ||
427 | if(WITH_OPENMP) | |
428 | string(REPLACE "set_target_properties(opencv_core PROPERTIES | |
429 | INTERFACE_LINK_LIBRARIES \"" | |
430 | "set_target_properties(opencv_core PROPERTIES | |
431 | INTERFACE_LINK_LIBRARIES \"\$<LINK_ONLY:OpenMP::OpenMP_CXX>;" OPENCV_MODULES "${OPENCV_MODULES}") | |
432 | endif() | |
433 | ||
434 | if(BUILD_opencv_ovis) | |
435 | string(REPLACE "OgreGLSupportStatic" | |
436 | "OgreGLSupport" OPENCV_MODULES "${OPENCV_MODULES}") | |
437 | endif() | |
438 | ||
439 | file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake "${OPENCV_MODULES}") | |
440 | ||
441 | ||
442 | file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) | |
443 | endif() | |
444 | ||
445 | file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) | |
446 | file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) | |
447 | file(REMOVE ${CURRENT_PACKAGES_DIR}/LICENSE) | |
448 | file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/LICENSE) | |
449 | ||
450 | if(VCPKG_TARGET_IS_ANDROID) | |
451 | file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/README.android) | |
452 | file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/README.android) | |
453 | endif() | |
454 | ||
455 | file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) |