[cudnn] add port and enable it in darknet (#7536)

* [cudnn] add port and enable it in darknet
* [OpenCV4] fix ffmpeg feature on uwp
* [darknet] enable integration with cuda/cudnn also with opencv3
* [darknet] update to latest revision
This commit is contained in:
Stefano Sinigardi 2019-09-24 21:58:38 +02:00 committed by Phil Christensen
parent e9047ef771
commit 3532a7cf3c
14 changed files with 373 additions and 108 deletions

View File

@ -1,3 +1,3 @@
Source: cuda Source: cuda
Version: 9.0 Version: 10.1
Description: A parallel computing platform and programming model Description: A parallel computing platform and programming model

View File

@ -1,4 +1,4 @@
# Due to the complexity involved, this package doesn't install CUDA. It instead verifies that CUDA is installed. # This package doesn't install CUDA. It instead verifies that CUDA is installed.
# Other packages can depend on this package to declare a dependency on CUDA. # Other packages can depend on this package to declare a dependency on CUDA.
# If this package is installed, we assume that CUDA is properly installed. # If this package is installed, we assume that CUDA is properly installed.
@ -9,8 +9,7 @@ find_program(NVCC
ENV CUDA_BIN_PATH ENV CUDA_BIN_PATH
PATH_SUFFIXES bin bin64 PATH_SUFFIXES bin bin64
DOC "Toolkit location." DOC "Toolkit location."
NO_DEFAULT_PATH NO_DEFAULT_PATH)
)
set(error_code 1) set(error_code 1)
if (NVCC) if (NVCC)
@ -20,12 +19,12 @@ if (NVCC)
RESULT_VARIABLE error_code) RESULT_VARIABLE error_code)
endif() endif()
set(CUDA_REQUIRED_VERSION "V9.0.0") #note: this port must be kept in sync with CUDNN port: every time one is upgraded, the other must be too
set(CUDA_REQUIRED_VERSION "V10.1.0")
if (error_code) if (error_code)
message(FATAL_ERROR "Could not find CUDA. Before continuing, please download and install CUDA (${CUDA_REQUIRED_VERSION} or higher) from:" message(FATAL_ERROR "Could not find CUDA. Before continuing, please download and install CUDA (${CUDA_REQUIRED_VERSION} or higher) from:"
"\n https://developer.nvidia.com/cuda-downloads\n" "\n https://developer.nvidia.com/cuda-downloads\n")
"\nAlso ensure vcpkg has been rebuilt with the latest version (v0.0.104 or later)")
endif() endif()
# Sample output: # Sample output:
@ -36,12 +35,12 @@ endif()
string(REGEX MATCH "V([0-9]+)\\.([0-9]+)\\.([0-9]+)" CUDA_VERSION ${NVCC_OUTPUT}) string(REGEX MATCH "V([0-9]+)\\.([0-9]+)\\.([0-9]+)" CUDA_VERSION ${NVCC_OUTPUT})
message(STATUS "Found CUDA ${CUDA_VERSION}") message(STATUS "Found CUDA ${CUDA_VERSION}")
set(CUDA_VERSION_MAJOR ${CMAKE_MATCH_1}) set(CUDA_VERSION_MAJOR ${CMAKE_MATCH_1})
#set(CUDA_VERSION_MINOR ${CMAKE_MATCH_2}) set(CUDA_VERSION_MINOR ${CMAKE_MATCH_2})
#set(CUDA_VERSION_PATCH ${CMAKE_MATCH_3}) set(CUDA_VERSION_PATCH ${CMAKE_MATCH_3})
if (CUDA_VERSION_MAJOR LESS 9) if (CUDA_VERSION_MAJOR LESS 10 AND CUDA_VERSION_MINOR LESS 1)
message(FATAL_ERROR "CUDA ${CUDA_VERSION} but ${CUDA_REQUIRED_VERSION} is required. Please download and install a more recent version of CUDA from:" message(FATAL_ERROR "CUDA ${CUDA_VERSION} found, but ${CUDA_REQUIRED_VERSION} is required. Please download and install a more recent version of CUDA from:"
"\n https://developer.nvidia.com/cuda-downloads\n") "\n https://developer.nvidia.com/cuda-downloads\n")
endif() endif()
SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) SET(VCPKG_POLICY_EMPTY_PACKAGE enabled)

4
ports/cudnn/CONTROL Normal file
View File

@ -0,0 +1,4 @@
Source: cudnn
Version: 7.6
Description: NVIDIA's cuDNN deep neural network acceleration library
Build-Depends: cuda

View File

