[OpenCV 3] update to v3.4.7 (#7658)

* [opencv3] uniform CONTROL file with opencv4 port

* [opencv3] uniform portfile with opencv4

* [opencv3] uniform CONTROL file with opencv4 port

* [opencv3] update to 3.4.7 draft

* [OpenCV 3] wip to uniform port to opencv4 standards

* [OpenCV3] fix IPPICV integration, use the same mechanism as in OpenCV4 port

* [OpenCV3] fix sfm module

* [OpenCV3] update hunk references in patches 0001 and 0009

* [OpenCV3] refresh install options to adhere to opencv4 standards

* [opencv3] remove leftovers

* [opencv3] Use OUT_FEATURE_OPTIONS with vcpkg_check_features()
This commit is contained in:
Stefano Sinigardi 2019-08-23 21:48:09 +02:00 committed by Victor Romero
parent cf447c050c
commit d85a40d478
11 changed files with 298 additions and 507 deletions

View File

@ -1,6 +1,8 @@
diff --git a/cmake/OpenCVDownload.cmake b/cmake/OpenCVDownload.cmake
index cdc47ad..175aaf3 100644
--- a/cmake/OpenCVDownload.cmake
+++ b/cmake/OpenCVDownload.cmake
@@ -151,6 +151,8 @@ function(ocv_download)
@@ -154,6 +154,8 @@ function(ocv_download)
# Download
if(NOT EXISTS "${CACHE_CANDIDATE}")
ocv_download_log("#cmake_download \"${CACHE_CANDIDATE}\" \"${DL_URL}\"")

View File

@ -1,137 +1,69 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6ce583b..e9ea757 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -312,6 +312,10 @@ OCV_OPTION(INSTALL_PYTHON_EXAMPLES "Install Python examples" OFF )
OCV_OPTION(INSTALL_ANDROID_EXAMPLES "Install Android examples" OFF IF ANDROID )
OCV_OPTION(INSTALL_TO_MANGLED_PATHS "Enables mangled install paths, that help with side by side installs." OFF IF (UNIX AND NOT ANDROID AND NOT APPLE_FRAMEWORK AND BUILD_SHARED_LIBS) )
OCV_OPTION(INSTALL_TESTS "Install accuracy and performance test binaries and test data" OFF)
+OCV_OPTION(INSTALL_HEADERS "Install header files" ON)
+OCV_OPTION(INSTALL_LICENSE "Install license file" ON)
+OCV_OPTION(INSTALL_OTHER "Install other files" ON)
+OCV_OPTION(INSTALL_FORCE_UNIX_PATHS "Force unix-style installation" OFF)
@@ -665,7 +665,7 @@ endif()
# OpenCV build options
# ===================================================
@@ -378,7 +382,9 @@ else()
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:
@@ -716,7 +716,7 @@ endif()
ocv_cmake_hook(POST_CMAKE_BUILD_OPTIONS)
# --- Python Support ---
-if(NOT IOS)
+if(0)
include(cmake/OpenCVDetectPython.cmake)
endif()
if(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
- if(DEFINED OpenCV_RUNTIME AND DEFINED OpenCV_ARCH)
+ if(DEFINED OpenCV_DISABLE_ARCH_PATH)
+ ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "")
+ elseif(DEFINED OpenCV_RUNTIME AND DEFINED OpenCV_ARCH)
ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "${OpenCV_ARCH}/${OpenCV_RUNTIME}/")
else()
message(STATUS "Can't detect runtime and/or arch")
@@ -433,12 +439,8 @@ else()
ocv_update(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib${LIB_SUFFIX}")
diff --git a/cmake/OpenCVCompilerOptions.cmake b/cmake/OpenCVCompilerOptions.cmake
index 0b9d669..142b21b 100644
--- a/cmake/OpenCVCompilerOptions.cmake
+++ b/cmake/OpenCVCompilerOptions.cmake
@@ -254,7 +254,6 @@ if(MSVC)
#endif()
if(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
- if(OpenCV_STATIC)
- ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}")
- else()
- ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}")
- endif()
- ocv_update(OPENCV_3P_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}")
+ ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}")
+ ocv_update(OPENCV_3P_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}")
ocv_update(OPENCV_SAMPLES_SRC_INSTALL_PATH samples)
ocv_update(OPENCV_JAR_INSTALL_PATH java)
ocv_update(OPENCV_OTHER_INSTALL_PATH etc)
@@ -901,7 +903,7 @@ if(NOT OPENCV_LICENSE_FILE)
endif()
# for UNIX it does not make sense as LICENSE and readme will be part of the package automatically
-if(ANDROID OR NOT UNIX)
+if(ANDROID OR NOT UNIX AND INSTALL_LICENSE)
install(FILES ${OPENCV_LICENSE_FILE}
PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
DESTINATION ./ COMPONENT libs)
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 2c7c42b..e7bc157 100644
--- a/cmake/OpenCVGenConfig.cmake
+++ b/cmake/OpenCVGenConfig.cmake
@@ -105,7 +105,7 @@ function(ocv_gen_config TMP_DIR NESTED_PATH ROOT_NAME)
@@ -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(((CMAKE_HOST_SYSTEM_NAME MATCHES "Linux" OR UNIX) AND NOT ANDROID) OR INSTALL_FORCE_UNIX_PATHS)
+if(NOT ANDROID)
ocv_gen_config("${CMAKE_BINARY_DIR}/unix-install" "" "")
endif()
@@ -117,7 +117,7 @@ endif()
@@ -121,7 +121,7 @@ endif()
# --------------------------------------------------------------------------------------------
# Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake -> For use within binary installers/packages
# --------------------------------------------------------------------------------------------
-if(WIN32)
+if(WIN32 AND NOT INSTALL_FORCE_UNIX_PATHS)
+if(0)
if(CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
if(BUILD_SHARED_LIBS)
set(_lib_suffix "lib")
--- a/cmake/OpenCVGenHeaders.cmake
+++ b/cmake/OpenCVGenHeaders.cmake
@@ -1,7 +1,9 @@
# platform-specific config file
configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/cvconfig.h.in" "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/cvconfig.h")
configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/cvconfig.h.in" "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/opencv2/cvconfig.h")
-install(FILES "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/cvconfig.h" DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2 COMPONENT dev)
+if(INSTALL_HEADERS)
+ install(FILES "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/cvconfig.h" DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2 COMPONENT dev)
+endif()
# platform-specific config file
ocv_compiler_optimization_fill_cpu_config()
@@ -29,4 +31,6 @@ set(OPENCV_MODULE_DEFINITIONS_CONFIGMAKE "${OPENCV_MODULE_DEFINITIONS_CONFIGMAKE
#endforeach()
configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/opencv_modules.hpp.in" "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/opencv2/opencv_modules.hpp")
-install(FILES "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/opencv2/opencv_modules.hpp" DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2 COMPONENT dev)
+if(INSTALL_HEADERS)
+ install(FILES "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/opencv2/opencv_modules.hpp" DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2 COMPONENT dev)
+endif()
\ No newline at end of file
--- a/cmake/OpenCVModule.cmake
+++ b/cmake/OpenCVModule.cmake
@@ -1000,7 +1000,9 @@ macro(_ocv_create_module)
foreach(hdr ${OPENCV_MODULE_${the_module}_HEADERS})
string(REGEX REPLACE "^.*opencv2/" "opencv2/" hdr2 "${hdr}")
if(NOT hdr2 MATCHES "private" AND hdr2 MATCHES "^(opencv2/?.*)/[^/]+.h(..)?$" )
- install(FILES ${hdr} OPTIONAL DESTINATION "${OPENCV_INCLUDE_INSTALL_PATH}/${CMAKE_MATCH_1}" COMPONENT dev)
+ if(INSTALL_HEADERS)
+ install(FILES ${hdr} OPTIONAL DESTINATION "${OPENCV_INCLUDE_INSTALL_PATH}/${CMAKE_MATCH_1}" COMPONENT dev)
+ endif()
endif()
endforeach()
endif()
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,10 @@
@@ -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_OTHER)
+ install(FILES ${HAAR_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/haarcascades COMPONENT libs)
+ install(FILES ${LBP_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/lbpcascades COMPONENT libs)
+endif()
if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH)
install(DIRECTORY "${OPENCV_TEST_DATA_PATH}/" DESTINATION "${OPENCV_TEST_DATA_INSTALL_PATH}" COMPONENT "tests")
--- a/include/CMakeLists.txt
+++ b/include/CMakeLists.txt
@@ -1,7 +1,9 @@
-file(GLOB old_hdrs "opencv/*.h*")
-install(FILES ${old_hdrs}
- DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv
- COMPONENT dev)
-install(FILES "opencv2/opencv.hpp"
- DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2
- COMPONENT dev)
+if(INSTALL_HEADERS)
+ file(GLOB old_hdrs "opencv/*.h*")
+ install(FILES ${old_hdrs}
+ DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv
+ COMPONENT dev)
+ install(FILES "opencv2/opencv.hpp"
+ DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2
+ COMPONENT dev)
+endif()

View File

@ -1,3 +1,5 @@
diff --git a/cmake/OpenCVFindLibsGrfmt.cmake b/cmake/OpenCVFindLibsGrfmt.cmake
index fcf716b..bda80e9 100644
--- a/cmake/OpenCVFindLibsGrfmt.cmake
+++ b/cmake/OpenCVFindLibsGrfmt.cmake
@@ -6,7 +6,7 @@
@ -16,9 +18,9 @@
- include(FindJPEG)
+ find_package(JPEG REQUIRED)
endif()
if(NOT JPEG_FOUND)
@@ -51,7 +51,7 @@ if(WITH_TIFF)
@@ -74,7 +74,7 @@ if(WITH_TIFF)
if(BUILD_TIFF)
ocv_clear_vars(TIFF_FOUND)
else()
@ -27,7 +29,7 @@
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()
@@ -94,7 +94,7 @@ if(WITH_WEBP)
@@ -117,7 +117,7 @@ if(WITH_WEBP)
if(BUILD_WEBP)
ocv_clear_vars(WEBP_FOUND WEBP_LIBRARY WEBP_LIBRARIES WEBP_INCLUDE_DIR)
else()
@ -36,16 +38,16 @@
if(WEBP_FOUND)
set(HAVE_WEBP 1)
endif()
@@ -135,7 +135,7 @@ if(WITH_JASPER)
@@ -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)
@@ -159,7 +159,7 @@ if(WITH_PNG)
@@ -182,7 +182,7 @@ if(WITH_PNG)
if(BUILD_PNG)
ocv_clear_vars(PNG_FOUND)
else()
@ -54,27 +56,27 @@
if(PNG_FOUND)
include(CheckIncludeFile)
check_include_file("${PNG_PNG_INCLUDE_DIR}/libpng/png.h" HAVE_LIBPNG_PNG_H)
@@ -191,7 +191,7 @@ if(WITH_OPENEXR)
if(BUILD_OPENEXR)
ocv_clear_vars(OPENEXR_FOUND)
else()
@@ -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(NOT OPENEXR_FOUND)
@@ -207,7 +207,7 @@ 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)
@@ -219,7 +219,7 @@ if(WITH_GDAL)
@@ -243,7 +243,7 @@ if(WITH_GDAL)
endif()
if (WITH_GDCM)
- find_package(GDCM QUIET)
+ find_package(GDCM REQUIRED)

