aboutsummaryrefslogtreecommitdiff
path: root/ports/opencv4
diff options
context:
space:
mode:
authorStefano Sinigardi <stesinigardi@hotmail.com>2019-08-12 18:22:30 +0200
committerVictor Romero <romerosanchezv@gmail.com>2019-08-12 09:22:30 -0700
commit4fb51523e91e7a98150e3810241b83757a8d2706 (patch)
treeedcacc3aef4c1559857a110d4d162058abb955a0 /ports/opencv4
parentfffcd0a5ae21d0b7ae0c8cdbd7bd1210f5a29031 (diff)
downloadvcpkg-4fb51523e91e7a98150e3810241b83757a8d2706.tar.gz
vcpkg-4fb51523e91e7a98150e3810241b83757a8d2706.zip
[OpenCV] Update to v4.1.1 (#5169)
* [OpenCV] update to v4 * [OpenCV] update to v4.1 * [OpenCV] merge #6901 and #6812 * [OpenCV] port patches to v4.1 * [OpenCV] fix naming * [OpenCV] fix regression with static linkage * [OpenCV] fix linking to optional feature dependencies in static mode * fix ffmpeg on some architectures * trigger rebuild of regressions on macOS * [zxing-cpp] fix opencv 4.1 compat * [ogre] improve patching for static builds * [OpenCV] fixes for extra features * [OpenCV] drastically reduce patchset * [OpenCV] fix regression on linux * [OpenCV] fix regression on Windows * [qt5] depends on qt5-activeqt only on windows * update to v4.1.1 * [OpenCV] additional fixes for 4.1.1 * [OpenCV] fix Eigen3 feature integration * [opencv] Fix compilation in UWP * [opencv] Fix merge conflicts * [ffmpeg] fix cmake module for osx * [OpenCV] add pre-caching of optflow cuda package * [gdcm] properly fix #6863 instead of wrong #6901 * [OpenCV] fix OpenMP feature * [opencv] Add missing GetModuleHandle() call guard for UWP * [freeimage] Do not depend on libwebp[all] on UWP * [opencv] Set app container bit for UWP * [zxing-cpp] Fail with explicit message in UWP * [pthreads4w] fix target creation, missing dlls * [pthreads4w] bump CONTROL * [opencv,zxing-cpp] Fix OpenCV Video IO module * [zxing-cpp] Revert unnecessary changes * [opencv] Feature halide * Fix regression in UWP * [ffmpeg] remove unnecessary patch pointing to old OpenCV version * [opencv] remove versioning from windows dll filenames * [opencv] Move port to opencv4 * [opencv,opencv4] Make meta-package install OpenCV 4.1 * [opencv3] Rename old port opencv->opencv3 * Add failure messages when another OpenCV is already installed
Diffstat (limited to 'ports/opencv4')
-rw-r--r--ports/opencv4/0001-disable-downloading.patch11
-rw-r--r--ports/opencv4/0002-install-options.patch69
-rw-r--r--ports/opencv4/0003-force-package-requirements.patch128
-rw-r--r--ports/opencv4/0009-fix-uwp.patch57
-rw-r--r--ports/opencv4/CONTROL96
-rw-r--r--ports/opencv4/portfile.cmake378
6 files changed, 739 insertions, 0 deletions
diff --git a/ports/opencv4/0001-disable-downloading.patch b/ports/opencv4/0001-disable-downloading.patch
new file mode 100644
index 000000000..28b00251f
--- /dev/null
+++ b/ports/opencv4/0001-disable-downloading.patch
@@ -0,0 +1,11 @@
+--- a/cmake/OpenCVDownload.cmake
++++ b/cmake/OpenCVDownload.cmake
+@@ -151,6 +151,8 @@ function(ocv_download)
+ # Download
+ if(NOT EXISTS "${CACHE_CANDIDATE}")
+ ocv_download_log("#cmake_download \"${CACHE_CANDIDATE}\" \"${DL_URL}\"")
++ string(REPLACE "${OPENCV_DOWNLOAD_PATH}/" "opencv-cache/" CACHE_SUBPATH "${CACHE_CANDIDATE}")
++ message(FATAL_ERROR " Downloads are not permitted during configure. Please pre-download the file \"${CACHE_CANDIDATE}\":\n \n vcpkg_download_distfile(OCV_DOWNLOAD\n URLS \"${DL_URL}\"\n FILENAME \"${CACHE_SUBPATH}\"\n SHA512 0\n )")
+ file(DOWNLOAD "${DL_URL}" "${CACHE_CANDIDATE}"
+ INACTIVITY_TIMEOUT 60
+ TIMEOUT 600
diff --git a/ports/opencv4/0002-install-options.patch b/ports/opencv4/0002-install-options.patch
new file mode 100644
index 000000000..10aa08c24
--- /dev/null
+++ b/ports/opencv4/0002-install-options.patch
@@ -0,0 +1,69 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8631bbc..e801558 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -647,7 +647,7 @@ endif()
+
+ if(WIN32)
+ # Postfix of DLLs:
+- set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}")
++ set(OPENCV_DLLVERSION "")
+ set(OPENCV_DEBUG_POSTFIX d)
+ else()
+ # Postfix of so's:
+@@ -698,7 +698,7 @@ endif()
+ ocv_cmake_hook(POST_CMAKE_BUILD_OPTIONS)
+
+ # --- Python Support ---
+-if(NOT IOS)
++if(0)
+ include(cmake/OpenCVDetectPython.cmake)
+ endif()
+
+diff --git a/cmake/OpenCVCompilerOptions.cmake b/cmake/OpenCVCompilerOptions.cmake
+index e3ae62f..d866162 100644
+--- a/cmake/OpenCVCompilerOptions.cmake
++++ b/cmake/OpenCVCompilerOptions.cmake
+@@ -256,7 +256,6 @@ if(MSVC)
+ #endif()
+
+ if(BUILD_WITH_DEBUG_INFO)
+- set(OPENCV_EXTRA_FLAGS_RELEASE "${OPENCV_EXTRA_FLAGS_RELEASE} /Zi")
+ set(OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE "${OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE} /debug")
+ set(OPENCV_EXTRA_SHARED_LINKER_FLAGS_RELEASE "${OPENCV_EXTRA_SHARED_LINKER_FLAGS_RELEASE} /debug")
+ endif()
+diff --git a/cmake/OpenCVGenConfig.cmake b/cmake/OpenCVGenConfig.cmake
+index cef9d0b..b6ddb81 100644
+--- a/cmake/OpenCVGenConfig.cmake
++++ b/cmake/OpenCVGenConfig.cmake
+@@ -109,7 +109,7 @@ function(ocv_gen_config TMP_DIR NESTED_PATH ROOT_NAME)
+ endif()
+ endfunction()
+
+-if((CMAKE_HOST_SYSTEM_NAME MATCHES "Linux" OR UNIX) AND NOT ANDROID)
++if(NOT ANDROID)
+ ocv_gen_config("${CMAKE_BINARY_DIR}/unix-install" "" "")
+ endif()
+
+@@ -121,7 +121,7 @@ endif()
+ # --------------------------------------------------------------------------------------------
+ # Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake -> For use within binary installers/packages
+ # --------------------------------------------------------------------------------------------
+-if(WIN32)
++if(0)
+ if(CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
+ if(BUILD_SHARED_LIBS)
+ set(_lib_suffix "lib")
+diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
+index 1f0d720..0bb1ff7 100644
+--- a/data/CMakeLists.txt
++++ b/data/CMakeLists.txt
+@@ -1,8 +1,6 @@
+ file(GLOB HAAR_CASCADES haarcascades/*.xml)
+ file(GLOB LBP_CASCADES lbpcascades/*.xml)
+
+-install(FILES ${HAAR_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/haarcascades COMPONENT libs)
+-install(FILES ${LBP_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/lbpcascades COMPONENT libs)
+
+ if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH)
+ install(DIRECTORY "${OPENCV_TEST_DATA_PATH}/" DESTINATION "${OPENCV_TEST_DATA_INSTALL_PATH}" COMPONENT "tests")
diff --git a/ports/opencv4/0003-force-package-requirements.patch b/ports/opencv4/0003-force-package-requirements.patch
new file mode 100644
index 000000000..b6051f849
--- /dev/null
+++ b/ports/opencv4/0003-force-package-requirements.patch
@@ -0,0 +1,128 @@
+diff --git a/cmake/OpenCVFindLibsGrfmt.cmake b/cmake/OpenCVFindLibsGrfmt.cmake
+index 227cfb2..7a97a19 100644
+--- a/cmake/OpenCVFindLibsGrfmt.cmake
++++ b/cmake/OpenCVFindLibsGrfmt.cmake
+@@ -6,7 +6,7 @@
+ if(BUILD_ZLIB)
+ ocv_clear_vars(ZLIB_FOUND)
+ else()
+- find_package(ZLIB "${MIN_VER_ZLIB}")
++ find_package(ZLIB "${MIN_VER_ZLIB}" REQUIRED)
+ if(ZLIB_FOUND AND ANDROID)
+ if(ZLIB_LIBRARIES MATCHES "/usr/(lib|lib32|lib64)/libz.so$")
+ set(ZLIB_LIBRARIES z)
+@@ -30,7 +30,7 @@ if(WITH_JPEG)
+ if(BUILD_JPEG)
+ ocv_clear_vars(JPEG_FOUND)
+ else()
+- include(FindJPEG)
++ find_package(JPEG REQUIRED)
+ endif()
+
+ if(NOT JPEG_FOUND)
+@@ -74,7 +74,7 @@ if(WITH_TIFF)
+ if(BUILD_TIFF)
+ ocv_clear_vars(TIFF_FOUND)
+ else()
+- include(FindTIFF)
++ find_package(TIFF REQUIRED)
+ if(TIFF_FOUND)
+ ocv_parse_header("${TIFF_INCLUDE_DIR}/tiff.h" TIFF_VERSION_LINES TIFF_VERSION_CLASSIC TIFF_VERSION_BIG TIFF_VERSION TIFF_BIGTIFF_VERSION)
+ endif()
+@@ -117,7 +117,7 @@ if(WITH_WEBP)
+ if(BUILD_WEBP)
+ ocv_clear_vars(WEBP_FOUND WEBP_LIBRARY WEBP_LIBRARIES WEBP_INCLUDE_DIR)
+ else()
+- include(cmake/OpenCVFindWebP.cmake)
++ find_package(WebP REQUIRED)
+ if(WEBP_FOUND)
+ set(HAVE_WEBP 1)
+ endif()
+@@ -158,7 +158,7 @@ if(WITH_JASPER)
+ if(BUILD_JASPER)
+ ocv_clear_vars(JASPER_FOUND)
+ else()
+- include(FindJasper)
++ find_package(Jasper REQUIRED)
+ endif()
+
+ if(NOT JASPER_FOUND)
+@@ -182,7 +182,7 @@ if(WITH_PNG)
+ if(BUILD_PNG)
+ ocv_clear_vars(PNG_FOUND)
+ else()
+- include(FindPNG)
++ find_package(PNG REQUIRED)
+ if(PNG_FOUND)
+ include(CheckIncludeFile)
+ check_include_file("${PNG_PNG_INCLUDE_DIR}/libpng/png.h" HAVE_LIBPNG_PNG_H)
+@@ -213,7 +213,7 @@ endif()
+ if(WITH_OPENEXR)
+ ocv_clear_vars(HAVE_OPENEXR)
+ if(NOT BUILD_OPENEXR)
+- include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenEXR.cmake")
++ find_package(OpenEXR REQUIRED)
+ endif()
+
+ if(OPENEXR_FOUND)
+@@ -231,7 +231,7 @@ endif()
+
+ # --- GDAL (optional) ---
+ if(WITH_GDAL)
+- find_package(GDAL QUIET)
++ find_package(GDAL REQUIRED)
+
+ if(NOT GDAL_FOUND)
+ set(HAVE_GDAL NO)
+@@ -243,7 +243,7 @@ if(WITH_GDAL)
+ endif()
+
+ if (WITH_GDCM)
+- find_package(GDCM QUIET)
++ find_package(GDCM REQUIRED)
+ if(NOT GDCM_FOUND)
+ set(HAVE_GDCM NO)
+ ocv_clear_vars(GDCM_VERSION GDCM_LIBRARIES)
+@@ -273,4 +273,4 @@ if(WITH_IMGCODEC_PFM)
+ set(HAVE_IMGCODEC_PFM ON)
+ elseif(DEFINED WITH_IMGCODEC_PFM)
+ set(HAVE_IMGCODEC_PFM OFF)
+-endif()
+\ No newline at end of file
++endif()
+diff --git a/cmake/OpenCVFindLibsPerf.cmake b/cmake/OpenCVFindLibsPerf.cmake
+index a658bf6..5c9411a 100644
+--- a/cmake/OpenCVFindLibsPerf.cmake
++++ b/cmake/OpenCVFindLibsPerf.cmake
+@@ -41,14 +41,9 @@ endif(WITH_CUDA)
+
+ # --- Eigen ---
+ if(WITH_EIGEN AND NOT HAVE_EIGEN)
+- find_package(Eigen3 QUIET)
++ find_package(Eigen3 REQUIRED)
+
+ if(Eigen3_FOUND)
+- if(TARGET Eigen3::Eigen)
+- # Use Eigen3 imported target if possible
+- list(APPEND OPENCV_LINKER_LIBS Eigen3::Eigen)
+- set(HAVE_EIGEN 1)
+- else()
+ if(DEFINED EIGEN3_INCLUDE_DIRS)
+ set(EIGEN_INCLUDE_PATH ${EIGEN3_INCLUDE_DIRS})
+ set(HAVE_EIGEN 1)
+@@ -56,7 +51,6 @@ if(WITH_EIGEN AND NOT HAVE_EIGEN)
+ set(EIGEN_INCLUDE_PATH ${EIGEN3_INCLUDE_DIR})
+ set(HAVE_EIGEN 1)
+ endif()
+- endif()
+ if(HAVE_EIGEN)
+ if(DEFINED EIGEN3_WORLD_VERSION) # CMake module
+ set(EIGEN_WORLD_VERSION ${EIGEN3_WORLD_VERSION})
+@@ -67,6 +61,7 @@ if(WITH_EIGEN AND NOT HAVE_EIGEN)
+ set(EIGEN_MAJOR_VERSION ${EIGEN3_VERSION_MINOR})
+ set(EIGEN_MINOR_VERSION ${EIGEN3_VERSION_PATCH})
+ endif()
++ ocv_include_directories(${EIGEN_INCLUDE_PATH})
+ endif()
+ endif()
+
diff --git a/ports/opencv4/0009-fix-uwp.patch b/ports/opencv4/0009-fix-uwp.patch
new file mode 100644
index 000000000..5c54256a5
--- /dev/null
+++ b/ports/opencv4/0009-fix-uwp.patch
@@ -0,0 +1,57 @@
+diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake
+index 799592b..3f44173 100644
+--- a/cmake/OpenCVModule.cmake
++++ b/cmake/OpenCVModule.cmake
+@@ -852,7 +852,7 @@ macro(ocv_create_module)
+ set(the_module_target ${the_module})
+ endif()
+
+- if(WINRT)
++ if(WINRT AND BUILD_TESTS)
+ # removing APPCONTAINER from modules to run from console
+ # in case of usual starting of WinRT test apps output is missing
+ # so starting of console version w/o APPCONTAINER is required to get test results
+@@ -1175,7 +1175,7 @@ function(ocv_add_perf_tests)
+ set_target_properties(${the_target} PROPERTIES FOLDER "tests performance")
+ endif()
+
+- if(WINRT)
++ if(WINRT AND BUILD_TESTS)
+ # removing APPCONTAINER from tests to run from console
+ # look for detailed description inside of ocv_create_module macro above
+ add_custom_command(TARGET "opencv_perf_${name}"
+diff --git a/modules/core/src/utils/datafile.cpp b/modules/core/src/utils/datafile.cpp
+index aafbfdf..10543ae 100644
+--- a/modules/core/src/utils/datafile.cpp
++++ b/modules/core/src/utils/datafile.cpp
+@@ -108,7 +108,7 @@ static cv::String getModuleLocation(const void* addr)
+ CV_UNUSED(addr);
+ #ifdef _WIN32
+ HMODULE m = 0;
+-#if _WIN32_WINNT >= 0x0501
++#if _WIN32_WINNT >= 0x0501 && (!defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP))
+ ::GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
+ reinterpret_cast<LPCTSTR>(addr),
+ &m);
+@@ -155,7 +155,7 @@ bool getBinLocation(std::wstring& dst)
+ {
+ void* addr = (void*)getModuleLocation; // using code address, doesn't work with static linkage!
+ HMODULE m = 0;
+-#if _WIN32_WINNT >= 0x0501
++#if _WIN32_WINNT >= 0x0501 && (!defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP))
+ ::GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
+ reinterpret_cast<LPCTSTR>(addr),
+ &m);
+diff --git a/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp b/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp
+index 236e227..eccf97e 100644
+--- a/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp
++++ b/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp
+@@ -94,7 +94,7 @@ Media::CaptureFrameGrabber::~CaptureFrameGrabber()
+
+ void Media::CaptureFrameGrabber::ShowCameraSettings()
+ {
+-#if WINAPI_FAMILY!=WINAPI_FAMILY_PHONE_APP
++#if (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) && (WINAPI_FAMILY != WINAPI_FAMILY_PC_APP)
+ if (_state == State::Started)
+ {
+ CameraOptionsUI::Show(_capture.Get());
diff --git a/ports/opencv4/CONTROL b/ports/opencv4/CONTROL
new file mode 100644
index 000000000..29d6ec9ce
--- /dev/null
+++ b/ports/opencv4/CONTROL
@@ -0,0 +1,96 @@
+Source: opencv4
+Version: 4.1.1
+Build-Depends: protobuf, zlib
+Description: computer vision library
+Default-Features: dnn, jpeg, opengl, png, tiff, webp
+
+Feature: nonfree
+Description: opencv nonfree module
+
+Feature: ade
+Build-Depends: ade
+Description: graph api
+
+Feature: contrib
+Build-Depends: hdf5 (!uwp)
+Description: opencv_contrib module
+
+Feature: cuda
+Build-Depends: opencv4[contrib], cuda
+Description: CUDA support for opencv
+
+Feature: dnn
+Description: Enable dnn module
+
+Feature: eigen
+Build-Depends: eigen3
+Description: Eigen support for opencv
+
+Feature: ffmpeg
+Build-Depends: ffmpeg
+Description: ffmpeg support for opencv
+
+Feature: gdcm
+Build-Depends: gdcm
+Description: GDCM support for opencv
+
+Feature: ipp
+Description: Enable Intel Integrated Performance Primitives
+
+Feature: jasper
+Build-Depends: jasper
+Description: JPEG 2000 support for opencv
+
+Feature: jpeg
+Build-Depends: libjpeg-turbo
+Description: JPEG support for opencv
+
+Feature: openexr
+Build-Depends: openexr
+Description: OpenEXR support for opencv
+
+Feature: opengl
+Build-Depends: opengl
+Description: opengl support for opencv
+
+Feature: openmp
+Description: Enable openmp support for opencv
+
+Feature: ovis
+Build-Depends: opencv4[contrib], ogre
+Description: opencv_ovis module
+
+Feature: png
+Build-Depends: libpng
+Description: PNG support for opencv
+
+Feature: qt
+Build-Depends: qt5
+Description: Qt GUI support for opencv
+
+Feature: sfm
+Build-Depends: opencv4[contrib], eigen3, glog, gflags, ceres
+Description: opencv_sfm module
+
+Feature: tbb
+Build-Depends: tbb
+Description: Enable Intel Threading Building Blocks
+
+Feature: tiff
+Build-Depends: tiff
+Description: TIFF support for opencv
+
+Feature: vtk
+Build-Depends: vtk
+Description: vtk support for opencv
+
+Feature: webp
+Build-Depends: libwebp
+Description: WebP support for opencv
+
+Feature: halide
+Build-Depends: halide, opencv4[dnn]
+Description: Halide support for opencv
+
+Feature: world
+Description: Compile to a single package support for opencv
diff --git a/ports/opencv4/portfile.cmake b/ports/opencv4/portfile.cmake
new file mode 100644
index 000000000..a1faafc71
--- /dev/null
+++ b/ports/opencv4/portfile.cmake
@@ -0,0 +1,378 @@
+if (EXISTS "${CURRENT_INSTALLED_DIR}/share/opencv3")
+ message(FATAL_ERROR "OpenCV 3 is installed, please uninstall and try again:\n vcpkg remove opencv3")
+endif()
+
+include(vcpkg_common_functions)
+
+set(OPENCV_VERSION "4.1.1")
+
+if(VCPKG_TARGET_IS_LINUX)
+ message("OpenCV currently requires the following library from the system package manager:\n libgtk3\n\nThis can be installed on Ubuntu systems via apt-get install libgtk-3-dev")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO opencv/opencv
+ REF ${OPENCV_VERSION}
+ SHA512 80fa48d992ca06a2a4ab6740df6d8c21f4926165486b393969da2c5bbe2f3a0b799fb76dee5e3654e90c743e49bbd2b5b02ad59a4766896bbf4cd5b4e3251e0f
+ HEAD_REF master
+ PATCHES
+ 0001-disable-downloading.patch
+ 0002-install-options.patch
+ 0003-force-package-requirements.patch
+ 0009-fix-uwp.patch
+)
+
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_WITH_STATIC_CRT)
+
+set(ADE_DIR ${CURRENT_INSTALLED_DIR}/share/ade CACHE PATH "Path to existing ADE CMake Config file")
+
+vcpkg_check_features(
+ "ade" WITH_ADE
+ "contrib" WITH_CONTRIB
+ "cuda" WITH_CUDA
+ "dnn" BUILD_opencv_dnn
+ "eigen" WITH_EIGEN
+ "ffmpeg" WITH_FFMPEG
+ "gdcm" WITH_GDCM
+ "halide" WITH_HALIDE
+ "ipp" WITH_IPP
+ "jasper" WITH_JASPER
+ "jpeg" WITH_JPEG
+ "nonfree" OPENCV_ENABLE_NONFREE
+ "openexr" WITH_OPENEXR
+ "opengl" WITH_OPENGL
+ "openmp" WITH_OPENMP
+ "ovis" BUILD_opencv_ovis
+ "png" WITH_PNG
+ "qt" WITH_QT
+ "sfm" BUILD_opencv_sfm
+ "tbb" WITH_TBB
+ "tiff" WITH_TIFF
+ "vtk" WITH_VTK
+ "webp" WITH_WEBP
+ "world" BUILD_opencv_world
+)
+
+if(WITH_CUDA)
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://github.com/NVIDIA/NVIDIAOpticalFlowSDK/archive/79c6cee80a2df9a196f20afd6b598a9810964c32.zip"
+ FILENAME "opencv-cache/nvidia_optical_flow/ca5acedee6cb45d0ec610a6732de5c15-79c6cee80a2df9a196f20afd6b598a9810964c32.zip"
+ SHA512 d80cdedec588dafaad4ebb8615349f842ecdc64d3ca9480fee7086d606e6f2362606a9a2ce273c5cf507be2840ec24bbcbe32c2962672c3bcfb72d31428ef73d
+ )
+endif()
+
+# Build image quality module when building with 'contrib' feature and not UWP.
+set(BUILD_opencv_quality OFF)
+if(WITH_CONTRIB)
+ if (VCPKG_TARGET_IS_UWP)
+ set(BUILD_opencv_quality OFF)
+ message(WARNING "The image quality module (quality) does not build for UWP, the module has been disabled.")
+ # The hdf module is silently disabled by OpenCVs buildsystem if HDF5 is not detected.
+ message(WARNING "The hierarchical data format module (hdf) depends on HDF5 which doesn't support UWP, the module has been disabled.")
+ else()
+ set(BUILD_opencv_quality CMAKE_DEPENDS_IN_PROJECT_ONLY)
+ endif()
+
+ vcpkg_from_github(
+ OUT_SOURCE_PATH CONTRIB_SOURCE_PATH
+ REPO opencv/opencv_contrib
+ REF ${OPENCV_VERSION}
+ SHA512 8af13f0a5f350360316662c1ce5e58c21d906a58591acfbd575a8dacde19b6f3bbd694c3c199feb35c33549cf8c37e3fb4c494b586a00ad29fe3b4aeeb2d22ab
+ HEAD_REF master
+ )
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm.i"
+ FILENAME "opencv-cache/xfeatures2d/boostdesc/0ea90e7a8f3f7876d450e4149c97c74f-boostdesc_bgm.i"
+ SHA512 5c8702a60314fac4ebb6dafb62a603948ec034058d1a582fcb89a063b51511802c02e192eadfc0b233b1f711f4c74cabab6d9ebe8a50c3554ea0ccdbef87dc5c
+ )
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm_bi.i"
+ FILENAME "opencv-cache/xfeatures2d/boostdesc/232c966b13651bd0e46a1497b0852191-boostdesc_bgm_bi.i"
+ SHA512 b28ba2b615e0755ff0f6733b567682800fb9e7d522250aa498075cc1b8927f4177cacdcb0cfdf712539a29c4773232dc714931b6d292292b091b5cf170b203a6
+ )
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm_hd.i"
+ FILENAME "opencv-cache/xfeatures2d/boostdesc/324426a24fa56ad9c5b8e3e0b3e5303e-boostdesc_bgm_hd.i"
+ SHA512 c214045c3730a1d9dfc594f70895edf82d2fd3058a3928908627014371e02460d052cbaedf41bb96cf76460c0a8b4b01b7b0ac7d269ec5d3f17f2a46c9f0091b
+ )
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_064.i"
+ FILENAME "opencv-cache/xfeatures2d/boostdesc/202e1b3e9fec871b04da31f7f016679f-boostdesc_binboost_064.i"
+ SHA512 f32240a7b975233d2bbad02fdb74c6e29ed71ed6f0c08172ca33eb1e69a7a7f6d6964adf41422213a0452121a9c4bb2effe3d7b9d6743c9bf58d4bc8c9b1db36
+ )
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_128.i"
+ FILENAME "opencv-cache/xfeatures2d/boostdesc/98ea99d399965c03d555cef3ea502a0b-boostdesc_binboost_128.i"
+ SHA512 f58e2bebfaa690d324691a6c2067d9a1e5267037ea0f2b397966289253b9efd27d8238aff6206e95262086e1fcddf01ae1a1c49f066a8bbac3aa7908214b9a8f
+ )
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_256.i"
+ FILENAME "opencv-cache/xfeatures2d/boostdesc/e6dcfa9f647779eb1ce446a8d759b6ea-boostdesc_binboost_256.i"
+ SHA512 351ee07b9714a379c311f293d96e99f001c894393c911a421b4c536345d43c02ba2d867e9f657eac104841563045ab8c8edab878e5ffeb1e1a7494375ef58987
+ )
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_lbgm.i"
+ FILENAME "opencv-cache/xfeatures2d/boostdesc/0ae0675534aa318d9668f2a179c2a052-boostdesc_lbgm.i"
+ SHA512 7fa12e2207ff154acf2433bbb4f3f47aa71d1fa8789493b688d635d20586b7ead30ee8dcd3b3753992ebbe98062cbde44d02683db1c563d52e35aefd7912a4f2
+ )
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_48.i"
+ FILENAME "opencv-cache/xfeatures2d/vgg/e8d0dcd54d1bcfdc29203d011a797179-vgg_generated_48.i"
+ SHA512 2403e9119738261a05a3116ca7e5c9e11da452c422f8670cd96ad2cb5bf970f76172e23b9913a3172adf06f2b31bee956f605b66dbccf3d706c4334aff713774
+ )
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_64.i"
+ FILENAME "opencv-cache/xfeatures2d/vgg/7126a5d9a8884ebca5aea5d63d677225-vgg_generated_64.i"
+ SHA512 2c954223677905f489b01988389ac80a8caa33bdb57adb3cb9409075012b5e2f472f14966d8be75d75c90c9330f66d59c69539dc6b5a5e265a4d98ff5041f0ea
+ )
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_80.i"
+ FILENAME "opencv-cache/xfeatures2d/vgg/7cd47228edec52b6d82f46511af325c5-vgg_generated_80.i"
+ SHA512 9931ad1d1bd6d11951ca5357ab0a524f6ff9b33f936ceeafebc0dafb379ec7e2105e467443e9f424f60a0f2f445bdff821ed9e42330abed883227183ebad4a9e
+ )
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_120.i"
+ FILENAME "opencv-cache/xfeatures2d/vgg/151805e03568c9f490a5e3a872777b75-vgg_generated_120.i"
+ SHA512 ad7c1d2b159ab5790c898815663bb90549f1cf7ade3c82d939d381608b26d26c5b2af01eb1ba21f4d114ced74586ab3fc83f14e2d8cfe4e6faac538aa0e7e255
+ )
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat"
+ FILENAME "opencv-cache/data/7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat"
+ SHA512 c16e60a6c4bb4de3ab39b876ae3c3f320ea56f69c93e9303bd2dff8760841dcd71be4161fff8bc71e8fe4fe8747fa8465d49d6bd8f5ebcdaea161f4bc2da7c93
+ )
+ set(BUILD_WITH_CONTRIB_FLAG "-DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules")
+endif()
+
+if(BUILD_opencv_dnn)
+ vcpkg_download_distfile(TINYDNN_ARCHIVE
+ URLS "https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz"
+ FILENAME "opencv-cache/tiny_dnn/adb1c512e09ca2c7a6faef36f9c53e59-v1.0.0a3.tar.gz"
+ SHA512 5f2c1a161771efa67e85b1fea395953b7744e29f61187ac5a6c54c912fb195b3aef9a5827135c3668bd0eeea5ae04a33cc433e1f6683e2b7955010a2632d168b
+ )
+endif()
+
+if(WITH_IPP)
+ if(VCPKG_TARGET_IS_OSX)
+ if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_mac_intel64_general_20180723.tgz"
+ FILENAME "opencv-cache/ippicv/fe6b2bb75ae0e3f19ad3ae1a31dfa4a2-ippicv_2019_mac_intel64_general_20180723.tgz"
+ SHA512 266fe3fecf8e95e1f51c09b65330a577743ef72b423b935d4d1fe8d87f1b4f258c282fe6a18fc805d489592f137ebed37c9f1d1b34026590d9f1ba107015132e
+ )
+ else()
+ message(WARNING "This target architecture is not supported IPPICV")
+ set(WITH_IPP OFF)
+ endif()
+ elseif(VCPKG_TARGET_IS_LINUX)
+ if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_lnx_intel64_general_20180723.tgz"
+ FILENAME "opencv-cache/ippicv/c0bd78adb4156bbf552c1dfe90599607-ippicv_2019_lnx_intel64_general_20180723.tgz"
+ SHA512 e4ec6b3b9fc03d7b3ae777c2a26f57913e83329fd2f7be26c259b07477ca2a641050b86979e0c96e25aa4c1f9f251b28727690358a77418e76dd910d0f4845c9
+ )
+ elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_lnx_ia32_general_20180723.tgz"
+ FILENAME "opencv-cache/ippicv/4f38432c30bfd6423164b7a24bbc98a0-ippicv_2019_lnx_ia32_general_20180723.tgz"
+ SHA512 d96d3989928ff11a18e631bf5ecfdedf88fd350162a23fa2c8f7dbc3bf878bf442aff7fb2a07dc56671d7268cc20682055891be75b9834e9694d20173e92b6a3
+ )
+ else()
+ message(WARNING "This target architecture is not supported IPPICV")
+ set(WITH_IPP OFF)
+ endif()
+ elseif(VCPKG_TARGET_IS_WINDOWS)
+ if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_win_intel64_20180723_general.zip"
+ FILENAME "opencv-cache/ippicv/1d222685246896fe089f88b8858e4b2f-ippicv_2019_win_intel64_20180723_general.zip"
+ SHA512 b6c4f2696e2004b8f5471efd9bdc6c684b77830e0533d8880310c0b665b450d6f78e10744c937f5592ab900e187c475e46cb49e98701bb4bcbbc7da77723011d
+ )
+ elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ vcpkg_download_distfile(OCV_DOWNLOAD
+ URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_win_ia32_20180723_general.zip"
+ FILENAME "opencv-cache/ippicv/0157251a2eb9cd63a3ebc7eed0f3e59e-ippicv_2019_win_ia32_20180723_general.zip"
+ SHA512 c33fd4019c71b064b153e1b25e0307f9c7ada693af8ec910410edeab471c6f14df9b11bf9f5302ceb0fcd4282f5c0b6c92fb5df0e83eb50ed630c45820d1e184
+ )
+ else()
+ message(WARNING "This target architecture is not supported IPPICV")
+ set(WITH_IPP OFF)
+ endif()
+ else()
+ message(WARNING "This target architecture is not supported IPPICV")
+ set(WITH_IPP OFF)
+ endif()
+endif()
+
+set(WITH_MSMF ON)
+if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP)
+ set(WITH_MSMF OFF)
+endif()
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ if (WITH_TBB)
+ message(WARNING "TBB is currently unsupported in this build configuration, turning it off")
+ set(WITH_TBB OFF)
+ endif()
+
+ if (WITH_VTK)
+ message(WARNING "VTK is currently unsupported in this build configuration, turning it off")
+ set(WITH_VTK OFF)
+ endif()
+
+ if (VCPKG_TARGET_IS_WINDOWS AND BUILD_opencv_ovis)
+ message(WARNING "OVIS is currently unsupported in this build configuration, turning it off")
+ set(BUILD_opencv_ovis OFF)
+ endif()
+endif()
+
+vcpkg_configure_cmake(
+ PREFER_NINJA
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ ###### ocv_options
+ -DOpenCV_INSTALL_BINARIES_PREFIX=
+ -DOPENCV_LIB_INSTALL_PATH=lib
+ -DOPENCV_3P_LIB_INSTALL_PATH=lib
+ -DOPENCV_CONFIG_INSTALL_PATH=share/opencv
+ -DOPENCV_FFMPEG_USE_FIND_PACKAGE=FFMPEG
+ -DCMAKE_DEBUG_POSTFIX=d
+ ###### Ungrouped Entries
+ -DOPENCV_ENABLE_NONFREE=${OPENCV_ENABLE_NONFREE}
+ -DBUILD_opencv_java=OFF
+ -Dade_DIR=${ADE_DIR}
+ ###### Disable build 3rd party libs
+ -DBUILD_JASPER=OFF
+ -DBUILD_JPEG=OFF
+ -DBUILD_OPENEXR=OFF
+ -DBUILD_PNG=OFF
+ -DBUILD_TIFF=OFF
+ -DBUILD_WEBP=OFF
+ -DBUILD_ZLIB=OFF
+ -DBUILD_TBB=OFF
+ -DBUILD_IPP_IW=OFF
+ -DBUILD_ITT=OFF
+ ###### Disable build 3rd party components
+ -DBUILD_PROTOBUF=OFF
+ ###### OpenCV Build components
+ -DBUILD_opencv_apps=OFF
+ -DBUILD_opencv_js=OFF
+ -DBUILD_ANDROID_PROJECT=OFF
+ -DBUILD_ANDROID_EXAMPLES=OFF
+ -DBUILD_DOCS=OFF
+ -DBUILD_EXAMPLES=OFF
+ -DBUILD_PACKAGE=OFF
+ -DBUILD_PERF_TESTS=OFF
+ -DBUILD_TESTS=OFF
+ -DBUILD_WITH_DEBUG_INFO=ON
+ -DBUILD_WITH_STATIC_CRT=${BUILD_WITH_STATIC_CRT}
+ -DBUILD_JAVA=OFF
+ -DCURRENT_INSTALLED_DIR=${CURRENT_INSTALLED_DIR}
+ ###### PROTOBUF
+ -DPROTOBUF_UPDATE_FILES=ON
+ -DUPDATE_PROTO_FILES=ON
+ ###### PYLINT/FLAKE8
+ -DENABLE_PYLINT=OFF
+ -DENABLE_FLAKE8=OFF
+ # CMAKE
+ -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
+ # ENABLE
+ -DENABLE_CXX11=ON
+ ###### OPENCV vars
+ "-DOPENCV_DOWNLOAD_PATH=${DOWNLOADS}/opencv-cache"
+ ${BUILD_WITH_CONTRIB_FLAG}
+ -DOPENCV_OTHER_INSTALL_PATH=share/opencv
+ ###### customized properties
+ -DWITH_ADE=${WITH_ADE}
+ -DWITH_CUBLAS=${WITH_CUDA}
+ -DWITH_CUDA=${WITH_CUDA}
+ -DWITH_EIGEN=${WITH_EIGEN}
+ -DWITH_FFMPEG=${WITH_FFMPEG}
+ -DWITH_GDCM=${WITH_GDCM}
+ -DWITH_HALIDE=${WITH_HALIDE}
+ -DWITH_IPP=${WITH_IPP}
+ -DWITH_JASPER=${WITH_JASPER}
+ -DWITH_JPEG=${WITH_JPEG}
+ -DWITH_MSMF=${WITH_MSMF}
+ -DWITH_OPENEXR=${WITH_OPENEXR}
+ -DWITH_OPENGL=${WITH_OPENGL}
+ -DWITH_OPENMP=${WITH_OPENMP}
+ -DWITH_PNG=${WITH_PNG}
+ -DWITH_PROTOBUF=ON
+ -DWITH_QT=${WITH_QT}
+ -DWITH_TBB=${WITH_TBB}
+ -DWITH_TIFF=${WITH_TIFF}
+ -DWITH_VTK=${WITH_VTK}
+ -DWITH_WEBP=${WITH_WEBP}
+ ###### WITH PROPERTIES explicitly disabled, they have problems with libraries if already installed by user and that are "involuntarily" found during install
+ -DWITH_LAPACK=OFF
+ ###### BUILD_options (mainly modules which require additional libraries)
+ -DBUILD_opencv_ovis=${BUILD_opencv_ovis}
+ -DBUILD_opencv_sfm=${BUILD_opencv_sfm}
+ -DBUILD_opencv_dnn=${BUILD_opencv_dnn}
+ -DBUILD_opencv_world=${BUILD_opencv_world}
+ ###### The following modules are disabled for UWP
+ -DBUILD_opencv_quality=${BUILD_opencv_quality}
+)
+
+vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH "share/opencv" TARGET_PATH "share/opencv")
+vcpkg_copy_pdbs()
+
+# OpenCV does not list TIFF as a dependency.
+# We explicitly add it to the module file,
+# in order to fix unresolved symbols linking problems
+# for downstream projects using OpenCV as static library
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake OPENCV_MODULES)
+ string(REPLACE "set(CMAKE_IMPORT_FILE_VERSION 1)"
+ "set(CMAKE_IMPORT_FILE_VERSION 1)
+find_package(TIFF REQUIRED)
+find_package(Protobuf REQUIRED)
+if(Protobuf_FOUND)
+ if(TARGET protobuf::libprotobuf)
+ add_library(libprotobuf INTERFACE IMPORTED)
+ set_target_properties(libprotobuf PROPERTIES
+ INTERFACE_LINK_LIBRARIES protobuf::libprotobuf
+ )
+ else()
+ add_library(libprotobuf UNKNOWN IMPORTED)
+ set_target_properties(libprotobuf PROPERTIES
+ IMPORTED_LOCATION \"${Protobuf_LIBRARY}\"
+ INTERFACE_INCLUDE_DIRECTORIES \"${Protobuf_INCLUDE_DIR}\"
+ INTERFACE_SYSTEM_INCLUDE_DIRECTORIES \"${Protobuf_INCLUDE_DIR}\"
+ )
+ endif()
+endif()
+find_package(HDF5 QUIET)
+find_package(Freetype QUIET)
+find_package(Ogre QUIET)
+find_package(gflags QUIET)
+find_package(Ceres QUIET)
+find_package(ade QUIET)
+find_package(VTK QUIET)
+find_package(OpenMP QUIET)
+find_package(GDCM QUIET)" OPENCV_MODULES "${OPENCV_MODULES}")
+
+ if(WITH_OPENMP)
+ string(REPLACE "set_target_properties(opencv_core PROPERTIES
+ INTERFACE_LINK_LIBRARIES \""
+ "set_target_properties(opencv_core PROPERTIES
+ INTERFACE_LINK_LIBRARIES \"\$<LINK_ONLY:OpenMP::OpenMP_CXX>;" OPENCV_MODULES "${OPENCV_MODULES}")
+ endif()
+
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake "${OPENCV_MODULES}")
+
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/setup_vars_opencv4.cmd)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/setup_vars_opencv4.cmd)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/LICENSE)
+file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/LICENSE)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/opencv4 RENAME copyright)