@ -0,0 +1,90 @@
# Distributed under the OSI-approved BSD 3-Clause License.
#.rst:
# FindCUDNN
# --------
#
# Result Variables
# ^^^^^^^^^^^^^^^^
#
# This module will set the following variables in your project::
#
# ``CUDNN_FOUND``
# True if CUDNN found on the local system
#
# ``CUDNN_INCLUDE_DIRS``
# Location of CUDNN header files.
#
# ``CUDNN_LIBRARIES``
# The CUDNN libraries.
#
# ``CuDNN::CuDNN``
# The CUDNN target
#
include(FindPackageHandleStandardArgs)
if(NOT CUDNN_INCLUDE_DIR)
find_path(CUDNN_INCLUDE_DIR cudnn.h
HINTS ${CUDA_HOME} ${CUDA_TOOLKIT_ROOT_DIR} $ENV{cudnn} $ENV{CUDNN}
PATH_SUFFIXES cuda/include include)
endif()
if(NOT CUDNN_LIBRARY)
find_library(CUDNN_LIBRARY cudnn
HINTS ${CUDA_HOME} ${CUDA_TOOLKIT_ROOT_DIR} $ENV{cudnn} $ENV{CUDNN}
PATH_SUFFIXES lib lib64 cuda/lib cuda/lib64 lib/x64)
endif()
if(EXISTS "${CUDNN_INCLUDE_DIR}/cudnn.h")
file(READ ${CUDNN_INCLUDE_DIR}/cudnn.h CUDNN_HEADER_CONTENTS)
string(REGEX MATCH "define CUDNN_MAJOR * +([0-9]+)"
CUDNN_VERSION_MAJOR "${CUDNN_HEADER_CONTENTS}")
string(REGEX REPLACE "define CUDNN_MAJOR * +([0-9]+)" "\\1"
CUDNN_VERSION_MAJOR "${CUDNN_VERSION_MAJOR}")
string(REGEX MATCH "define CUDNN_MINOR * +([0-9]+)"
CUDNN_VERSION_MINOR "${CUDNN_HEADER_CONTENTS}")
string(REGEX REPLACE "define CUDNN_MINOR * +([0-9]+)" "\\1"
CUDNN_VERSION_MINOR "${CUDNN_VERSION_MINOR}")
string(REGEX MATCH "define CUDNN_PATCHLEVEL * +([0-9]+)"
CUDNN_VERSION_PATCH "${CUDNN_HEADER_CONTENTS}")
string(REGEX REPLACE "define CUDNN_PATCHLEVEL * +([0-9]+)" "\\1"
CUDNN_VERSION_PATCH "${CUDNN_VERSION_PATCH}")
if(NOT CUDNN_VERSION_MAJOR)
set(CUDNN_VERSION "?")
else()
set(CUDNN_VERSION "${CUDNN_VERSION_MAJOR}.${CUDNN_VERSION_MINOR}.${CUDNN_VERSION_PATCH}")
endif()
endif()
set(CUDNN_INCLUDE_DIRS ${CUDNN_INCLUDE_DIR})
set(CUDNN_LIBRARIES ${CUDNN_LIBRARY})
mark_as_advanced(CUDNN_LIBRARY CUDNN_INCLUDE_DIR)
find_package_handle_standard_args(CUDNN
REQUIRED_VARS CUDNN_INCLUDE_DIR CUDNN_LIBRARY
VERSION_VAR CUDNN_VERSION
)
if(WIN32)
set(CUDNN_DLL_DIR ${CUDNN_INCLUDE_DIR})
list(TRANSFORM CUDNN_DLL_DIR APPEND "/../bin")
find_file(CUDNN_LIBRARY_DLL NAMES cudnn64_${CUDNN_VERSION_MAJOR}.dll PATHS ${CUDNN_DLL_DIR})
endif()
if( CUDNN_FOUND AND NOT TARGET CuDNN::CuDNN )
if( EXISTS "${CUDNN_LIBRARY_DLL}" )
add_library( CuDNN::CuDNN SHARED IMPORTED )
set_target_properties( CuDNN::CuDNN PROPERTIES
IMPORTED_LOCATION "${CUDNN_LIBRARY_DLL}"
IMPORTED_IMPLIB "${CUDNN_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${CUDNN_INCLUDE_DIR}"
IMPORTED_LINK_INTERFACE_LANGUAGES "C" )
else()
add_library( CuDNN::CuDNN UNKNOWN IMPORTED )
set_target_properties( CuDNN::CuDNN PROPERTIES
IMPORTED_LOCATION "${CUDNN_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${CUDNN_INCLUDE_DIR}"
IMPORTED_LINK_INTERFACE_LANGUAGES "C" )
endif()
endif()

View File