View File

@ -1,25 +0,0 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -633,7 +633,10 @@ include(cmake/OpenCVFindLibsGUI.cmake)
include(cmake/OpenCVFindLibsVideo.cmake)
include(cmake/OpenCVFindLibsPerf.cmake)
include(cmake/OpenCVFindLAPACK.cmake)
-include(cmake/OpenCVFindProtobuf.cmake)
+find_package(protobuf)
+if(Protobuf_LIBRARIES)
+ set(HAVE_PROTOBUF TRUE)
+endif()
# ----------------------------------------------------------------------------
# Detect other 3rd-party libraries/tools
--- a/modules/dnn/CMakeLists.txt
+++ b/modules/dnn/CMakeLists.txt
@@ -78,7 +78,7 @@ endif()
set(include_dirs ${fw_inc})
set(sources_options "")
-set(libs libprotobuf ${LAPACK_LIBRARIES})
+set(libs protobuf::libprotobuf ${LAPACK_LIBRARIES})
if(OPENCV_DNN_OPENCL AND HAVE_OPENCL)
list(APPEND include_dirs ${OPENCL_INCLUDE_DIRS})
else()

View File

@ -1,16 +0,0 @@
diff --git a/modules/imgcodecs/CMakeLists.txt b/modules/imgcodecs/CMakeLists.txt
index 434278c..0d8f4d8 100644
--- a/modules/imgcodecs/CMakeLists.txt
+++ b/modules/imgcodecs/CMakeLists.txt
@@ -36,6 +36,11 @@ if(HAVE_PNG)
endif()
if(HAVE_GDCM)
+ if (CMAKE_BUILD_TYPE STREQUAL "Release")
+ link_directories("${CURRENT_INSTALLED_DIR}/lib")
+ else()
+ link_directories("${CURRENT_INSTALLED_DIR}/debug/lib")
+ endif()
ocv_include_directories(${GDCM_INCLUDE_DIRS})
list(APPEND GRFMT_LIBS ${GDCM_LIBRARIES})
endif()

