diff options
Diffstat (limited to 'vcpkg/ports/opencv2')
| -rw-r--r-- | vcpkg/ports/opencv2/0001-install-options.patch | 368 | ||||
| -rw-r--r-- | vcpkg/ports/opencv2/0002-fix-paths-containing-symbols.patch | 47 | ||||
| -rw-r--r-- | vcpkg/ports/opencv2/0003-force-package-requirements.patch | 47 | ||||
| -rw-r--r-- | vcpkg/ports/opencv2/0004-enable-pkgconf.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/opencv2/0005-fix-config.patch | 18 | ||||
| -rw-r--r-- | vcpkg/ports/opencv2/0006-fix-jasper.patch | 20 | ||||
| -rw-r--r-- | vcpkg/ports/opencv2/0007-fix-openexr.patch | 26 | ||||
| -rw-r--r-- | vcpkg/ports/opencv2/0008-missing-include.patch | 10 | ||||
| -rw-r--r-- | vcpkg/ports/opencv2/0009-pkgconfig-suffix.patch | 15 | ||||
| -rw-r--r-- | vcpkg/ports/opencv2/0010-fix-cmake4.patch | 34 | ||||
| -rw-r--r-- | vcpkg/ports/opencv2/0011-msvc-compile-fix.patch | 12 | ||||
| -rw-r--r-- | vcpkg/ports/opencv2/portfile.cmake | 138 | ||||
| -rw-r--r-- | vcpkg/ports/opencv2/usage.in | 4 | ||||
| -rw-r--r-- | vcpkg/ports/opencv2/vcpkg.json | 100 |
14 files changed, 852 insertions, 0 deletions
diff --git a/vcpkg/ports/opencv2/0001-install-options.patch b/vcpkg/ports/opencv2/0001-install-options.patch new file mode 100644 index 0000000..fa01b8b --- /dev/null +++ b/vcpkg/ports/opencv2/0001-install-options.patch @@ -0,0 +1,368 @@ +--- a/3rdparty/libtiff/CMakeLists.txt ++++ b/3rdparty/libtiff/CMakeLists.txt +@@ -102,7 +102,7 @@ if(UNIX AND (CMAKE_COMPILER_IS_GNUCXX OR CV_ICC)) + endif() + + add_library(${TIFF_LIBRARY} STATIC ${lib_srcs}) +-target_link_libraries(${TIFF_LIBRARY} ${ZLIB_LIBRARIES}) ++target_link_libraries(${TIFF_LIBRARY} ZLIB::ZLIB) + + set_target_properties(${TIFF_LIBRARY} + PROPERTIES +--- a/3rdparty/openexr/CMakeLists.txt ++++ b/3rdparty/openexr/CMakeLists.txt +@@ -55,7 +55,7 @@ if(MSVC AND CV_ICC) + endif() + + add_library(IlmImf STATIC ${lib_hdrs} ${lib_srcs}) +-target_link_libraries(IlmImf ${ZLIB_LIBRARIES}) ++target_link_libraries(IlmImf ZLIB::ZLIB) + + set_target_properties(IlmImf + PROPERTIES +--- a/3rdparty/tbb/CMakeLists.txt ++++ b/3rdparty/tbb/CMakeLists.txt +@@ -116,7 +116,7 @@ endif() + + if(NOT EXISTS "${tbb_tarball}") + message(STATUS "Downloading ${tbb_ver}_src.tgz") +- file(DOWNLOAD "${tbb_url}" "${tbb_tarball}" TIMEOUT 600 STATUS __statvar) ++ 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 \"${tbb_url}\"\n FILENAME \"${tbb_tarball}\"\n SHA512 0\n )") + if(NOT __statvar EQUAL 0) + message(FATAL_ERROR "Failed to download TBB sources (${__statvar}): ${tbb_url}") + endif() +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -275,23 +275,10 @@ if (ANDROID) + endif() + + if(NOT DEFINED OPENCV_DOC_INSTALL_PATH) +- if(ANDROID OR WIN32) +- set(OPENCV_DOC_INSTALL_PATH doc) +- elseif(INSTALL_TO_MANGLED_PATHS) +- set(OPENCV_DOC_INSTALL_PATH share/OpenCV-${OPENCV_VERSION}/doc) +- else() +- set(OPENCV_DOC_INSTALL_PATH share/OpenCV/doc) +- endif() ++ set(OPENCV_DOC_INSTALL_PATH share/opencv/doc) + endif() + +-if(WIN32) +- if(DEFINED OpenCV_RUNTIME AND DEFINED OpenCV_ARCH) +- set(OpenCV_INSTALL_BINARIES_PREFIX "${OpenCV_ARCH}/${OpenCV_RUNTIME}/") +- else() +- message(STATUS "Can't detect runtime and/or arch") +- set(OpenCV_INSTALL_BINARIES_PREFIX "") +- endif() +-elseif(ANDROID) ++if(ANDROID) + set(OpenCV_INSTALL_BINARIES_PREFIX "sdk/native/") + else() + set(OpenCV_INSTALL_BINARIES_PREFIX "") +@@ -322,29 +309,13 @@ if(ANDROID) + set(OPENCV_INCLUDE_INSTALL_PATH sdk/native/jni/include) + set(OPENCV_SAMPLES_SRC_INSTALL_PATH samples/native) + else() +- set(LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib") +- set(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib${LIB_SUFFIX}") +- if(WIN32) +- if(OpenCV_STATIC) +- set(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}") +- else() +- set(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}") +- endif() +- set(OPENCV_3P_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}") +- set(OPENCV_SAMPLES_SRC_INSTALL_PATH samples/native) +- else() +- set(OPENCV_LIB_INSTALL_PATH lib${LIB_SUFFIX}) +- set(OPENCV_3P_LIB_INSTALL_PATH share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH}) +- set(OPENCV_SAMPLES_SRC_INSTALL_PATH share/OpenCV/samples) +- endif() +- set(OPENCV_INCLUDE_INSTALL_PATH "include") +- +- math(EXPR SIZEOF_VOID_P_BITS "8 * ${CMAKE_SIZEOF_VOID_P}") +- if(LIB_SUFFIX AND NOT SIZEOF_VOID_P_BITS EQUAL LIB_SUFFIX) +- set(OPENCV_CONFIG_INSTALL_PATH lib${LIB_SUFFIX}/cmake/opencv) +- else() +- set(OPENCV_CONFIG_INSTALL_PATH share/OpenCV) +- endif() ++ set(LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib") ++ set(3P_LIBRARY_OUTPUT_PATH "${LIBRARY_OUTPUT_PATH}") ++ set(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib") ++ set(OPENCV_3P_LIB_INSTALL_PATH "${OPENCV_LIB_INSTALL_PATH}") ++ set(OPENCV_SAMPLES_SRC_INSTALL_PATH "share/opencv2/samples") ++ set(OPENCV_INCLUDE_INSTALL_PATH "include/opencv2.4") ++ set(OPENCV_CONFIG_INSTALL_PATH "share/opencv2") + endif() + + set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${OPENCV_LIB_INSTALL_PATH}") +@@ -354,15 +325,8 @@ if(INSTALL_TO_MANGLED_PATHS) + set(OPENCV_INCLUDE_INSTALL_PATH ${OPENCV_INCLUDE_INSTALL_PATH}/opencv-${OPENCV_VERSION}) + endif() + +-if(WIN32) +- # Postfix of DLLs: +- set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}") ++ set(OPENCV_DLLVERSION 2) + set(OPENCV_DEBUG_POSTFIX d) +-else() +- # Postfix of so's: +- set(OPENCV_DLLVERSION "") +- set(OPENCV_DEBUG_POSTFIX "") +-endif() + + if(DEFINED CMAKE_DEBUG_POSTFIX) + set(OPENCV_DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}") +@@ -397,8 +361,6 @@ if(CMAKE_HOST_WIN32) + endif() + endif() + +-find_host_program(GIT_EXECUTABLE NAMES ${git_names} PATH_SUFFIXES Git/cmd Git/bin DOC "git command line client") +-mark_as_advanced(GIT_EXECUTABLE) + + if(GIT_EXECUTABLE) + execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --always --dirty --match "2.[0-9].[0-9]*" +@@ -501,7 +463,9 @@ if(BUILD_DOCS) + endif(BUILD_DOCS) + + # --- Python Support --- +-include(cmake/OpenCVDetectPython.cmake) ++if(WITH_PYTHON) ++ include(cmake/OpenCVDetectPython.cmake) ++endif() + + # --- Java Support --- + include(cmake/OpenCVDetectApacheAnt.cmake) +@@ -885,11 +849,7 @@ if(ANDROID) + endif() + + if(DEFINED WITH_FFMPEG OR HAVE_FFMPEG) +- if(WIN32) +- status(" FFMPEG:" WITH_FFMPEG THEN "YES (prebuilt binaries)" ELSE NO) +- else() + status(" FFMPEG:" HAVE_FFMPEG THEN YES ELSE NO) +- endif() + status(" avcodec:" FFMPEG_libavcodec_FOUND THEN "YES (ver ${FFMPEG_libavcodec_VERSION})" ELSE NO) + status(" avformat:" FFMPEG_libavformat_FOUND THEN "YES (ver ${FFMPEG_libavformat_VERSION})" ELSE NO) + status(" avutil:" FFMPEG_libavutil_FOUND THEN "YES (ver ${FFMPEG_libavutil_VERSION})" ELSE NO) +--- a/cmake/OpenCVCompilerOptions.cmake ++++ b/cmake/OpenCVCompilerOptions.cmake +@@ -269,7 +269,6 @@ if(MSVC) + set(OPENCV_EXTRA_FLAGS "${OPENCV_EXTRA_FLAGS} /bigobj") + endif() + if(BUILD_WITH_DEBUG_INFO) +- set(OPENCV_EXTRA_FLAGS_RELEASE "${OPENCV_EXTRA_FLAGS_RELEASE} /Zi") + endif() + + if(ENABLE_SSE4_1 AND CV_ICC AND NOT OPENCV_EXTRA_FLAGS MATCHES "/arch:") +--- a/cmake/OpenCVFindLibsVideo.cmake ++++ b/cmake/OpenCVFindLibsVideo.cmake +@@ -185,12 +185,8 @@ endif(WITH_XIMEA) + # --- FFMPEG --- + ocv_clear_vars(HAVE_FFMPEG) + if(WITH_FFMPEG) +- if(WIN32 AND NOT ARM) +- include("${OpenCV_SOURCE_DIR}/3rdparty/ffmpeg/ffmpeg_version.cmake") ++ find_package(FFMPEG REQUIRED) + set(HAVE_FFMPEG TRUE) +- elseif(PKG_CONFIG_FOUND) +- ocv_check_modules(FFMPEG libavcodec libavformat libavutil libswscale) +- ocv_check_modules(FFMPEG_libavresample libavresample) + if(FFMPEG_libavresample_FOUND) + ocv_append_build_options(FFMPEG FFMPEG_libavresample) + endif() +@@ -211,9 +207,6 @@ if(WITH_FFMPEG) + ocv_append_build_options(HIGHGUI FFMPEG) + endif() + endif() +- else() +- message(STATUS "Can't find ffmpeg - 'pkg-config' utility is missing") +- endif() + endif(WITH_FFMPEG) + + # --- VideoInput/DirectShow --- +--- a/cmake/OpenCVGenConfig.cmake ++++ b/cmake/OpenCVGenConfig.cmake +@@ -101,7 +101,7 @@ endif() + configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCVConfig.cmake" @ONLY) + configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCVConfig-version.cmake.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCVConfig-version.cmake" @ONLY) + +-if(UNIX) # ANDROID configuration is created here also ++if(1) # ANDROID configuration is created here also + #http://www.vtk.org/Wiki/CMake/Tutorials/Packaging reference + # For a command "find_package(<name> [major[.minor]] [EXACT] [REQUIRED|QUIET])" + # cmake will look in the following dir on unix: +@@ -126,7 +126,7 @@ endif() + # -------------------------------------------------------------------------------------------- + # Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake -> For use within binary installers/packages + # -------------------------------------------------------------------------------------------- +-if(WIN32) ++if(0) + set(OpenCV_INCLUDE_DIRS_CONFIGCMAKE "\"\${OpenCV_CONFIG_PATH}/include\" \"\${OpenCV_CONFIG_PATH}/include/opencv\"") + set(OpenCV2_INCLUDE_DIRS_CONFIGCMAKE "\"\"") + +--- a/cmake/OpenCVGenPkgconfig.cmake ++++ b/cmake/OpenCVGenPkgconfig.cmake +@@ -95,7 +95,7 @@ set(includedir "\${prefix}/${OPENCV_INCLUDE_INSTALL_PATH}") + if(INSTALL_TO_MANGLED_PATHS) + set(OPENCV_PC_FILE_NAME "opencv-${OPENCV_VERSION}.pc") + else() +- set(OPENCV_PC_FILE_NAME opencv.pc) ++ set(OPENCV_PC_FILE_NAME opencv2.pc) + endif() + configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/opencv-XXX.pc.in" + "${CMAKE_BINARY_DIR}/unix-install/${OPENCV_PC_FILE_NAME}" +--- a/cmake/OpenCVModule.cmake ++++ b/cmake/OpenCVModule.cmake +@@ -86,10 +86,10 @@ macro(ocv_add_dependencies full_modname) + endforeach() + unset(__depsvar) + +- ocv_list_unique(OPENCV_MODULE_${full_modname}_REQ_DEPS) +- ocv_list_unique(OPENCV_MODULE_${full_modname}_OPT_DEPS) +- ocv_list_unique(OPENCV_MODULE_${full_modname}_PRIVATE_REQ_DEPS) +- ocv_list_unique(OPENCV_MODULE_${full_modname}_PRIVATE_OPT_DEPS) ++ #ocv_list_unique(OPENCV_MODULE_${full_modname}_REQ_DEPS) ++ #ocv_list_unique(OPENCV_MODULE_${full_modname}_OPT_DEPS) ++ #ocv_list_unique(OPENCV_MODULE_${full_modname}_PRIVATE_REQ_DEPS) ++ #ocv_list_unique(OPENCV_MODULE_${full_modname}_PRIVATE_OPT_DEPS) + + set(OPENCV_MODULE_${full_modname}_REQ_DEPS ${OPENCV_MODULE_${full_modname}_REQ_DEPS} + CACHE INTERNAL "Required dependencies of ${full_modname} module") +@@ -277,7 +277,7 @@ endfunction() + + # sort modules by dependencies + function(__ocv_sort_modules_by_deps __lst) +- ocv_list_sort(${__lst}) ++ #ocv_list_sort(${__lst}) + set(${__lst}_ORDERED ${${__lst}} CACHE INTERNAL "") + set(__result "") + foreach (m ${${__lst}}) +@@ -382,7 +382,7 @@ function(__ocv_resolve_dependencies) + endforeach() + endforeach() + +- ocv_list_sort(OPENCV_MODULES_BUILD) ++ #ocv_list_sort(OPENCV_MODULES_BUILD) + + foreach(m ${OPENCV_MODULES_BUILD}) + # message(STATUS "FULL deps of ${m}: ${deps_${m}}") +@@ -397,7 +397,7 @@ function(__ocv_resolve_dependencies) + # reorder dependencies + foreach(m ${OPENCV_MODULES_BUILD}) + __ocv_sort_modules_by_deps(OPENCV_MODULE_${m}_DEPS) +- ocv_list_sort(OPENCV_MODULE_${m}_DEPS_EXT) ++ #ocv_list_sort(OPENCV_MODULE_${m}_DEPS_EXT) + + set(OPENCV_MODULE_${m}_DEPS ${OPENCV_MODULE_${m}_DEPS} CACHE INTERNAL "Flattened dependencies of ${m} module") + set(OPENCV_MODULE_${m}_DEPS_EXT ${OPENCV_MODULE_${m}_DEPS_EXT} CACHE INTERNAL "Extra dependencies of ${m} module") +@@ -581,8 +581,6 @@ macro(ocv_create_module) + target_link_libraries(${the_module} LINK_PUBLIC ${OPENCV_MODULE_${the_module}_DEPS}) + target_link_libraries(${the_module} LINK_PUBLIC ${OPENCV_MODULE_${the_module}_DEPS}) + set(extra_deps ${OPENCV_MODULE_${the_module}_DEPS_EXT} ${OPENCV_LINKER_LIBS} ${IPP_LIBS} ${ARGN}) +- ocv_extract_simple_libs(extra_deps _simple_deps _other_deps) +- target_link_libraries(${the_module} LINK_PRIVATE ${_simple_deps}) # this list goes to "export" + target_link_libraries(${the_module} LINK_PRIVATE ${extra_deps}) + endif() + +--- a/data/CMakeLists.txt ++++ b/data/CMakeLists.txt +@@ -5,8 +5,6 @@ if(ANDROID) + install(FILES ${HAAR_CASCADES} DESTINATION sdk/etc/haarcascades COMPONENT libs) + install(FILES ${LBP_CASCADES} DESTINATION sdk/etc/lbpcascades COMPONENT libs) + else() +- install(FILES ${HAAR_CASCADES} DESTINATION share/OpenCV/haarcascades COMPONENT libs) +- install(FILES ${LBP_CASCADES} DESTINATION share/OpenCV/lbpcascades COMPONENT libs) + endif() + + if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH) +@@ -51,4 +49,4 @@ if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH) + install(FILES ${DATAFILES_CASCADES} DESTINATION share/OpenCV/testdata/data/haarcascades COMPONENT tests) + endif() + endif() +-endif() +\ No newline at end of file ++endif() +--- a/modules/core/CMakeLists.txt ++++ b/modules/core/CMakeLists.txt +@@ -1,9 +1,9 @@ + set(the_description "The Core Functionality") + + if (NOT HAVE_CUDA OR ENABLE_DYNAMIC_CUDA) +- ocv_add_module(core PRIVATE_REQUIRED ${ZLIB_LIBRARIES}) ++ ocv_add_module(core PRIVATE_REQUIRED ZLIB::ZLIB) + else() +- ocv_add_module(core PRIVATE_REQUIRED ${ZLIB_LIBRARIES} ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY}) ++ ocv_add_module(core PRIVATE_REQUIRED ZLIB::ZLIB ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY}) + endif() + + ocv_module_include_directories("${OpenCV_SOURCE_DIR}/modules/dynamicuda/include/" ${ZLIB_INCLUDE_DIR}) +--- a/modules/highgui/CMakeLists.txt ++++ b/modules/highgui/CMakeLists.txt +@@ -15,23 +15,23 @@ endif() + + if(HAVE_PNG OR HAVE_TIFF OR HAVE_OPENEXR) + ocv_include_directories(${ZLIB_INCLUDE_DIR}) +- list(APPEND GRFMT_LIBS ${ZLIB_LIBRARIES}) ++ list(APPEND GRFMT_LIBS ZLIB::ZLIB) + endif() + + if(HAVE_JPEG) + ocv_include_directories(${JPEG_INCLUDE_DIR}) +- list(APPEND GRFMT_LIBS ${JPEG_LIBRARIES}) ++ list(APPEND GRFMT_LIBS JPEG::JPEG) + endif() + + if(HAVE_PNG) + add_definitions(${PNG_DEFINITIONS}) + ocv_include_directories(${PNG_INCLUDE_DIR}) +- list(APPEND GRFMT_LIBS ${PNG_LIBRARIES}) ++ list(APPEND GRFMT_LIBS PNG::PNG) + endif() + + if(HAVE_TIFF) + ocv_include_directories(${TIFF_INCLUDE_DIR}) +- list(APPEND GRFMT_LIBS ${TIFF_LIBRARIES}) ++ list(APPEND GRFMT_LIBS TIFF::TIFF) + endif() + + if(HAVE_JASPER) +@@ -296,38 +296,5 @@ endif() + ocv_add_precompiled_headers(${the_module}) + ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-deprecated-declarations -Wno-clobbered) + +-if(WIN32 AND WITH_FFMPEG) +- #copy ffmpeg dll to the output folder +- if(MSVC64 OR MINGW64) +- set(FFMPEG_SUFFIX _64) +- endif() +- +- set(ffmpeg_bare_name "opencv_ffmpeg${FFMPEG_SUFFIX}.dll") +- set(ffmpeg_bare_name_ver "opencv_ffmpeg${OPENCV_DLLVERSION}${FFMPEG_SUFFIX}.dll") +- set(ffmpeg_path "${OpenCV_SOURCE_DIR}/3rdparty/ffmpeg/${ffmpeg_bare_name}") +- +- #if(MSVC AND CMAKE_VERSION VERSION_GREATER "2.8.2") +- # add_custom_command(TARGET ${the_module} POST_BUILD +- # COMMAND ${CMAKE_COMMAND} -E copy "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/$<CONFIGURATION>/${ffmpeg_bare_name_ver}" +- # COMMENT "Copying ${ffmpeg_path} to the output directory") +- #else +- if(MSVC_IDE) +- add_custom_command(TARGET ${the_module} POST_BUILD +- COMMAND ${CMAKE_COMMAND} -E copy "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/Release/${ffmpeg_bare_name_ver}" +- COMMAND ${CMAKE_COMMAND} -E copy "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/Debug/${ffmpeg_bare_name_ver}" +- COMMENT "Copying ${ffmpeg_path} to the output directory") +- elseif(MSVC AND (CMAKE_GENERATOR MATCHES "Visual")) +- add_custom_command(TARGET ${the_module} POST_BUILD +- COMMAND ${CMAKE_COMMAND} -E copy "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/${ffmpeg_bare_name_ver}" +- COMMENT "Copying ${ffmpeg_path} to the output directory") +- else() +- add_custom_command(TARGET ${the_module} POST_BUILD +- COMMAND ${CMAKE_COMMAND} -E copy "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/${ffmpeg_bare_name_ver}" +- COMMENT "Copying ${ffmpeg_path} to the output directory") +- endif() +- +- install(FILES "${ffmpeg_path}" DESTINATION ${OPENCV_BIN_INSTALL_PATH} COMPONENT libs RENAME "${ffmpeg_bare_name_ver}") +-endif() +- + ocv_add_accuracy_tests() + ocv_add_perf_tests() diff --git a/vcpkg/ports/opencv2/0002-fix-paths-containing-symbols.patch b/vcpkg/ports/opencv2/0002-fix-paths-containing-symbols.patch new file mode 100644 index 0000000..c24b5eb --- /dev/null +++ b/vcpkg/ports/opencv2/0002-fix-paths-containing-symbols.patch @@ -0,0 +1,47 @@ +--- a/cmake/OpenCVUtils.cmake ++++ b/cmake/OpenCVUtils.cmake +@@ -82,12 +82,42 @@ macro(ocv_check_environment_variables) + endforeach() + endmacro() + ++# check if "sub" (file or dir) is below "dir" ++function(is_subdir res dir sub ) ++ get_filename_component(dir "${dir}" ABSOLUTE) ++ get_filename_component(sub "${sub}" ABSOLUTE) ++ file(TO_CMAKE_PATH "${dir}" dir) ++ file(TO_CMAKE_PATH "${sub}" sub) ++ set(dir "${dir}/") ++ string(LENGTH "${dir}" len) ++ string(LENGTH "${sub}" len_sub) ++ if(NOT len GREATER len_sub) ++ string(SUBSTRING "${sub}" 0 ${len} prefix) ++ endif() ++ if(prefix AND prefix STREQUAL dir) ++ set(${res} TRUE PARENT_SCOPE) ++ else() ++ set(${res} FALSE PARENT_SCOPE) ++ endif() ++endfunction() ++ ++function(ocv_is_opencv_directory result_var dir) ++ set(result FALSE) ++ foreach(parent ${OpenCV_SOURCE_DIR} ${OpenCV_BINARY_DIR} ${OPENCV_EXTRA_MODULES_PATH}) ++ is_subdir(result "${parent}" "${dir}") ++ if(result) ++ break() ++ endif() ++ endforeach() ++ set(${result_var} ${result} PARENT_SCOPE) ++endfunction() ++ + # adds include directories in such a way that directories from the OpenCV source tree go first + function(ocv_include_directories) + set(__add_before "") + foreach(dir ${ARGN}) +- get_filename_component(__abs_dir "${dir}" ABSOLUTE) +- if("${__abs_dir}" MATCHES "^${OpenCV_SOURCE_DIR}" OR "${__abs_dir}" MATCHES "^${OpenCV_BINARY_DIR}") ++ ocv_is_opencv_directory(__is_opencv_dir "${dir}") ++ if(__is_opencv_dir) + list(APPEND __add_before "${dir}") + elseif(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "6.0" AND + dir MATCHES "/usr/include$") diff --git a/vcpkg/ports/opencv2/0003-force-package-requirements.patch b/vcpkg/ports/opencv2/0003-force-package-requirements.patch new file mode 100644 index 0000000..335aed4 --- /dev/null +++ b/vcpkg/ports/opencv2/0003-force-package-requirements.patch @@ -0,0 +1,47 @@ +--- a/cmake/OpenCVFindLibsGrfmt.cmake ++++ b/cmake/OpenCVFindLibsGrfmt.cmake +@@ -6,7 +6,7 @@ + if(BUILD_ZLIB) + ocv_clear_vars(ZLIB_FOUND) + else() +- include(FindZLIB) ++ find_package(ZLIB REQUIRED) + if(ZLIB_FOUND AND ANDROID) + if(ZLIB_LIBRARIES STREQUAL "${ANDROID_SYSROOT}/usr/lib/libz.so" OR + ZLIB_LIBRARIES STREQUAL "${ANDROID_SYSROOT}/usr/lib64/libz.so") +@@ -32,7 +32,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() +@@ -74,7 +74,7 @@ if(WITH_JPEG) + if(BUILD_JPEG) + ocv_clear_vars(JPEG_FOUND) + else() +- include(FindJPEG) ++ find_package(JPEG REQUIRED) + endif() + + if(NOT JPEG_FOUND) +@@ -95,7 +95,7 @@ if(WITH_JASPER) + if(BUILD_JASPER) + ocv_clear_vars(JASPER_FOUND) + else() +- include(FindJasper) ++ find_package(Jasper REQUIRED) + endif() + + if(NOT JASPER_FOUND) +@@ -119,7 +119,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) diff --git a/vcpkg/ports/opencv2/0004-enable-pkgconf.patch b/vcpkg/ports/opencv2/0004-enable-pkgconf.patch new file mode 100644 index 0000000..bc3d9fe --- /dev/null +++ b/vcpkg/ports/opencv2/0004-enable-pkgconf.patch @@ -0,0 +1,13 @@ +--- a/cmake/OpenCVUtils.cmake ++++ b/cmake/OpenCVUtils.cmake +@@ -1,9 +1,7 @@ + include(CheckFunctionExists) + include(CheckIncludeFile) + +-if(UNIX) +- find_package(PkgConfig) ++ find_package(PkgConfig REQUIRED) +-endif() + + # Search packages for the host system instead of packages for target system + # in case of cross compilation these macros should be defined by the toolchain file diff --git a/vcpkg/ports/opencv2/0005-fix-config.patch b/vcpkg/ports/opencv2/0005-fix-config.patch new file mode 100644 index 0000000..e9449e5 --- /dev/null +++ b/vcpkg/ports/opencv2/0005-fix-config.patch @@ -0,0 +1,18 @@ +--- a/cmake/templates/OpenCVConfig.cmake.in ++++ b/cmake/templates/OpenCVConfig.cmake.in +@@ -97,7 +97,6 @@ set(OpenCV_USE_MANGLED_PATHS @OpenCV_USE_MANGLED_PATHS_CONFIGCMAKE@) + # Extract the directory where *this* file has been installed (determined at cmake run-time) + get_filename_component(OpenCV_CONFIG_PATH "${CMAKE_CURRENT_LIST_FILE}" PATH CACHE) + +-if(NOT WIN32 OR ANDROID) + if(ANDROID) + set(OpenCV_INSTALL_PATH "${OpenCV_CONFIG_PATH}/../../..") + else() +@@ -109,7 +108,6 @@ if(NOT WIN32 OR ANDROID) + else() + get_filename_component(OpenCV_INSTALL_PATH "${OpenCV_INSTALL_PATH}" REALPATH) + endif() +-endif() + + # Presence of Android native camera wrappers + set(OpenCV_HAVE_ANDROID_CAMERA @HAVE_opencv_androidcamera@) diff --git a/vcpkg/ports/opencv2/0006-fix-jasper.patch b/vcpkg/ports/opencv2/0006-fix-jasper.patch new file mode 100644 index 0000000..403305f --- /dev/null +++ b/vcpkg/ports/opencv2/0006-fix-jasper.patch @@ -0,0 +1,20 @@ +--- a/modules/highgui/src/grfmt_jpeg2000.cpp ++++ b/modules/highgui/src/grfmt_jpeg2000.cpp +@@ -377,7 +377,7 @@ bool Jpeg2KDecoder::readComponent8u( uchar *data, void *_buffer, + + for( y = 0; y < yend - ystart; ) + { +- jas_seqent_t* pix_row = &jas_matrix_get( buffer, y / ystep, 0 ); ++ jas_seqent_t* pix_row = jas_matrix_getref( buffer, y / ystep, 0 ); + uchar* dst = data + (y - yoffset) * step - xoffset; + + if( xstep == 1 ) +@@ -443,7 +443,7 @@ bool Jpeg2KDecoder::readComponent16u( unsigned short *data, void *_buffer, + + for( y = 0; y < yend - ystart; ) + { +- jas_seqent_t* pix_row = &jas_matrix_get( buffer, y / ystep, 0 ); ++ jas_seqent_t* pix_row = jas_matrix_getref( buffer, y / ystep, 0 ); + ushort* dst = data + (y - yoffset) * step - xoffset; + + if( xstep == 1 ) diff --git a/vcpkg/ports/opencv2/0007-fix-openexr.patch b/vcpkg/ports/opencv2/0007-fix-openexr.patch new file mode 100644 index 0000000..533ce2d --- /dev/null +++ b/vcpkg/ports/opencv2/0007-fix-openexr.patch @@ -0,0 +1,26 @@ +--- a/cmake/OpenCVFindLibsGrfmt.cmake ++++ b/cmake/OpenCVFindLibsGrfmt.cmake +@@ -151,7 +151,12 @@ if(WITH_OPENEXR) + if(BUILD_OPENEXR) + ocv_clear_vars(OPENEXR_FOUND) + else() +- include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenEXR.cmake") ++ find_package(Imath CONFIG REQUIRED) ++ find_package(OpenEXR CONFIG REQUIRED) ++ set(OPENEXR_LIBRARIES Imath::Imath OpenEXR::OpenEXR) ++ set(OPENEXR_INCLUDE_PATHS "") ++ set(OPENEXR_VERSION "${OpenEXR_VERSION}") ++ set(OPENEXR_FOUND 1) + endif() + + if(NOT OPENEXR_FOUND) +--- a/modules/highgui/src/grfmt_exr.cpp ++++ b/modules/highgui/src/grfmt_exr.cpp +@@ -57,6 +57,7 @@ + #include <ImfOutputFile.h> + #include <ImfChannelList.h> + #include <ImfStandardAttributes.h> ++#include <ImfFrameBuffer.h> + #include <half.h> + #include "grfmt_exr.hpp" + diff --git a/vcpkg/ports/opencv2/0008-missing-include.patch b/vcpkg/ports/opencv2/0008-missing-include.patch new file mode 100644 index 0000000..d5390a1 --- /dev/null +++ b/vcpkg/ports/opencv2/0008-missing-include.patch @@ -0,0 +1,10 @@ +--- a/modules/ts/src/gpu_test.cpp ++++ b/modules/ts/src/gpu_test.cpp +@@ -42,6 +42,7 @@ + + #include "opencv2/ts/gpu_test.hpp" + #include <stdexcept> ++#include <functional> + + using namespace cv; + using namespace cv::gpu; diff --git a/vcpkg/ports/opencv2/0009-pkgconfig-suffix.patch b/vcpkg/ports/opencv2/0009-pkgconfig-suffix.patch new file mode 100644 index 0000000..3f0e45c --- /dev/null +++ b/vcpkg/ports/opencv2/0009-pkgconfig-suffix.patch @@ -0,0 +1,15 @@ +--- a/cmake/OpenCVGenPkgconfig.cmake ++++ b/cmake/OpenCVGenPkgconfig.cmake +@@ -54,6 +54,12 @@ foreach(CVLib ${OpenCV_LIB_COMPONENTS}) + set(libname "${CVLib}") + endif() + ++ string(TOUPPER "${CMAKE_BUILD_TYPE}" build_type) ++ get_target_property(libsuffix ${CVLib} ${build_type}_POSTFIX) ++ if(libsuffix) ++ string(APPEND libname "${libsuffix}") ++ endif() ++ + set(libpath "\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}") + list(APPEND OpenCV_LIB_COMPONENTS_ "-L${libpath}") + list(APPEND OpenCV_LIB_COMPONENTS_ "-l${libname}") diff --git a/vcpkg/ports/opencv2/0010-fix-cmake4.patch b/vcpkg/ports/opencv2/0010-fix-cmake4.patch new file mode 100644 index 0000000..cbe3a9a --- /dev/null +++ b/vcpkg/ports/opencv2/0010-fix-cmake4.patch @@ -0,0 +1,34 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 940a018373..0e84287be9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -48,11 +48,6 @@ if(POLICY CMP0026) + cmake_policy(SET CMP0026 NEW) + endif() + +-if (POLICY CMP0042) +- # silence cmake 3.0+ warnings about MACOSX_RPATH +- cmake_policy(SET CMP0042 OLD) +-endif() +- + # must go before the project command + set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configs" FORCE) + if(DEFINED CMAKE_BUILD_TYPE AND CMAKE_VERSION VERSION_GREATER "2.8") +diff --git a/cmake/OpenCVDetectCXXCompiler.cmake b/cmake/OpenCVDetectCXXCompiler.cmake +index 23d493dd13..090ad4e362 100644 +--- a/cmake/OpenCVDetectCXXCompiler.cmake ++++ b/cmake/OpenCVDetectCXXCompiler.cmake +@@ -5,11 +5,11 @@ if(CMAKE_CL_64) + set(MSVC64 1) + endif() + +-if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") ++if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT MSVC) + set(CMAKE_COMPILER_IS_GNUCXX 1) + set(CMAKE_COMPILER_IS_CLANGCXX 1) + endif() +-if(CMAKE_C_COMPILER_ID STREQUAL "Clang") ++if(CMAKE_C_COMPILER_ID MATCHES "Clang" AND NOT MSVC) + set(CMAKE_COMPILER_IS_GNUCC 1) + set(CMAKE_COMPILER_IS_CLANGCC 1) + endif() diff --git a/vcpkg/ports/opencv2/0011-msvc-compile-fix.patch b/vcpkg/ports/opencv2/0011-msvc-compile-fix.patch new file mode 100644 index 0000000..e039356 --- /dev/null +++ b/vcpkg/ports/opencv2/0011-msvc-compile-fix.patch @@ -0,0 +1,12 @@ +diff --git a/modules/highgui/src/cap_msmf.hpp b/modules/highgui/src/cap_msmf.hpp +index 9ce2a9c..b72c7f4 100644 +--- a/modules/highgui/src/cap_msmf.hpp ++++ b/modules/highgui/src/cap_msmf.hpp +@@ -2312,6 +2312,7 @@ public: + } + + protected: ++ using Node = typename List<T*>::Node; + HRESULT InsertAfter(Ptr item, Node *pBefore) + { + // Do not allow nullptr item pointers unless NULLABLE is true. diff --git a/vcpkg/ports/opencv2/portfile.cmake b/vcpkg/ports/opencv2/portfile.cmake new file mode 100644 index 0000000..7788f28 --- /dev/null +++ b/vcpkg/ports/opencv2/portfile.cmake @@ -0,0 +1,138 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO opencv/opencv + REF "${VERSION}" + SHA512 de7d24ac7ed78ac14673011cbecc477cae688b74222a972e553c95a557b5cb8e5913f97db525421d6a72af30998ca300112fa0b285daed65f65832eb2cf7241a + HEAD_REF master + PATCHES + 0001-install-options.patch + 0002-fix-paths-containing-symbols.patch + 0003-force-package-requirements.patch + 0004-enable-pkgconf.patch + 0005-fix-config.patch + 0006-fix-jasper.patch + 0007-fix-openexr.patch + 0008-missing-include.patch + 0009-pkgconfig-suffix.patch + 0010-fix-cmake4.patch + 0011-msvc-compile-fix.patch +) + +vcpkg_find_acquire_program(PKGCONFIG) +set(ENV{PKG_CONFIG} "${PKGCONFIG}") +vcpkg_host_path_list(APPEND ENV{PKG_CONFIG_PATH} "${CURRENT_INSTALLED_DIR}/lib/pkgconfig") + +# Disallow accidental build of vendored copies +file(REMOVE_RECURSE "${SOURCE_PATH}/3rdparty/openexr") +file(REMOVE "${SOURCE_PATH}/cmake/FindCUDA.cmake") +file(REMOVE_RECURSE "${SOURCE_PATH}/cmake/FindCUDA") + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS +FEATURES + "eigen" WITH_EIGEN + "jasper" WITH_JASPER + "jpeg" WITH_JPEG + "msmf" WITH_MSMF + "openexr" WITH_OPENEXR + "opengl" WITH_OPENGL + "png" WITH_PNG + "qt" WITH_QT + "tiff" WITH_TIFF + "world" BUILD_opencv_world + "dc1394" WITH_1394 +) + +string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_CRT_LNK) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ###### ocv_options + -DCMAKE_DEBUG_POSTFIX=d + -DBUILD_WITH_STATIC_CRT=${STATIC_CRT_LNK} + -DINSTALL_TO_MANGLED_PATHS=OFF + # Do not build docs/examples + -DBUILD_DOCS=OFF + -DBUILD_EXAMPLES=OFF + ###### Disable build 3rd party libs + -DBUILD_JASPER=OFF + -DBUILD_JPEG=OFF + -DBUILD_OPENEXR=OFF + -DBUILD_PNG=OFF + -DBUILD_TIFF=OFF + -DBUILD_TBB=OFF + -DBUILD_ZLIB=OFF + ###### OpenCV Build components + -DBUILD_opencv_apps=OFF + -DBUILD_PACKAGE=OFF + -DBUILD_PERF_TESTS=OFF + -DBUILD_TESTS=OFF + -DBUILD_WITH_DEBUG_INFO=ON + # CMAKE + -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON + ###### customized properties + ## Options from vcpkg_check_features() + ${FEATURE_OPTIONS} + -DWITH_1394=OFF + -DWITH_IPP=OFF + -DWITH_LAPACK=OFF + -DWITH_OPENCLAMDBLAS=OFF + -DWITH_OPENMP=OFF + -DWITH_PYTHON=OFF + -DWITH_FFMPEG=OFF + -DWITH_ZLIB=ON + -DWITH_CUBLAS=OFF + -DWITH_CUDA=OFF + -DWITH_GTK=OFF +) + +vcpkg_cmake_install() +vcpkg_cmake_config_fixup() +vcpkg_copy_pdbs() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(READ "${CURRENT_PACKAGES_DIR}/share/opencv2/OpenCVModules.cmake" OPENCV_MODULES) + + set(DEPS_STRING "include(CMakeFindDependencyMacro) +find_dependency(Threads)") + if("tiff" IN_LIST FEATURES) + string(APPEND DEPS_STRING "\nfind_dependency(TIFF)") + endif() + if("openexr" IN_LIST FEATURES) + string(APPEND DEPS_STRING "\nfind_dependency(Imath CONFIG)\nfind_dependency(OpenEXR CONFIG)") + endif() + if("png" IN_LIST FEATURES) + string(APPEND DEPS_STRING "\nfind_dependency(PNG)") + endif() + if("qt" IN_LIST FEATURES) + string(APPEND DEPS_STRING " +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) +find_dependency(Qt5 COMPONENTS Core Gui Widgets Test Concurrent)") + if("opengl" IN_LIST FEATURES) + string(APPEND DEPS_STRING " +find_dependency(Qt5 COMPONENTS OpenGL)") + endif() + endif() + + string(REPLACE "set(CMAKE_IMPORT_FILE_VERSION 1)" + "set(CMAKE_IMPORT_FILE_VERSION 1)\n${DEPS_STRING}" OPENCV_MODULES "${OPENCV_MODULES}") + + file(WRITE "${CURRENT_PACKAGES_DIR}/share/opencv2/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}/LICENSE") +file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/LICENSE") + +vcpkg_fixup_pkgconfig() + +configure_file("${CURRENT_PORT_DIR}/usage.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" @ONLY) + +file(GLOB extra_license_files "${CURRENT_PACKAGES_DIR}/share/licenses/opencv2/*") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" ${extra_license_files}) +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/licenses") diff --git a/vcpkg/ports/opencv2/usage.in b/vcpkg/ports/opencv2/usage.in new file mode 100644 index 0000000..217ce72 --- /dev/null +++ b/vcpkg/ports/opencv2/usage.in @@ -0,0 +1,4 @@ +@PORT@ is compatible with built-in CMake variables. In case of multiple OpenCV version installed, set OpenCV_ROOT *before* the find_package call: + + set(OpenCV_ROOT "${VCPKG_INSTALLED_DIR}/@TARGET_TRIPLET@/share/@PORT@") + find_package(OpenCV REQUIRED) diff --git a/vcpkg/ports/opencv2/vcpkg.json b/vcpkg/ports/opencv2/vcpkg.json new file mode 100644 index 0000000..f623358 --- /dev/null +++ b/vcpkg/ports/opencv2/vcpkg.json @@ -0,0 +1,100 @@ +{ + "name": "opencv2", + "version": "2.4.13.7", + "port-version": 25, + "description": "Open Source Computer Vision Library", + "homepage": "https://github.com/opencv/opencv", + "license": "BSD-3-Clause", + "supports": "!uwp & !(arm & windows) & !android", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + "zlib" + ], + "default-features": [ + "eigen", + "jpeg", + { + "name": "msmf", + "platform": "windows & !mingw" + }, + "png", + "tiff" + ], + "features": { + "dc1394": { + "description": "Dc1394 support for opencv", + "dependencies": [ + "libdc1394" + ] + }, + "eigen": { + "description": "Eigen support for opencv", + "dependencies": [ + "eigen3" + ] + }, + "jasper": { + "description": "JPEG 2000 support for opencv", + "dependencies": [ + "jasper" + ] + }, + "jpeg": { + "description": "JPEG support for opencv", + "dependencies": [ + "libjpeg-turbo" + ] + }, + "msmf": { + "description": "Microsoft Media Foundation support for opencv", + "supports": "windows & !mingw" + }, + "openexr": { + "description": "OpenEXR support for opencv", + "dependencies": [ + "imath", + "openexr" + ] + }, + "opengl": { + "description": "opengl support for opencv", + "dependencies": [ + "opengl" + ] + }, + "png": { + "description": "PNG support for opencv", + "dependencies": [ + "libpng" + ] + }, + "qt": { + "description": "Qt GUI support for opencv", + "dependencies": [ + { + "name": "qt5-base", + "default-features": false + } + ] + }, + "tiff": { + "description": "TIFF support for opencv", + "dependencies": [ + { + "name": "tiff", + "default-features": false + } + ] + }, + "world": { + "description": "Compile to a single package support for opencv" + } + } +} |