@ -0,0 +1,62 @@
include(vcpkg_common_functions)
if(VCPKG_TARGET_IS_UWP OR VCPKG_TARGET_IS_OSX)
message(FATAL_ERROR "This port is only for Windows Desktop or Linux")
endif()
if(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
message(FATAL_ERROR "This port is only for x64 architectures")
endif()
vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY ONLY_DYNAMIC_CRT)
#note: this port must be kept in sync with CUDA port: every time one is upgraded, the other must be too
set(CUDNN_VERSION "7.6.0")
set(CUDNN_FULL_VERSION "${CUDNN_VERSION}-cuda10.1_0")
if(VCPKG_TARGET_IS_WINDOWS)
set(CUDNN_DOWNLOAD_LINK "https://anaconda.org/anaconda/cudnn/${CUDNN_VERSION}/download/win-64/cudnn-${CUDNN_FULL_VERSION}.tar.bz2")
set(SHA512_CUDNN "c0218407e7bc2b3c1497f1709dedee345bc619603ec0efa094e392888c0d513d645a1241501f9b406f688defa811578f36b49f456eb533535ecd526702156eea")
set(CUDNN_OS "windows")
elseif(VCPKG_TARGET_IS_LINUX)
set(CUDNN_DOWNLOAD_LINK "https://anaconda.org/anaconda/cudnn/${CUDNN_VERSION}/download/linux-64/cudnn-${CUDNN_FULL_VERSION}.tar.bz2")
set(SHA512_CUDNN "128ccdc0ec24a1133947d7a8eff6cd8edc224134fa5065a11a1a01a99dbaee7d799db1454e0a59e411cf6db244f8c2420c160488a5dd4830addc3578b2011e3d")
set(CUDNN_OS "linux")
endif()
vcpkg_download_distfile(ARCHIVE
URLS ${CUDNN_DOWNLOAD_LINK}
FILENAME "cudnn-${CUDNN_FULL_VERSION}-${CUDNN_OS}.tar.bz2"
SHA512 ${SHA512_CUDNN}
)
vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
NO_REMOVE_ONE_LEVEL
)
string(REPLACE "." ";" VERSION_LIST ${CUDNN_VERSION})
list(GET VERSION_LIST 0 CUDNN_VERSION_MAJOR)
list(GET VERSION_LIST 1 CUDNN_VERSION_MINOR)
list(GET VERSION_LIST 2 CUDNN_VERSION_PATCH)
if(VCPKG_TARGET_IS_WINDOWS)
file(INSTALL "${SOURCE_PATH}/Library/include/cudnn.h" DESTINATION ${CURRENT_PACKAGES_DIR}/include)
file(INSTALL "${SOURCE_PATH}/Library/lib/x64/cudnn.lib" DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(INSTALL "${SOURCE_PATH}/Library/bin/cudnn64_${CUDNN_VERSION_MAJOR}.dll" DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
file(INSTALL "${SOURCE_PATH}/Library/lib/x64/cudnn.lib" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
file(INSTALL "${SOURCE_PATH}/Library/bin/cudnn64_${CUDNN_VERSION_MAJOR}.dll" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
elseif(VCPKG_TARGET_IS_LINUX)
file(INSTALL "${SOURCE_PATH}/include/cudnn.h" DESTINATION ${CURRENT_PACKAGES_DIR}/include)
file(INSTALL "${SOURCE_PATH}/lib/libcudnn.so.${CUDNN_VERSION}" DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(INSTALL "${SOURCE_PATH}/lib/libcudnn.so.${CUDNN_VERSION_MAJOR}" DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(INSTALL "${SOURCE_PATH}/lib/libcudnn.so" DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(INSTALL "${SOURCE_PATH}/lib/libcudnn.so.${CUDNN_VERSION}" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
file(INSTALL "${SOURCE_PATH}/lib/libcudnn.so.${CUDNN_VERSION_MAJOR}" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
file(INSTALL "${SOURCE_PATH}/lib/libcudnn.so" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
endif()
file(INSTALL "${SOURCE_PATH}/info/LICENSE.txt" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/FindCUDNN.cmake" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})

View File

@ -0,0 +1,8 @@
set(CUDNN_PREV_MODULE_PATH ${CMAKE_MODULE_PATH})
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
if(NOT CUDNN_LIBRARIES)
_find_package(${ARGS})
endif()
set(CMAKE_MODULE_PATH ${CUDNN_PREV_MODULE_PATH})

View File

@ -1,23 +1,38 @@
Source: darknet Source: darknet
Version: 0.2.5-6 Version: 0.2.5.1
Description: Darknet is an open source neural network framework written in C and CUDA. You only look once (YOLO) is a state-of-the-art, real-time object detection system, best example of darknet functionalities. Description: Darknet is an open source neural network framework written in C and CUDA. You only look once (YOLO) is a state-of-the-art, real-time object detection system, best example of darknet functionalities.
Build-Depends: pthreads (windows), stb Build-Depends: pthreads (windows), stb
Default-Features: weights
Feature: opencv
Build-Depends: opencv[ffmpeg]
Description: Build darknet with support for OpenCV
Feature: cuda Feature: cuda
Build-Depends: cuda Build-Depends: cuda
Description: Build darknet with support for CUDA Description: Build darknet with support for CUDA
Feature: cudnn
Build-Depends: darknet[cuda]
Description: Build darknet with support for CUDNN
Feature: opencv-base
Build-Depends: opencv[ffmpeg]
Description: Build darknet with support for OpenCV
Feature: opencv-cuda
Build-Depends: opencv[ffmpeg], opencv[cuda]
Description: Build darknet with support for a CUDA-enabled OpenCV
Feature: opencv3-base
Build-Depends: opencv3[ffmpeg]
Description: Build darknet with support for OpenCV3
Feature: opencv3-cuda
Build-Depends: opencv3[ffmpeg], opencv3[cuda]
Description: Build darknet with support for a CUDA-enabled OpenCV3
Feature: weights Feature: weights
Description: Download pre-built weights for test Description: Download pre-built weights for test
Feature: weights-train Feature: weights-train
Description: Download pre-built weights for training Description: Download pre-built weights for training
Feature: opencv-cuda Feature: full
Build-Depends: darknet[opencv], darknet[cuda] Build-Depends: darknet[opencv-cuda], darknet[cudnn], darknet[weights], darknet[weights-train]
Description: Build darknet with support for a CUDA-enabled OpenCV Description: Build darknet fully-featured

View File

@ -11,15 +11,41 @@ include(vcpkg_common_functions)
vcpkg_from_github( vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH OUT_SOURCE_PATH SOURCE_PATH
REPO AlexeyAB/darknet REPO AlexeyAB/darknet
REF b2d795e34e1d734d0f451ce9847a0e6b68c32351 REF 35346d2ef80dc46b9eb4fba57da1737a49f4743e
SHA512 1964aa0d768d37fc614983718aede8b29e562fd8120116b7cd7a1331bb8a3256e28c01cdff6f19bbe7b9d6289b3292188205f362bae38393cee33d8a2e6a5273 SHA512 a905a5e42c4ecfdf2b8276fc565b82e30c97e249c0530b403d149a8e6276bb3852a956869c21efbe092799f3743cf529a577fb03275cfcfcc8322b92e9de0ff6
HEAD_REF master HEAD_REF master
) )
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS # enable CUDA inside DARKNET
"cuda" ENABLE_CUDA set(ENABLE_CUDA OFF)
"opencv" ENABLE_OPENCV if("cuda" IN_LIST FEATURES)
) set(ENABLE_CUDA ON)
endif()
set(ENABLE_OPENCV OFF)
# enable OPENCV (basic version) inside DARKNET
if("opencv-base" IN_LIST FEATURES)
set(ENABLE_OPENCV ON)
endif()
if("opencv3-base" IN_LIST FEATURES)
set(ENABLE_OPENCV ON)
endif()
# enable OPENCV (with its own CUDA feature enabled) inside DARKNET
# (note: this does not mean that DARKNET itself will have CUDA support since by design it is independent, to have it you must require both opencv-cuda and cuda features!)
# DARKNET will be automatically able to distinguish an OpenCV that is built with or without CUDA support.
if("opencv-cuda" IN_LIST FEATURES)
set(ENABLE_OPENCV ON)
endif()
if("opencv3-cuda" IN_LIST FEATURES)
set(ENABLE_OPENCV ON)
endif()
# enable CUDNN inside DARKNET (which depends on the "cuda" feature by design)
set(ENABLE_CUDNN OFF)
if("cudnn" IN_LIST FEATURES)
set(ENABLE_CUDNN ON)
endif()
if ("cuda" IN_LIST FEATURES) if ("cuda" IN_LIST FEATURES)
if (NOT VCPKG_CMAKE_SYSTEM_NAME AND NOT ENV{CUDACXX}) if (NOT VCPKG_CMAKE_SYSTEM_NAME AND NOT ENV{CUDACXX})
@ -67,15 +93,18 @@ endif()
#make sure we don't use any integrated pre-built library nor any unnecessary CMake module #make sure we don't use any integrated pre-built library nor any unnecessary CMake module
file(REMOVE_RECURSE ${SOURCE_PATH}/3rdparty) file(REMOVE_RECURSE ${SOURCE_PATH}/3rdparty)
file(REMOVE ${SOURCE_PATH}/cmake/Modules/FindPThreads_windows.cmake) file(REMOVE ${SOURCE_PATH}/cmake/Modules/FindPThreads_windows.cmake)
file(REMOVE ${SOURCE_PATH}/cmake/Modules/FindCUDNN.cmake)
vcpkg_configure_cmake( vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH} SOURCE_PATH ${SOURCE_PATH}
DISABLE_PARALLEL_CONFIGURE #since darknet configures a file inside source tree, it is better to disable parallel configure DISABLE_PARALLEL_CONFIGURE
PREFER_NINJA PREFER_NINJA
OPTIONS OPTIONS
-DINSTALL_BIN_DIR:STRING=bin -DINSTALL_BIN_DIR:STRING=bin
-DINSTALL_LIB_DIR:STRING=lib -DINSTALL_LIB_DIR:STRING=lib
${FEATURE_OPTIONS} -DENABLE_CUDA=${ENABLE_CUDA}
-DENABLE_CUDNN=${ENABLE_CUDNN}
-DENABLE_OPENCV=${ENABLE_OPENCV}
) )
vcpkg_install_cmake() vcpkg_install_cmake()
@ -91,15 +120,15 @@ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/uselib${EXECUTABLE_SUFFIX})
if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/bin/uselib_track${EXECUTABLE_SUFFIX}) if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/bin/uselib_track${EXECUTABLE_SUFFIX})
file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/uselib_track${EXECUTABLE_SUFFIX}) file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/uselib_track${EXECUTABLE_SUFFIX})
endif() endif()
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/darknet/) file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/${PORT})
file(RENAME ${CURRENT_PACKAGES_DIR}/bin/darknet${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/darknet/darknet${EXECUTABLE_SUFFIX}) file(RENAME ${CURRENT_PACKAGES_DIR}/bin/darknet${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/${PORT}/darknet${EXECUTABLE_SUFFIX})
file(RENAME ${CURRENT_PACKAGES_DIR}/bin/uselib${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/darknet/uselib${EXECUTABLE_SUFFIX}) file(RENAME ${CURRENT_PACKAGES_DIR}/bin/uselib${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/${PORT}/uselib${EXECUTABLE_SUFFIX})
if(EXISTS ${CURRENT_PACKAGES_DIR}/bin/uselib_track${EXECUTABLE_SUFFIX}) if(EXISTS ${CURRENT_PACKAGES_DIR}/bin/uselib_track${EXECUTABLE_SUFFIX})
file(RENAME ${CURRENT_PACKAGES_DIR}/bin/uselib_track${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/darknet/uselib_track${EXECUTABLE_SUFFIX}) file(RENAME ${CURRENT_PACKAGES_DIR}/bin/uselib_track${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/${PORT}/uselib_track${EXECUTABLE_SUFFIX})
endif() endif()
file(COPY ${SOURCE_PATH}/cfg DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet) file(COPY ${SOURCE_PATH}/cfg DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
file(COPY ${SOURCE_PATH}/data DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet) file(COPY ${SOURCE_PATH}/data DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/darknet) vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
if(VCPKG_LIBRARY_LINKAGE STREQUAL static) if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
@ -107,21 +136,19 @@ endif()
vcpkg_fixup_cmake_targets() vcpkg_fixup_cmake_targets()
file(COPY ${SOURCE_PATH}/cmake/Modules/FindCUDNN.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/darknet)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/darknet RENAME copyright) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
if("weights" IN_LIST FEATURES) if("weights" IN_LIST FEATURES)
file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov3.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet) file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov3.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov2.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet) file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov2.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov3-tiny.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet) file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov3-tiny.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov2-tiny.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet) file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov2-tiny.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
endif() endif()
if("weights-train" IN_LIST FEATURES) if("weights-train" IN_LIST FEATURES)
file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/darknet53.conv.74 DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet) file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/darknet53.conv.74 DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/darknet19_448.conv.23 DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet) file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/darknet19_448.conv.23 DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
endif() endif()

