diff options
| author | Stefano Sinigardi <stesinigardi@hotmail.com> | 2019-09-24 21:58:38 +0200 |
|---|---|---|
| committer | Phil Christensen <philc@microsoft.com> | 2019-09-24 12:58:38 -0700 |
| commit | 3532a7cf3cb81ad4c56775a2b02039ee77a96eb2 (patch) | |
| tree | 4b75fb74ca896434453d3bcd2f8420254ba1d15c /ports/darknet | |
| parent | e9047ef77133cde979dc9594d089e0109702675e (diff) | |
| download | vcpkg-3532a7cf3cb81ad4c56775a2b02039ee77a96eb2.tar.gz vcpkg-3532a7cf3cb81ad4c56775a2b02039ee77a96eb2.zip | |
[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
Diffstat (limited to 'ports/darknet')
| -rw-r--r-- | ports/darknet/CONTROL | 33 | ||||
| -rw-r--r-- | ports/darknet/portfile.cmake | 75 |
2 files changed, 75 insertions, 33 deletions
diff --git a/ports/darknet/CONTROL b/ports/darknet/CONTROL index 6979c310c..a09843902 100644 --- a/ports/darknet/CONTROL +++ b/ports/darknet/CONTROL @@ -1,23 +1,38 @@ 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. Build-Depends: pthreads (windows), stb -Default-Features: weights - -Feature: opencv -Build-Depends: opencv[ffmpeg] -Description: Build darknet with support for OpenCV Feature: cuda Build-Depends: 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 Description: Download pre-built weights for test Feature: weights-train Description: Download pre-built weights for training -Feature: opencv-cuda -Build-Depends: darknet[opencv], darknet[cuda] -Description: Build darknet with support for a CUDA-enabled OpenCV +Feature: full +Build-Depends: darknet[opencv-cuda], darknet[cudnn], darknet[weights], darknet[weights-train] +Description: Build darknet fully-featured diff --git a/ports/darknet/portfile.cmake b/ports/darknet/portfile.cmake index a18c97a91..6cd1c781e 100644 --- a/ports/darknet/portfile.cmake +++ b/ports/darknet/portfile.cmake @@ -11,15 +11,41 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO AlexeyAB/darknet - REF b2d795e34e1d734d0f451ce9847a0e6b68c32351 - SHA512 1964aa0d768d37fc614983718aede8b29e562fd8120116b7cd7a1331bb8a3256e28c01cdff6f19bbe7b9d6289b3292188205f362bae38393cee33d8a2e6a5273 + REF 35346d2ef80dc46b9eb4fba57da1737a49f4743e + SHA512 a905a5e42c4ecfdf2b8276fc565b82e30c97e249c0530b403d149a8e6276bb3852a956869c21efbe092799f3743cf529a577fb03275cfcfcc8322b92e9de0ff6 HEAD_REF master ) -vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS - "cuda" ENABLE_CUDA - "opencv" ENABLE_OPENCV -) +# enable CUDA inside DARKNET +set(ENABLE_CUDA OFF) +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 (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 file(REMOVE_RECURSE ${SOURCE_PATH}/3rdparty) file(REMOVE ${SOURCE_PATH}/cmake/Modules/FindPThreads_windows.cmake) +file(REMOVE ${SOURCE_PATH}/cmake/Modules/FindCUDNN.cmake) vcpkg_configure_cmake( 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 OPTIONS -DINSTALL_BIN_DIR:STRING=bin -DINSTALL_LIB_DIR:STRING=lib - ${FEATURE_OPTIONS} + -DENABLE_CUDA=${ENABLE_CUDA} + -DENABLE_CUDNN=${ENABLE_CUDNN} + -DENABLE_OPENCV=${ENABLE_OPENCV} ) 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}) file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/uselib_track${EXECUTABLE_SUFFIX}) endif() -file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/darknet/) -file(RENAME ${CURRENT_PACKAGES_DIR}/bin/darknet${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/darknet/darknet${EXECUTABLE_SUFFIX}) -file(RENAME ${CURRENT_PACKAGES_DIR}/bin/uselib${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/darknet/uselib${EXECUTABLE_SUFFIX}) +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/${PORT}) +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/${PORT}/uselib${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() -file(COPY ${SOURCE_PATH}/cfg DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet) -file(COPY ${SOURCE_PATH}/data DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet) -vcpkg_copy_tool_dependencies(${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/${PORT}) +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) @@ -107,21 +136,19 @@ endif() 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/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) - file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov3.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet) - file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov2.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet) - 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/yolov2-tiny.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/${PORT}) + 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/${PORT}) endif() 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/darknet19_448.conv.23 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/${PORT}) endif() |
