From d85a40d478e683561578d1f63bb992f8805e16cc Mon Sep 17 00:00:00 2001 From: Stefano Sinigardi Date: Fri, 23 Aug 2019 21:48:09 +0200 Subject: [PATCH] [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() --- ...g.patch => 0001-disable-downloading.patch} | 4 +- ports/opencv3/0002-install-options.patch | 142 ++---- ... => 0003-force-package-requirements.patch} | 36 +- ...-remove-custom-protobuf-find-package.patch | 25 -- ports/opencv3/0006-fix-missing-openjp2.patch | 16 - ...1-winrt-fixes.patch => 0009-fix-uwp.patch} | 24 +- ports/opencv3/CONTROL | 123 +++--- ports/opencv3/portfile.cmake | 414 +++++++----------- ports/opencv3/usage | 5 - ports/opencv4/CONTROL | 3 +- ports/opencv4/portfile.cmake | 13 +- 11 files changed, 298 insertions(+), 507 deletions(-) rename ports/opencv3/{0003-disable-downloading.patch => 0001-disable-downloading.patch} (82%) rename ports/opencv3/{0004-use-find-package-required.patch => 0003-force-package-requirements.patch} (81%) delete mode 100644 ports/opencv3/0005-remove-custom-protobuf-find-package.patch delete mode 100644 ports/opencv3/0006-fix-missing-openjp2.patch rename ports/opencv3/{0001-winrt-fixes.patch => 0009-fix-uwp.patch} (72%) delete mode 100644 ports/opencv3/usage diff --git a/ports/opencv3/0003-disable-downloading.patch b/ports/opencv3/0001-disable-downloading.patch similarity index 82% rename from ports/opencv3/0003-disable-downloading.patch rename to ports/opencv3/0001-disable-downloading.patch index 28b00251f..7e49fae2a 100644 --- a/ports/opencv3/0003-disable-downloading.patch +++ b/ports/opencv3/0001-disable-downloading.patch @@ -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}\"") diff --git a/ports/opencv3/0002-install-options.patch b/ports/opencv3/0002-install-options.patch index 0719a7cb9..3d334a0a1 100644 --- a/ports/opencv3/0002-install-options.patch +++ b/ports/opencv3/0002-install-options.patch @@ -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() diff --git a/ports/opencv3/0004-use-find-package-required.patch b/ports/opencv3/0003-force-package-requirements.patch similarity index 81% rename from ports/opencv3/0004-use-find-package-required.patch rename to ports/opencv3/0003-force-package-requirements.patch index 4e1daf659..d43ccf4f6 100644 --- a/ports/opencv3/0004-use-find-package-required.patch +++ b/ports/opencv3/0003-force-package-requirements.patch @@ -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) diff --git a/ports/opencv3/0005-remove-custom-protobuf-find-package.patch b/ports/opencv3/0005-remove-custom-protobuf-find-package.patch deleted file mode 100644 index 91ac137f9..000000000 --- a/ports/opencv3/0005-remove-custom-protobuf-find-package.patch +++ /dev/null @@ -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() diff --git a/ports/opencv3/0006-fix-missing-openjp2.patch b/ports/opencv3/0006-fix-missing-openjp2.patch deleted file mode 100644 index c0afb9952..000000000 --- a/ports/opencv3/0006-fix-missing-openjp2.patch +++ /dev/null @@ -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() diff --git a/ports/opencv3/0001-winrt-fixes.patch b/ports/opencv3/0009-fix-uwp.patch similarity index 72% rename from ports/opencv3/0001-winrt-fixes.patch rename to ports/opencv3/0009-fix-uwp.patch index b2fe1a021..b57e49ea1 100644 --- a/ports/opencv3/0001-winrt-fixes.patch +++ b/ports/opencv3/0009-fix-uwp.patch @@ -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 #include +#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 diff --git a/ports/opencv3/CONTROL b/ports/opencv3/CONTROL index f70d1d387..d564e24a8 100644 --- a/ports/opencv3/CONTROL +++ b/ports/opencv3/CONTROL @@ -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 diff --git a/ports/opencv3/portfile.cmake b/ports/opencv3/portfile.cmake index e4745d336..f7ef27973 100644 --- a/ports/opencv3/portfile.cmake +++ b/ports/opencv3/portfile.cmake @@ -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) diff --git a/ports/opencv3/usage b/ports/opencv3/usage deleted file mode 100644 index 1c30e5fea..000000000 --- a/ports/opencv3/usage +++ /dev/null @@ -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}) diff --git a/ports/opencv4/CONTROL b/ports/opencv4/CONTROL index e16540656..29a119e2f 100644 --- a/ports/opencv4/CONTROL +++ b/ports/opencv4/CONTROL @@ -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 diff --git a/ports/opencv4/portfile.cmake b/ports/opencv4/portfile.cmake index ed0b9f1e2..60ba8e5f5 100644 --- a/ports/opencv4/portfile.cmake +++ b/ports/opencv4/portfile.cmake @@ -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)