View File

@ -11,6 +11,19 @@ index c2fda8f..3f7dfdc 100644
# removing APPCONTAINER from modules to run from console # removing APPCONTAINER from modules to run from console
# in case of usual starting of WinRT test apps output is missing # 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 # so starting of console version w/o APPCONTAINER is required to get test results
diff --git a/modules/core/src/utils/datafile.cpp b/modules/core/src/utils/datafile.cpp
index f1107b0..c613ca2 100644
--- a/modules/core/src/utils/datafile.cpp
+++ b/modules/core/src/utils/datafile.cpp
@@ -108,7 +108,7 @@ static cv::String getModuleLocation(const void* addr)
CV_UNUSED(addr);
#ifdef _WIN32
HMODULE m = 0;
-#if _WIN32_WINNT >= 0x0501
+#if (_WIN32_WINNT >= 0x0501) && (!WINRT_STORE)
::GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
reinterpret_cast<LPCTSTR>(addr),
&m);
diff --git a/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp b/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp diff --git a/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp b/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp
index f4147f3..b92efdd 100644 index f4147f3..b92efdd 100644
--- a/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp --- a/modules/highgui/include/opencv2/highgui/highgui_winrt.hpp

View File

@ -12,7 +12,7 @@ Feature: flann
Description: opencv_flann module Description: opencv_flann module
Feature: contrib Feature: contrib
Build-Depends: hdf5 (!uwp) Build-Depends: opencv3[dnn], hdf5 (!uwp)
Description: opencv_contrib module Description: opencv_contrib module
Feature: cuda Feature: cuda
@ -20,6 +20,7 @@ Build-Depends: opencv3[contrib], cuda
Description: CUDA support for opencv Description: CUDA support for opencv
Feature: dnn Feature: dnn
Build-Depends: opencv3[flann]
Description: Enable dnn module Description: Enable dnn module
Feature: eigen Feature: eigen
@ -53,7 +54,6 @@ Feature: opengl
Build-Depends: opengl Build-Depends: opengl
Description: opengl support for opencv Description: opengl support for opencv
Feature: ovis Feature: ovis
Build-Depends: opencv3[contrib], ogre Build-Depends: opencv3[contrib], ogre
Description: opencv_ovis module Description: opencv_ovis module
@ -67,7 +67,7 @@ Build-Depends: qt5
Description: Qt GUI support for opencv Description: Qt GUI support for opencv
Feature: sfm Feature: sfm
Build-Depends: opencv3[contrib], opencv3[flann], eigen3, glog, gflags, ceres Build-Depends: opencv3[contrib], eigen3, glog, gflags, ceres
Description: opencv_sfm module Description: opencv_sfm module
Feature: tbb Feature: tbb

