aboutsummaryrefslogtreecommitdiff
path: root/ports/darknet
diff options
context:
space:
mode:
authorStefano Sinigardi <stesinigardi@hotmail.com>2019-09-24 21:58:38 +0200
committerPhil Christensen <philc@microsoft.com>2019-09-24 12:58:38 -0700
commit3532a7cf3cb81ad4c56775a2b02039ee77a96eb2 (patch)
tree4b75fb74ca896434453d3bcd2f8420254ba1d15c /ports/darknet
parente9047ef77133cde979dc9594d089e0109702675e (diff)
downloadvcpkg-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/CONTROL33
-rw-r--r--ports/darknet/portfile.cmake75
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()