View File

@ -1,38 +1,46 @@
diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake
index c2fda8f..3f7dfdc 100644
--- a/cmake/OpenCVModule.cmake
+++ b/cmake/OpenCVModule.cmake
@@ -848,7 +848,7 @@ macro(ocv_create_module)
@@ -850,7 +850,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
diff --git a/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp b/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp
index f4147f3..b92efdd 100644
--- a/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp
+++ b/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp
@@ -24,6 +24,7 @@
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
+#include "opencv2/core/cvdef.h"
using namespace Windows::UI::Xaml::Controls;
namespace cv
diff --git a/modules/highgui/src/window_winrt_bridge.hpp b/modules/highgui/src/window_winrt_bridge.hpp
index 25f4aef..5429f0b 100644
--- a/modules/highgui/src/window_winrt_bridge.hpp
+++ b/modules/highgui/src/window_winrt_bridge.hpp
@@ -28,6 +28,7 @@
#include <map>
#include <opencv2\core.hpp>
+#include "opencv2/highgui/highgui_c.h"
using namespace Windows::UI::Xaml::Controls;
diff --git a/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp b/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp
index 236e227..e2417dc 100644
--- a/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp
+++ b/modules/videoio/src/cap_winrt/CaptureFrameGrabber.cpp
@@ -94,10 +94,10 @@ Media::CaptureFrameGrabber::~CaptureFrameGrabber()
void Media::CaptureFrameGrabber::ShowCameraSettings()
{
-#if WINAPI_FAMILY!=WINAPI_FAMILY_PHONE_APP

View File

@ -1,86 +1,90 @@
Source: opencv3
Version: 3.4.3-10
Build-Depends: zlib
Version: 3.4.7
Build-Depends: protobuf, zlib
Homepage: https://github.com/opencv/opencv
Description: computer vision library
Default-Features: opengl, jpeg, png, tiff, eigen, flann
Default-Features: dnn, jpeg, opengl, png, tiff, webp
Feature: opengl
Build-Depends: opengl
Description: opengl support for opencv
Feature: dnn
Build-Depends: protobuf
Description: opencv_dnn module
Feature: ovis
Build-Depends: ogre
Description: opencv_ovis module
Feature: nonfree
Description: allow nonfree and unredistributable libraries
Feature: flann
Description: opencv_flann module
Feature: sfm
Build-Depends: eigen3, glog, gflags, ceres
Description: opencv_sfm module
Feature: contrib
Build-Depends: opencv3[flann]
Build-Depends: hdf5 (!uwp)
Description: opencv_contrib module
Feature: cuda
Build-Depends: cuda
Build-Depends: opencv3[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
Description: prebuilt ffmpeg support for opencv
Feature: ipp
Description: Enable Intel Integrated Performance Primitives
Feature: tbb
Build-Depends: tbb
Description: Enable Intel Threading Building Blocks
Feature: qt
Build-Depends: qt5
Description: Qt GUI support for opencv
Feature: vtk
Build-Depends: vtk
Description: vtk support for opencv
Build-Depends: ffmpeg
Description: ffmpeg support for opencv
Feature: gdcm
Build-Depends: gdcm
Description: GDCM support for opencv
Feature: webp
Build-Depends: libwebp
Description: WebP support for opencv
Feature: openexr
Build-Depends: openexr
Description: OpenEXR support for opencv
Feature: tiff
Build-Depends: tiff
Description: TIFF support for opencv
Feature: png
Build-Depends: libpng
Description: PNG support for opencv
Feature: jpeg
Build-Depends: libjpeg-turbo
Description: JPEG support for opencv
Feature: ipp
Description: Enable Intel Integrated Performance Primitives
Feature: jasper
Build-Depends: jasper
Description: JPEG 2000 support for opencv
Feature: eigen
Build-Depends: eigen3
Description: Eigen 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: ovis
Build-Depends: opencv3[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: opencv3[contrib], opencv3[flann], 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, opencv3[core], opencv3[dnn]
@ -88,6 +92,3 @@ Description: Halide support for opencv
Feature: world
Description: Compile to a single package support for opencv
Feature: nonfree
Description: allow nonfree and unredistributable libraries

View File

@ -4,49 +4,51 @@ endif()
include(vcpkg_common_functions)
set(OPENCV_PORT_VERSION "3.4.3")
set(OPENCV_VERSION "3.4.7")
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO opencv/opencv
REF ${OPENCV_PORT_VERSION}
SHA512 d653a58eb5e3939b9fdb7438ac35f77cf4385cf72d5d22bfd21722a109e1b3283dbb9407985061b7548114f0d05c9395aac9bb62b4d2bc1f68da770a49987fef
REF ${OPENCV_VERSION}
SHA512 ba1336ad4e5208748aa09c99770392cc71ef72688560d0b03287ddafd36093ef30cbdf6422f87f8f878663ab8085cc0ff8a8c65fd1ff0ec6800855ea01309beb
HEAD_REF master
PATCHES
0001-winrt-fixes.patch
0001-disable-downloading.patch
0002-install-options.patch
0003-disable-downloading.patch
0004-use-find-package-required.patch
0005-remove-custom-protobuf-find-package.patch
0006-fix-missing-openjp2.patch
0003-force-package-requirements.patch
0009-fix-uwp.patch
)
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_WITH_STATIC_CRT)
set(CMAKE_MODULE_PATH)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
"contrib" WITH_CONTRIB
"cuda" WITH_CUDA
"cuda" WITH_CUBLAS
"dnn" BUILD_opencv_dnn
"eigen" WITH_EIGEN
"ffmpeg" WITH_FFMPEG
"flann" BUILD_opencv_flann
"gdcm" WITH_GDCM
"halide" WITH_HALIDE
"jasper" WITH_JASPER
"jpeg" WITH_JPEG
"nonfree" OPENCV_ENABLE_NONFREE
"openexr" WITH_OPENEXR
"opengl" WITH_OPENGL
"png" WITH_PNG
"qt" WITH_QT
"sfm" BUILD_opencv_sfm
"tiff" WITH_TIFF
"webp" WITH_WEBP
"world" BUILD_opencv_world
)
set(BUILD_opencv_world OFF)
if("world" IN_LIST FEATURES)
set(BUILD_opencv_world ON)
endif()
set(BUILD_opencv_dnn OFF)
set(WITH_PROTOBUF OFF)
if("dnn" IN_LIST FEATURES)
set(BUILD_opencv_dnn ON)
set(WITH_PROTOBUF ON)
set(PROTOBUF_UPDATE_FILES ON)
set(UPDATE_PROTO_FILES ON)
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()
set(BUILD_opencv_flann OFF)
if("flann" IN_LIST FEATURES)
set(BUILD_opencv_flann ON)
# Cannot use vcpkg_check_features() for "ipp", "ovis", "tbb", and "vtk".
# As the respective value of their variables can be unset conditionally.
set(WITH_IPP OFF)
if("ipp" IN_LIST FEATURES)
set(WITH_IPP ON)
endif()
set(BUILD_opencv_ovis OFF)
@ -54,15 +56,33 @@ if("ovis" IN_LIST FEATURES)
set(BUILD_opencv_ovis ON)
endif()
set(BUILD_opencv_sfm OFF)
if("sfm" IN_LIST FEATURES)
set(BUILD_opencv_sfm ON)
set(WITH_TBB OFF)
if("tbb" IN_LIST FEATURES)
set(WITH_TBB ON)
endif()
set(BUILD_opencv_contrib OFF)
if("contrib" IN_LIST FEATURES)
set(BUILD_opencv_contrib ON)
set(WITH_VTK OFF)
if("vtk" IN_LIST FEATURES)
set(WITH_VTK ON)
endif()
if("dnn" IN_LIST FEATURES)
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("contrib" IN_LIST FEATURES)
vcpkg_from_github(
OUT_SOURCE_PATH CONTRIB_SOURCE_PATH
REPO opencv/opencv_contrib
REF ${OPENCV_VERSION}
SHA512 922620f3e8754fc15dedf8993bdc1f00c06b623cbeeb72afb984ddaad6e0e04f46561a0ee4d20f5e260616c1f32c6dc0dd7248355d417873ae72bd03cb5d57fd
HEAD_REF master
)
set(BUILD_WITH_CONTRIB_FLAG "-DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules")
# Used for opencv's face module
vcpkg_download_distfile(OCV_DOWNLOAD
URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat"
@ -111,138 +131,63 @@ if("contrib" IN_LIST FEATURES)
)
endif()
set(WITH_CUDA OFF)
if("cuda" IN_LIST FEATURES)
set(WITH_CUDA ON)
endif()
set(WITH_FFMPEG OFF)
if("ffmpeg" IN_LIST FEATURES)
set(WITH_FFMPEG ON)
vcpkg_download_distfile(OCV_DOWNLOAD
URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8041bd6f5ad37045c258904ba3030bb3442e3911/ffmpeg/opencv_ffmpeg.dll"
FILENAME "opencv-cache/ffmpeg/fa5a2a4e2f37defcb95bde8ed145c2b3-opencv_ffmpeg.dll"
SHA512 875f922e1d9fc2fe7c8e879ede35b1001b6ad8b3c4d71feb3823421ce861f580df3418c791315b23870fcb0378d297b01e0761d3f65277ff11ec2fef8c0b08b7
)
vcpkg_download_distfile(OCV_DOWNLOAD
URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8041bd6f5ad37045c258904ba3030bb3442e3911/ffmpeg/opencv_ffmpeg_64.dll"
FILENAME "opencv-cache/ffmpeg/2cc08fc4fef8199fe80e0f126684834f-opencv_ffmpeg_64.dll"
SHA512 4e74aa4cb115f103b929f93bbc8dcf675de7d0c7916f8f0a80ac46761134b088634be95f959ce5827753ae9ecb2365ca40440dfbb9a9bf89f22ee11b6c8342b3
)
vcpkg_download_distfile(OCV_DOWNLOAD
URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8041bd6f5ad37045c258904ba3030bb3442e3911/ffmpeg/ffmpeg_version.cmake"
FILENAME "opencv-cache/ffmpeg/3b90f67f4b429e77d3da36698cef700c-ffmpeg_version.cmake"
SHA512 7d0142c30ac6f6260c1bcabc22753030fd25a708477fa28053e8df847c366967d3b93a8ac14af19a2b7b73d9f8241749a431458faf21a0c8efc7d6d99eecfdcf
)
endif()
set(WITH_IPP OFF)
if("ipp" IN_LIST FEATURES)
set(WITH_IPP ON)
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
vcpkg_download_distfile(OCV_DOWNLOAD
URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/bdb7bb85f34a8cb0d35e40a81f58da431aa1557a/ippicv/ippicv_2017u3_win_intel64_general_20180518.zip"
FILENAME "opencv-cache/ippicv/915ff92958089ede8ea532d3c4fe7187-ippicv_2017u3_win_intel64_general_20180518.zip"
SHA512 8aa08292d542d521c042864446e47a7a6bdbf3896d86fc7b43255459c24a2e9f34a4e9b177023d178fed7a2e82a9db410f89d81375a542d049785d263f46c64d
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()
vcpkg_download_distfile(OCV_DOWNLOAD
URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/bdb7bb85f34a8cb0d35e40a81f58da431aa1557a/ippicv/ippicv_2017u3_win_ia32_general_20180518.zip"
FILENAME "opencv-cache/ippicv/928168c2d99ab284047dfcfb7a821d91-ippicv_2017u3_win_ia32_general_20180518.zip"
SHA512 b89b0fb739152303cafc9fb064fa8b24fd94850697137ccbb5c1e344e0f5094115603a5e3be3a25f85d0faefc5c53429a7d65da0142d012ada41e8db2bcdd6b7
)
message(WARNING "This target architecture is not supported IPPICV")
set(WITH_IPP OFF)
endif()
endif()
set(WITH_TBB OFF)
if("tbb" IN_LIST FEATURES)
set(WITH_TBB ON)
endif()
set(WITH_QT OFF)
if("qt" IN_LIST FEATURES)
set(WITH_QT ON)
endif()
set(WITH_VTK OFF)
if("vtk" IN_LIST FEATURES)
set(WITH_VTK ON)
endif()
set(WITH_WEBP OFF)
if("webp" IN_LIST FEATURES)
set(WITH_WEBP ON)
list(APPEND CMAKE_MODULE_PATH ${CURRENT_INSTALLED_DIR}/share/libwebp)
endif()
set(WITH_GDCM OFF)
if("gdcm" IN_LIST FEATURES)
set(WITH_GDCM ON)
endif()
set(WITH_OPENGL OFF)
if("opengl" IN_LIST FEATURES)
set(WITH_OPENGL ON)
endif()
set(WITH_OPENEXR OFF)
if("openexr" IN_LIST FEATURES)
set(WITH_OPENEXR ON)
list(APPEND CMAKE_MODULE_PATH ${CURRENT_INSTALLED_DIR}/share/openexr)
endif()
set(WITH_MSMF ON)
if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
if(VCPKG_TARGET_IS_UWP)
set(WITH_MSMF OFF)
endif()
set(WITH_TIFF OFF)
if("tiff" IN_LIST FEATURES)
set(WITH_TIFF ON)
endif()
set(WITH_JPEG OFF)
if("jpeg" IN_LIST FEATURES)
set(WITH_JPEG ON)
endif()
set(WITH_JASPER OFF)
if("jasper" IN_LIST FEATURES)
set(WITH_JASPER ON)
endif()
set(WITH_PNG OFF)
if("png" IN_LIST FEATURES)
set(WITH_PNG ON)
endif()
set(WITH_EIGEN OFF)
if("eigen" IN_LIST FEATURES)
set(WITH_EIGEN ON)
endif()
set(WITH_HALIDE OFF)
if("halide" IN_LIST FEATURES)
set(WITH_HALIDE ON)
endif()
set(OPENCV_ENABLE_NONFREE OFF)
if("nonfree" IN_LIST FEATURES)
set(OPENCV_ENABLE_NONFREE ON)
endif()
if(BUILD_opencv_contrib)
vcpkg_from_github(
OUT_SOURCE_PATH CONTRIB_SOURCE_PATH
REPO opencv/opencv_contrib
REF ${OPENCV_PORT_VERSION}
SHA512 456c6f878fb3bd5459f6430405cf05c609431f8d7db743aa699fc75c305d019682ee3a804bf0cf5107597dd1dbbb69b08be3535a0e6c717e4773ed7c05d08e59
HEAD_REF master
)
set(BUILD_WITH_CONTRIB_FLAG "-DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules")
endif()
set(WITH_ZLIB ON)
set(BUILD_opencv_line_descriptor ON)
set(BUILD_opencv_saliency ON)
@ -252,14 +197,21 @@ if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm")
set(BUILD_opencv_saliency OFF)
set(BUILD_opencv_bgsegm OFF)
endif()
string(REPLACE ";" "\\\\\;" CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}")
if (VCPKG_TARGET_IS_UWP)
set(BUILD_opencv_quality OFF)
endif()
vcpkg_configure_cmake(
PREFER_NINJA
SOURCE_PATH ${SOURCE_PATH}
OPTIONS
# Ungrouped Entries
###### 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
-DOpenCV_DISABLE_ARCH_PATH=ON
# Do not build docs/examples
-DBUILD_DOCS=OFF
@ -281,22 +233,18 @@ vcpkg_configure_cmake(
# Select which OpenCV modules should be built
-DBUILD_opencv_apps=OFF
-DBUILD_opencv_bgsegm=${BUILD_opencv_bgsegm}
-DBUILD_opencv_dnn=${BUILD_opencv_dnn}
-DBUILD_opencv_flann=${BUILD_opencv_flann}
-DBUILD_opencv_line_descriptor=${BUILD_opencv_line_descriptor}
-DBUILD_opencv_ovis=${BUILD_opencv_ovis}
-DBUILD_opencv_python2=OFF
-DBUILD_opencv_python3=OFF
-DBUILD_opencv_saliency=${BUILD_opencv_saliency}
-DBUILD_opencv_sfm=${BUILD_opencv_sfm}
-DBUILD_opencv_world=${BUILD_opencv_world}
# PROTOBUF
-DPROTOBUF_UPDATE_FILES=${PROTOBUF_UPDATE_FILES}
-DUPDATE_PROTO_FILES=${UPDATE_PROTO_FILES}
-DPROTOBUF_UPDATE_FILES=ON
-DUPDATE_PROTO_FILES=ON
-DWITH_PROTOBUF=ON
# CMAKE
-DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
-DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON
"-DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}"
# ENABLE
-DENABLE_CXX11=ON
-DENABLE_PYLINT=OFF
@ -306,119 +254,71 @@ vcpkg_configure_cmake(
-DINSTALL_LICENSE=OFF
# OPENCV
-DOPENCV_CONFIG_INSTALL_PATH=share/opencv
-DOPENCV_OTHER_INSTALL_PATH=share/opencv
"-DOPENCV_DOWNLOAD_PATH=${DOWNLOADS}/opencv-cache"
${BUILD_WITH_CONTRIB_FLAG}
-DOPENCV_OTHER_INSTALL_PATH=share/opencv
# WITH
-DWITH_CUBLAS=${WITH_CUDA}
-DWITH_CUDA=${WITH_CUDA}
-DWITH_EIGEN=${WITH_EIGEN}
-DWITH_FFMPEG=${WITH_FFMPEG}
-DWITH_GDCM=${WITH_GDCM}
-DWITH_HALIDE=${WITH_HALIDE}
-DHALIDE_ROOT_DIR=${CURRENT_INSTALLED_DIR}
${FEATURE_OPPTIONS}
-DWITH_IPP=${WITH_IPP}
-DWITH_JASPER=${WITH_JASPER}
-DWITH_JPEG=${WITH_JPEG}
-DWITH_LAPACK=OFF
-DWITH_MATLAB=OFF
-DWITH_MSMF=${WITH_MSMF}
-DWITH_OPENCLAMDBLAS=OFF
-DWITH_OPENEXR=${WITH_OPENEXR}
-DWITH_OPENGL=${WITH_OPENGL}
-DWITH_PNG=${WITH_PNG}
-DWITH_PROTOBUF=${WITH_PROTOBUF}
-DWITH_QT=${WITH_QT}
-DWITH_TBB=${WITH_TBB}
-DWITH_TIFF=${WITH_TIFF}
-DWITH_VTK=${WITH_VTK}
-DWITH_WEBP=${WITH_WEBP}
-DWITH_ZLIB=${WITH_ZLIB}
-DCURRENT_INSTALLED_DIR=${CURRENT_INSTALLED_DIR}
-DHALIDE_ROOT_DIR=${CURRENT_INSTALLED_DIR}
OPTIONS_DEBUG
-DINSTALL_HEADERS=OFF
-DINSTALL_OTHER=OFF
)
vcpkg_install_cmake()
if(VCPKG_PLATFORM_TOOLSET STREQUAL "v141")
set(OpenCV_RUNTIME vc15)
else()
set(OpenCV_RUNTIME vc14)
endif()
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
set(OpenCV_ARCH x64)
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
set(OpenCV_ARCH ARM)
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
set(OpenCV_ARCH ARM64)
else()
set(OpenCV_ARCH x86)
endif()
file(GLOB BIN_AND_LIB ${CURRENT_PACKAGES_DIR}/${OpenCV_ARCH}/${OpenCV_RUNTIME}/*)
file(COPY ${BIN_AND_LIB} DESTINATION ${CURRENT_PACKAGES_DIR})
file(GLOB DEBUG_BIN_AND_LIB ${CURRENT_PACKAGES_DIR}/debug/${OpenCV_ARCH}/${OpenCV_RUNTIME}/*)
file(COPY ${DEBUG_BIN_AND_LIB} DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/${OpenCV_ARCH})
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/${OpenCV_ARCH})
file(GLOB STATICLIB ${CURRENT_PACKAGES_DIR}/staticlib/*)
if(STATICLIB)
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib)
file(COPY ${STATICLIB} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/staticlib)
endif()
file(GLOB STATICLIB ${CURRENT_PACKAGES_DIR}/debug/staticlib/*)
if(STATICLIB)
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib)
file(COPY ${STATICLIB} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/staticlib)
endif()
file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVConfig.cmake OPENCV_CONFIG)
string(REPLACE "/staticlib/"
"/lib/" OPENCV_CONFIG "${OPENCV_CONFIG}")
file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVConfig.cmake "${OPENCV_CONFIG}")
file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules-release.cmake OPENCV_CONFIG_LIB)
string(REPLACE "/staticlib/"
"/lib/" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}")
file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules-release.cmake "${OPENCV_CONFIG_LIB}")
file(READ ${CURRENT_PACKAGES_DIR}/debug/share/opencv/OpenCVModules-debug.cmake OPENCV_CONFIG_LIB)
string(REPLACE "/staticlib/"
"/lib/" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}")
string(REPLACE "PREFIX}/lib"
"PREFIX}/debug/lib" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}")
string(REPLACE "PREFIX}/bin"
"PREFIX}/debug/bin" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}")
file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules-debug.cmake "${OPENCV_CONFIG_LIB}")
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/share/opencv/OpenCVModules.cmake ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake)
file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake OPENCV_MODULES)
string(REPLACE "${CURRENT_INSTALLED_DIR}"
"\${_VCPKG_INSTALLED_DIR}/\${VCPKG_TARGET_TRIPLET}" OPENCV_MODULES "${OPENCV_MODULES}")
file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake "${OPENCV_MODULES}")
vcpkg_fixup_cmake_targets(CONFIG_PATH "share/opencv" TARGET_PATH "share/opencv")
vcpkg_copy_pdbs()
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)" OPENCV_MODULES "${OPENCV_MODULES}")
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(TIFF QUIET)
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}")
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(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/opencv)
vcpkg_copy_pdbs()
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/opencv3)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/opencv3/LICENSE ${CURRENT_PACKAGES_DIR}/share/opencv3/copyright)
set(VCPKG_POLICY_ALLOW_OBSOLETE_MSVCRT enabled)
file(REMOVE ${CURRENT_PACKAGES_DIR}/setup_vars_opencv3.cmd)
file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/setup_vars_opencv3.cmd)
file(REMOVE ${CURRENT_PACKAGES_DIR}/LICENSE)
file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/LICENSE)
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/opencv3 RENAME copyright)

View File

@ -1,5 +0,0 @@
The package opencv provides CMake integration:
find_package(OpenCV REQUIRED)
target_include_directories(main PRIVATE ${OpenCV_INCLUDE_DIRS})
target_link_libraries(main PRIVATE ${OpenCV_LIBS})

View File

@ -1,11 +1,12 @@
Source: opencv4
Version: 4.1.1-1
Build-Depends: protobuf, zlib
Homepage: https://github.com/opencv/opencv
Description: computer vision library
Default-Features: dnn, jpeg, opengl, png, tiff, webp
Feature: nonfree
Description: opencv nonfree module
Description: allow nonfree and unredistributable libraries
Feature: ade
Build-Depends: ade

View File

@ -6,10 +6,6 @@ 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
@ -288,14 +284,13 @@ vcpkg_configure_cmake(
-DCURRENT_INSTALLED_DIR=${CURRENT_INSTALLED_DIR}
###### PROTOBUF
-DPROTOBUF_UPDATE_FILES=ON
-DUPDATE_PROTO_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
@ -323,15 +318,10 @@ 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)
@ -348,6 +338,7 @@ if(Protobuf_FOUND)
)
endif()
endif()
find_package(TIFF QUIET)
find_package(HDF5 QUIET)
find_package(Freetype QUIET)
find_package(Ogre QUIET)