View File

@ -74,7 +74,18 @@ if("dnn" IN_LIST FEATURES)
) )
endif() endif()
# Build image quality module when building with 'contrib' feature and not UWP.
set(BUILD_opencv_quality OFF)
if("contrib" IN_LIST FEATURES) if("contrib" IN_LIST FEATURES)
if (VCPKG_TARGET_IS_UWP)
set(BUILD_opencv_quality OFF)
message(WARNING "The image quality module (quality) does not build for UWP, the module has been disabled.")
# The hdf module is silently disabled by OpenCVs buildsystem if HDF5 is not detected.
message(WARNING "The hierarchical data format module (hdf) depends on HDF5 which doesn't support UWP, the module has been disabled.")
else()
set(BUILD_opencv_quality CMAKE_DEPENDS_IN_PROJECT_ONLY)
endif()
vcpkg_from_github( vcpkg_from_github(
OUT_SOURCE_PATH CONTRIB_SOURCE_PATH OUT_SOURCE_PATH CONTRIB_SOURCE_PATH
REPO opencv/opencv_contrib REPO opencv/opencv_contrib
@ -90,12 +101,6 @@ if("contrib" IN_LIST FEATURES)
SHA512 c16e60a6c4bb4de3ab39b876ae3c3f320ea56f69c93e9303bd2dff8760841dcd71be4161fff8bc71e8fe4fe8747fa8465d49d6bd8f5ebcdaea161f4bc2da7c93 SHA512 c16e60a6c4bb4de3ab39b876ae3c3f320ea56f69c93e9303bd2dff8760841dcd71be4161fff8bc71e8fe4fe8747fa8465d49d6bd8f5ebcdaea161f4bc2da7c93
) )
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
)
function(download_opencv_3rdparty ID COMMIT HASH) function(download_opencv_3rdparty ID COMMIT HASH)
if(NOT EXISTS "${DOWNLOADS}/opencv-cache/${ID}/${COMMIT}.stamp") if(NOT EXISTS "${DOWNLOADS}/opencv-cache/${ID}/${COMMIT}.stamp")
vcpkg_download_distfile(OCV_DOWNLOAD vcpkg_download_distfile(OCV_DOWNLOAD
@ -184,11 +189,38 @@ if(WITH_IPP)
endif() endif()
set(WITH_MSMF ON) set(WITH_MSMF ON)
if(VCPKG_TARGET_IS_UWP) if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP)
set(WITH_MSMF OFF) set(WITH_MSMF OFF)
endif() endif()
set(WITH_ZLIB ON) if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
if (WITH_TBB)
message(WARNING "TBB is currently unsupported in this build configuration, turning it off")
set(WITH_TBB OFF)
endif()
if (WITH_VTK)
message(WARNING "VTK is currently unsupported in this build configuration, turning it off")
set(WITH_VTK OFF)
endif()
if (VCPKG_TARGET_IS_WINDOWS AND BUILD_opencv_ovis)
message(WARNING "OVIS is currently unsupported in this build configuration, turning it off")
set(BUILD_opencv_ovis OFF)
endif()
endif()
if("ffmpeg" IN_LIST FEATURES)
if(VCPKG_TARGET_IS_UWP)
set(VCPKG_C_FLAGS "/sdl- ${VCPKG_C_FLAGS}")
set(VCPKG_CXX_FLAGS "/sdl- ${VCPKG_CXX_FLAGS}")
endif()
endif()
if("qt" IN_LIST FEATURES)
list(APPEND ADDITIONAL_BUILD_FLAGS "-DCMAKE_AUTOMOC=ON")
endif()
set(BUILD_opencv_line_descriptor ON) set(BUILD_opencv_line_descriptor ON)
set(BUILD_opencv_saliency ON) set(BUILD_opencv_saliency ON)
set(BUILD_opencv_bgsegm ON) set(BUILD_opencv_bgsegm ON)
@ -197,14 +229,11 @@ if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm")
set(BUILD_opencv_saliency OFF) set(BUILD_opencv_saliency OFF)
set(BUILD_opencv_bgsegm OFF) set(BUILD_opencv_bgsegm OFF)
endif() endif()
if (VCPKG_TARGET_IS_UWP)
set(BUILD_opencv_quality OFF)
endif()
vcpkg_configure_cmake( vcpkg_configure_cmake(
PREFER_NINJA PREFER_NINJA
SOURCE_PATH ${SOURCE_PATH} SOURCE_PATH ${SOURCE_PATH}
OPTIONS ${FEATURE_OPTIONS} OPTIONS
###### ocv_options ###### ocv_options
-DOpenCV_INSTALL_BINARIES_PREFIX= -DOpenCV_INSTALL_BINARIES_PREFIX=
-DOPENCV_LIB_INSTALL_PATH=lib -DOPENCV_LIB_INSTALL_PATH=lib
@ -216,63 +245,57 @@ vcpkg_configure_cmake(
# Do not build docs/examples # Do not build docs/examples
-DBUILD_DOCS=OFF -DBUILD_DOCS=OFF
-DBUILD_EXAMPLES=OFF -DBUILD_EXAMPLES=OFF
# Do not build integrated libraries, use external ones whenever possible ###### Disable build 3rd party libs
-DBUILD_JASPER=OFF -DBUILD_JASPER=OFF
-DBUILD_JPEG=OFF -DBUILD_JPEG=OFF
-DBUILD_OPENEXR=OFF -DBUILD_OPENEXR=OFF
-DBUILD_PACKAGE=OFF
-DBUILD_PERF_TESTS=OFF
-DBUILD_PNG=OFF -DBUILD_PNG=OFF
-DBUILD_PROTOBUF=OFF
-DBUILD_TESTS=OFF
-DBUILD_TIFF=OFF -DBUILD_TIFF=OFF
-DBUILD_WEBP=OFF -DBUILD_WEBP=OFF
-DBUILD_WITH_DEBUG_INFO=ON
-DBUILD_WITH_STATIC_CRT=${BUILD_WITH_STATIC_CRT}
-DBUILD_ZLIB=OFF -DBUILD_ZLIB=OFF
# Select which OpenCV modules should be built ###### Disable build 3rd party components
-DBUILD_PROTOBUF=OFF
###### OpenCV Build components
-DBUILD_opencv_apps=OFF -DBUILD_opencv_apps=OFF
-DBUILD_opencv_bgsegm=${BUILD_opencv_bgsegm} -DBUILD_opencv_bgsegm=${BUILD_opencv_bgsegm}
-DBUILD_opencv_line_descriptor=${BUILD_opencv_line_descriptor} -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_saliency=${BUILD_opencv_saliency}
# PROTOBUF -DBUILD_PACKAGE=OFF
-DBUILD_PERF_TESTS=OFF
-DBUILD_TESTS=OFF
-DBUILD_WITH_DEBUG_INFO=ON
-DBUILD_WITH_STATIC_CRT=${BUILD_WITH_STATIC_CRT}
###### PROTOBUF
-DPROTOBUF_UPDATE_FILES=ON -DPROTOBUF_UPDATE_FILES=ON
-DUPDATE_PROTO_FILES=ON -DUPDATE_PROTO_FILES=ON
-DWITH_PROTOBUF=ON
# CMAKE # CMAKE
-DCMAKE_DISABLE_FIND_PACKAGE_Git=ON -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
-DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON
# ENABLE # ENABLE
-DENABLE_CXX11=ON -DENABLE_CXX11=ON
-DENABLE_PYLINT=OFF ###### OPENCV vars
-DOPENCV_ENABLE_NONFREE=${OPENCV_ENABLE_NONFREE}
# INSTALL
-DINSTALL_FORCE_UNIX_PATHS=ON
-DINSTALL_LICENSE=OFF
# OPENCV
-DOPENCV_CONFIG_INSTALL_PATH=share/opencv
-DOPENCV_OTHER_INSTALL_PATH=share/opencv
"-DOPENCV_DOWNLOAD_PATH=${DOWNLOADS}/opencv-cache" "-DOPENCV_DOWNLOAD_PATH=${DOWNLOADS}/opencv-cache"
${BUILD_WITH_CONTRIB_FLAG} ${BUILD_WITH_CONTRIB_FLAG}
-DOPENCV_OTHER_INSTALL_PATH=share/opencv -DOPENCV_OTHER_INSTALL_PATH=share/opencv
# WITH ###### customized properties
${FEATURE_OPPTIONS} ## Options from vcpkg_check_features()
${FEATURE_OPTIONS}
-DHALIDE_ROOT_DIR=${CURRENT_INSTALLED_DIR}
-DWITH_IPP=${WITH_IPP} -DWITH_IPP=${WITH_IPP}
-DWITH_LAPACK=OFF
-DWITH_MATLAB=OFF -DWITH_MATLAB=OFF
-DWITH_MSMF=${WITH_MSMF} -DWITH_MSMF=${WITH_MSMF}
-DWITH_PROTOBUF=ON
-DWITH_OPENCLAMDBLAS=OFF -DWITH_OPENCLAMDBLAS=OFF
-DWITH_TBB=${WITH_TBB} -DWITH_TBB=${WITH_TBB}
-DWITH_VTK=${WITH_VTK} -DWITH_VTK=${WITH_VTK}
-DWITH_ZLIB=${WITH_ZLIB} ###### WITH PROPERTIES explicitly disabled, they have problems with libraries if already installed by user and that are "involuntarily" found during install
-DCURRENT_INSTALLED_DIR=${CURRENT_INSTALLED_DIR} -DWITH_LAPACK=OFF
-DHALIDE_ROOT_DIR=${CURRENT_INSTALLED_DIR} ###### BUILD_options (mainly modules which require additional libraries)
OPTIONS_DEBUG -DBUILD_opencv_ovis=${BUILD_opencv_ovis}
-DINSTALL_HEADERS=OFF ###### The following modules are disabled for UWP
-DINSTALL_OTHER=OFF -DBUILD_opencv_quality=${BUILD_opencv_quality}
###### Additional build flags
${ADDITIONAL_BUILD_FLAGS}
) )
vcpkg_install_cmake() vcpkg_install_cmake()
@ -321,4 +344,4 @@ file(REMOVE ${CURRENT_PACKAGES_DIR}/setup_vars_opencv3.cmd)
file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/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}/LICENSE)
file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/LICENSE) file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/LICENSE)
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/opencv3 RENAME copyright) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)

