aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/opencv2/portfile.cmake
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/opencv2/portfile.cmake
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/opencv2/portfile.cmake')
-rw-r--r--vcpkg/ports/opencv2/portfile.cmake138
1 files changed, 138 insertions, 0 deletions
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")