aboutsummaryrefslogtreecommitdiff
path: root/ports/opencv
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2016-09-18 20:50:08 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2016-09-18 20:54:03 -0700
commitccca198c1b1730b0241911cb56dc8e3504958b2a (patch)
treea2dd9b8b087a09afdcecc5cbb3377bed15127eb2 /ports/opencv
downloadvcpkg-ccca198c1b1730b0241911cb56dc8e3504958b2a.tar.gz
vcpkg-ccca198c1b1730b0241911cb56dc8e3504958b2a.zip
Initial commit
Diffstat (limited to 'ports/opencv')
-rw-r--r--ports/opencv/0001-OpenCV-should-follow-FHS-like-conventions.patch156
-rw-r--r--ports/opencv/CONTROL4
-rw-r--r--ports/opencv/portfile.cmake62
3 files changed, 222 insertions, 0 deletions
diff --git a/ports/opencv/0001-OpenCV-should-follow-FHS-like-conventions.patch b/ports/opencv/0001-OpenCV-should-follow-FHS-like-conventions.patch
new file mode 100644
index 000000000..1824aa339
--- /dev/null
+++ b/ports/opencv/0001-OpenCV-should-follow-FHS-like-conventions.patch
@@ -0,0 +1,156 @@
+From e396a74da8e7c9c06f3145de65647d7d48524a07 Mon Sep 17 00:00:00 2001
+From: Robert Schumacher <roschuma@microsoft.com>
+Date: Thu, 5 May 2016 04:16:18 -0700
+Subject: [PATCH] OpenCV should follow FHS-like conventions
+
+---
+ CMakeLists.txt | 11 +++++++----
+ cmake/OpenCVGenConfig.cmake | 11 +++++------
+ cmake/OpenCVGenHeaders.cmake | 8 ++++++--
+ cmake/OpenCVModule.cmake | 4 +++-
+ data/CMakeLists.txt | 6 ++++--
+ include/CMakeLists.txt | 6 ++++--
+ 6 files changed, 29 insertions(+), 17 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3ee50ff..8e3f57d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -250,6 +250,8 @@ 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_OTHER "Install other files" ON)
+
+ # OpenCV build options
+ # ===================================================
+@@ -315,7 +317,9 @@ else()
+ endif()
+
+ if(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
+- if(DEFINED OpenCV_RUNTIME AND DEFINED OpenCV_ARCH)
++ if(DEFINED OpenCV_DISABLE_ARCH_PATH)
++ set(OpenCV_INSTALL_BINARIES_PREFIX "")
++ elseif(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")
+@@ -379,7 +383,7 @@ else()
+ set(OPENCV_3P_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}")
+ set(OPENCV_SAMPLES_SRC_INSTALL_PATH samples/native)
+ set(OPENCV_JAR_INSTALL_PATH java)
+- set(OPENCV_OTHER_INSTALL_PATH etc)
++ set(OPENCV_OTHER_INSTALL_PATH share/opencv)
+ else()
+ set(OPENCV_LIB_INSTALL_PATH lib${LIB_SUFFIX})
+ set(OPENCV_3P_LIB_INSTALL_PATH share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH})
+@@ -736,8 +740,7 @@ endif()
+ # for UNIX it does not make sense as LICENSE and readme will be part of the package automatically
+ if(ANDROID OR NOT UNIX)
+ install(FILES ${OPENCV_LICENSE_FILE}
+- PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
+- DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT libs)
++ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/opencv RENAME copyright CONFIGURATIONS Release COMPONENT libs)
+ if(OPENCV_README_FILE)
+ install(FILES ${OPENCV_README_FILE}
+ PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
+diff --git a/cmake/OpenCVGenConfig.cmake b/cmake/OpenCVGenConfig.cmake
+index dbfd7ca..94fc4a9 100644
+--- a/cmake/OpenCVGenConfig.cmake
++++ b/cmake/OpenCVGenConfig.cmake
+@@ -139,14 +139,13 @@ if(WIN32)
+ configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCVConfig-version.cmake.in" "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig-version.cmake" @ONLY)
+ if (CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
+ if(BUILD_SHARED_LIBS)
+- install(FILES "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" DESTINATION "${OpenCV_INSTALL_BINARIES_PREFIX}lib" COMPONENT dev)
+- install(EXPORT OpenCVModules DESTINATION "${OpenCV_INSTALL_BINARIES_PREFIX}lib" FILE OpenCVModules${modules_file_suffix}.cmake COMPONENT dev)
++ install(FILES "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" DESTINATION "cmake" COMPONENT dev)
++ install(EXPORT OpenCVModules DESTINATION "cmake" FILE OpenCVModules${modules_file_suffix}.cmake COMPONENT dev)
+ else()
+- install(FILES "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" DESTINATION "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib" COMPONENT dev)
+- install(EXPORT OpenCVModules DESTINATION "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib" FILE OpenCVModules${modules_file_suffix}.cmake COMPONENT dev)
++ install(FILES "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" DESTINATION "cmake" COMPONENT dev)
++ install(EXPORT OpenCVModules DESTINATION "cmake" FILE OpenCVModules${modules_file_suffix}.cmake COMPONENT dev)
+ endif()
+- install(FILES "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig-version.cmake" DESTINATION "${CMAKE_INSTALL_PREFIX}" COMPONENT dev)
+- install(FILES "${OpenCV_SOURCE_DIR}/cmake/OpenCVConfig.cmake" DESTINATION "${CMAKE_INSTALL_PREFIX}/" COMPONENT dev)
++ install(FILES "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig-version.cmake" DESTINATION "cmake" COMPONENT dev)
+ else ()
+ install(FILES "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" DESTINATION "${OpenCV_INSTALL_BINARIES_PREFIX}lib/cmake/opencv-${OPENCV_VERSION}" COMPONENT dev)
+ install(EXPORT OpenCVModules DESTINATION "${OpenCV_INSTALL_BINARIES_PREFIX}lib/cmake/opencv-${OPENCV_VERSION}" FILE OpenCVModules${modules_file_suffix}.cmake COMPONENT dev)
+diff --git a/cmake/OpenCVGenHeaders.cmake b/cmake/OpenCVGenHeaders.cmake
+index 2988979..810871b 100644
+--- 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()
+
+ # ----------------------------------------------------------------------------
+ # opencv_modules.hpp based on actual modules list
+@@ -25,4 +27,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()
+diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake
+index 3385385..530e53f 100644
+--- a/cmake/OpenCVModule.cmake
++++ b/cmake/OpenCVModule.cmake
+@@ -879,7 +879,9 @@ macro(_ocv_create_module)
+ foreach(hdr ${OPENCV_MODULE_${m}_HEADERS})
+ string(REGEX REPLACE "^.*opencv2/" "opencv2/" hdr2 "${hdr}")
+ if(NOT hdr2 MATCHES "opencv2/${m}/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..86b9d89 100644
+--- a/data/CMakeLists.txt
++++ b/data/CMakeLists.txt
+@@ -1,8 +1,10 @@
+ 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")
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index b4e48e6..58dccc7 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -1,7 +1,9 @@
+ file(GLOB old_hdrs "opencv/*.h*")
+-install(FILES ${old_hdrs}
++if(INSTALL_HEADERS)
++ install(FILES ${old_hdrs}
+ DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv
+ COMPONENT dev)
+-install(FILES "opencv2/opencv.hpp"
++ install(FILES "opencv2/opencv.hpp"
+ DESTINATION ${OPENCV_INCLUDE_INSTALL_PATH}/opencv2
+ COMPONENT dev)
++endif()
+\ No newline at end of file
+--
+2.8.1.windows.1
+
diff --git a/ports/opencv/CONTROL b/ports/opencv/CONTROL
new file mode 100644
index 000000000..a22785929
--- /dev/null
+++ b/ports/opencv/CONTROL
@@ -0,0 +1,4 @@
+Source: opencv
+Version: 3.1.0
+Build-Depends: zlib, libpng, libjpeg-turbo
+Description: computer vision library
diff --git a/ports/opencv/portfile.cmake b/ports/opencv/portfile.cmake
new file mode 100644
index 000000000..9dcf0fdf7
--- /dev/null
+++ b/ports/opencv/portfile.cmake
@@ -0,0 +1,62 @@
+include(vcpkg_common_functions)
+
+find_program(GIT git)
+
+set(GIT_URL "https://github.com/Itseez/opencv")
+set(GIT_REF "92387b1ef8fad15196dd5f7fb4931444a68bc93a")
+
+if(NOT EXISTS "${DOWNLOADS}/opencv.git")
+ message(STATUS "Cloning")
+ vcpkg_execute_required_process(
+ COMMAND ${GIT} clone --bare ${GIT_URL} ${DOWNLOADS}/opencv.git
+ WORKING_DIRECTORY ${DOWNLOADS}
+ LOGNAME clone
+ )
+endif()
+message(STATUS "Cloning done")
+
+if(NOT EXISTS "${CURRENT_BUILDTREES_DIR}/src/.git")
+ message(STATUS "Adding worktree and patching")
+ vcpkg_execute_required_process(
+ COMMAND ${GIT} worktree add -f --detach ${CURRENT_BUILDTREES_DIR}/src ${GIT_REF}
+ WORKING_DIRECTORY ${DOWNLOADS}/opencv.git
+ LOGNAME worktree
+ )
+ message(STATUS "Patching")
+ vcpkg_execute_required_process(
+ COMMAND ${GIT} am ${CMAKE_CURRENT_LIST_DIR}/0001-OpenCV-should-follow-FHS-like-conventions.patch --ignore-whitespace --whitespace=fix
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/src
+ LOGNAME patch
+ )
+endif()
+message(STATUS "Adding worktree and patching done")
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src
+ OPTIONS
+ -DBUILD_ZLIB=OFF
+ -DINSTALL_CREATE_DISTRIB=ON
+ -DBUILD_opencv_python2=OFF
+ -DBUILD_opencv_python3=OFF
+ -DBUILD_opencv_apps=OFF
+ -DBUILD_DOCS=OFF
+ -DBUILD_TESTS=OFF
+ -DBUILD_PERF_TESTS=OFF
+ -DOpenCV_DISABLE_ARCH_PATH=ON
+ -DWITH_FFMPEG=OFF
+ OPTIONS_DEBUG
+ -DINSTALL_HEADERS=OFF
+ -DINSTALL_OTHER=OFF
+)
+
+vcpkg_build_cmake()
+vcpkg_install_cmake()
+
+file(RENAME ${CURRENT_PACKAGES_DIR}/cmake/OpenCVConfig-version.cmake ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVConfig-version.cmake)
+file(RENAME ${CURRENT_PACKAGES_DIR}/cmake/OpenCVConfig.cmake ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVConfig.cmake)
+file(RENAME ${CURRENT_PACKAGES_DIR}/cmake/OpenCVModules.cmake ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules.cmake)
+file(RENAME ${CURRENT_PACKAGES_DIR}/cmake/OpenCVModules-release.cmake ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules-release.cmake)
+file(RENAME ${CURRENT_PACKAGES_DIR}/debug/cmake/OpenCVModules-debug.cmake ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules-debug.cmake)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/cmake)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/cmake)
+vcpkg_copy_pdbs()