View File

@ -0,0 +1,9 @@
diff --git a/modules/videoio/CMakeLists.txt b/modules/videoio/CMakeLists.txt
index 1608655..a394f04 100644
--- a/modules/videoio/CMakeLists.txt
+++ b/modules/videoio/CMakeLists.txt
@@ -1,3 +1,4 @@
+cmake_minimum_required(VERSION 3.3)
set(VIDEOIO_PLUGIN_LIST "" CACHE STRING "List of videoio backends to be compiled as plugins (ffmpeg, gstreamer)")
set(VIDEOIO_ENABLE_PLUGINS "ON" CACHE BOOL "Allow building videoio plugin support")
set(VIDEOIO_ENABLE_STRICT_PLUGIN_CHECK "ON" CACHE BOOL "Make sure OpenCV version is the same in plugin and host code")

View File

@ -1,5 +1,5 @@
Source: opencv4 Source: opencv4
Version: 4.1.1-1 Version: 4.1.1-2
Build-Depends: protobuf, zlib Build-Depends: protobuf, zlib
Homepage: https://github.com/opencv/opencv Homepage: https://github.com/opencv/opencv
Description: computer vision library Description: computer vision library

View File

@ -16,6 +16,7 @@ vcpkg_from_github(
0001-disable-downloading.patch 0001-disable-downloading.patch
0002-install-options.patch 0002-install-options.patch
0003-force-package-requirements.patch 0003-force-package-requirements.patch
0004-fix-policy-CMP0057.patch
0009-fix-uwp.patch 0009-fix-uwp.patch
) )
@ -69,6 +70,14 @@ if("vtk" IN_LIST FEATURES)
set(WITH_VTK ON) set(WITH_VTK ON)
endif() 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("cuda" IN_LIST FEATURES) if("cuda" IN_LIST FEATURES)
vcpkg_download_distfile(OCV_DOWNLOAD vcpkg_download_distfile(OCV_DOWNLOAD
URLS "https://github.com/NVIDIA/NVIDIAOpticalFlowSDK/archive/79c6cee80a2df9a196f20afd6b598a9810964c32.zip" URLS "https://github.com/NVIDIA/NVIDIAOpticalFlowSDK/archive/79c6cee80a2df9a196f20afd6b598a9810964c32.zip"
@ -96,6 +105,8 @@ if("contrib" IN_LIST FEATURES)
SHA512 8af13f0a5f350360316662c1ce5e58c21d906a58591acfbd575a8dacde19b6f3bbd694c3c199feb35c33549cf8c37e3fb4c494b586a00ad29fe3b4aeeb2d22ab SHA512 8af13f0a5f350360316662c1ce5e58c21d906a58591acfbd575a8dacde19b6f3bbd694c3c199feb35c33549cf8c37e3fb4c494b586a00ad29fe3b4aeeb2d22ab
HEAD_REF master HEAD_REF master
) )
set(BUILD_WITH_CONTRIB_FLAG "-DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules")
vcpkg_download_distfile(OCV_DOWNLOAD vcpkg_download_distfile(OCV_DOWNLOAD
URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm.i" URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm.i"
FILENAME "opencv-cache/xfeatures2d/boostdesc/0ea90e7a8f3f7876d450e4149c97c74f-boostdesc_bgm.i" FILENAME "opencv-cache/xfeatures2d/boostdesc/0ea90e7a8f3f7876d450e4149c97c74f-boostdesc_bgm.i"
@ -156,15 +167,6 @@ if("contrib" IN_LIST FEATURES)
FILENAME "opencv-cache/data/7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat" FILENAME "opencv-cache/data/7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat"
SHA512 c16e60a6c4bb4de3ab39b876ae3c3f320ea56f69c93e9303bd2dff8760841dcd71be4161fff8bc71e8fe4fe8747fa8465d49d6bd8f5ebcdaea161f4bc2da7c93 SHA512 c16e60a6c4bb4de3ab39b876ae3c3f320ea56f69c93e9303bd2dff8760841dcd71be4161fff8bc71e8fe4fe8747fa8465d49d6bd8f5ebcdaea161f4bc2da7c93
) )
set(BUILD_WITH_CONTRIB_FLAG "-DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules")
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() endif()
if(WITH_IPP) if(WITH_IPP)
@ -241,6 +243,17 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
endif() endif()
endif() endif()
if("ffmpeg" IN_LIST FEATURES)
if(VCPKG_TARGET_IS_UWP)
set(VCPKG_C_FLAGS "/sdl- ${VCPKG_C_FLAGS}")
set(VCPKG_CXX_FLAGS "/sdl- ${VCPKG_CXX_FLAGS}")
endif()
endif()
if("qt" IN_LIST FEATURES)
list(APPEND ADDITIONAL_BUILD_FLAGS "-DCMAKE_AUTOMOC=ON")
endif()
vcpkg_configure_cmake( vcpkg_configure_cmake(
PREFER_NINJA PREFER_NINJA
SOURCE_PATH ${SOURCE_PATH} SOURCE_PATH ${SOURCE_PATH}
@ -252,8 +265,9 @@ vcpkg_configure_cmake(
-DOPENCV_CONFIG_INSTALL_PATH=share/opencv -DOPENCV_CONFIG_INSTALL_PATH=share/opencv
-DOPENCV_FFMPEG_USE_FIND_PACKAGE=FFMPEG -DOPENCV_FFMPEG_USE_FIND_PACKAGE=FFMPEG
-DCMAKE_DEBUG_POSTFIX=d -DCMAKE_DEBUG_POSTFIX=d
###### Ungrouped Entries # Do not build docs/examples
-DBUILD_opencv_java=OFF -DBUILD_DOCS=OFF
-DBUILD_EXAMPLES=OFF
-Dade_DIR=${ADE_DIR} -Dade_DIR=${ADE_DIR}
###### Disable build 3rd party libs ###### Disable build 3rd party libs
-DBUILD_JASPER=OFF -DBUILD_JASPER=OFF
@ -270,11 +284,10 @@ vcpkg_configure_cmake(
-DBUILD_PROTOBUF=OFF -DBUILD_PROTOBUF=OFF
###### OpenCV Build components ###### OpenCV Build components
-DBUILD_opencv_apps=OFF -DBUILD_opencv_apps=OFF
-DBUILD_opencv_java=OFF
-DBUILD_opencv_js=OFF -DBUILD_opencv_js=OFF
-DBUILD_ANDROID_PROJECT=OFF -DBUILD_ANDROID_PROJECT=OFF
-DBUILD_ANDROID_EXAMPLES=OFF -DBUILD_ANDROID_EXAMPLES=OFF
-DBUILD_DOCS=OFF
-DBUILD_EXAMPLES=OFF
-DBUILD_PACKAGE=OFF -DBUILD_PACKAGE=OFF
-DBUILD_PERF_TESTS=OFF -DBUILD_PERF_TESTS=OFF
-DBUILD_TESTS=OFF -DBUILD_TESTS=OFF
@ -312,6 +325,8 @@ vcpkg_configure_cmake(
-DBUILD_opencv_ovis=${BUILD_opencv_ovis} -DBUILD_opencv_ovis=${BUILD_opencv_ovis}
###### The following modules are disabled for UWP ###### The following modules are disabled for UWP
-DBUILD_opencv_quality=${BUILD_opencv_quality} -DBUILD_opencv_quality=${BUILD_opencv_quality}
###### Additional build flags
${ADDITIONAL_BUILD_FLAGS}
) )
vcpkg_install_cmake() vcpkg_install_cmake()
@ -368,4 +383,4 @@ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/setup_vars_opencv4.cmd)
file(REMOVE ${CURRENT_PACKAGES_DIR}/LICENSE) file(REMOVE ${CURRENT_PACKAGES_DIR}/LICENSE)
file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/LICENSE) file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/LICENSE)
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/opencv4 RENAME copyright) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)