Skip to content

Commit 3532a7c

Browse files
cenitRastaban
authored andcommitted
[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
1 parent e9047ef commit 3532a7c

File tree

14 files changed

+373
-108
lines changed

14 files changed

+373
-108
lines changed

ports/cuda/CONTROL

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
Source: cuda
2-
Version: 9.0
3-
Description: A parallel computing platform and programming model
2+
Version: 10.1
3+
Description: A parallel computing platform and programming model

ports/cuda/portfile.cmake

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Due to the complexity involved, this package doesn't install CUDA. It instead verifies that CUDA is installed.
1+
# This package doesn't install CUDA. It instead verifies that CUDA is installed.
22
# Other packages can depend on this package to declare a dependency on CUDA.
33
# If this package is installed, we assume that CUDA is properly installed.
44

@@ -9,8 +9,7 @@ find_program(NVCC
99
ENV CUDA_BIN_PATH
1010
PATH_SUFFIXES bin bin64
1111
DOC "Toolkit location."
12-
NO_DEFAULT_PATH
13-
)
12+
NO_DEFAULT_PATH)
1413

1514
set(error_code 1)
1615
if (NVCC)
@@ -20,12 +19,12 @@ if (NVCC)
2019
RESULT_VARIABLE error_code)
2120
endif()
2221

23-
set(CUDA_REQUIRED_VERSION "V9.0.0")
22+
#note: this port must be kept in sync with CUDNN port: every time one is upgraded, the other must be too
23+
set(CUDA_REQUIRED_VERSION "V10.1.0")
2424

2525
if (error_code)
26-
message(FATAL_ERROR "Could not find CUDA. Before continuing, please download and install CUDA (${CUDA_REQUIRED_VERSION} or higher) from:"
27-
"\n https://developer.nvidia.com/cuda-downloads\n"
28-
"\nAlso ensure vcpkg has been rebuilt with the latest version (v0.0.104 or later)")
26+
message(FATAL_ERROR "Could not find CUDA. Before continuing, please download and install CUDA (${CUDA_REQUIRED_VERSION} or higher) from:"
27+
"\n https://developer.nvidia.com/cuda-downloads\n")
2928
endif()
3029

3130
# Sample output:
@@ -36,12 +35,12 @@ endif()
3635
string(REGEX MATCH "V([0-9]+)\\.([0-9]+)\\.([0-9]+)" CUDA_VERSION ${NVCC_OUTPUT})
3736
message(STATUS "Found CUDA ${CUDA_VERSION}")
3837
set(CUDA_VERSION_MAJOR ${CMAKE_MATCH_1})
39-
#set(CUDA_VERSION_MINOR ${CMAKE_MATCH_2})
40-
#set(CUDA_VERSION_PATCH ${CMAKE_MATCH_3})
38+
set(CUDA_VERSION_MINOR ${CMAKE_MATCH_2})
39+
set(CUDA_VERSION_PATCH ${CMAKE_MATCH_3})
4140

42-
if (CUDA_VERSION_MAJOR LESS 9)
43-
message(FATAL_ERROR "CUDA ${CUDA_VERSION} but ${CUDA_REQUIRED_VERSION} is required. Please download and install a more recent version of CUDA from:"
41+
if (CUDA_VERSION_MAJOR LESS 10 AND CUDA_VERSION_MINOR LESS 1)
42+
message(FATAL_ERROR "CUDA ${CUDA_VERSION} found, but ${CUDA_REQUIRED_VERSION} is required. Please download and install a more recent version of CUDA from:"
4443
"\n https://developer.nvidia.com/cuda-downloads\n")
4544
endif()
4645

47-
SET(VCPKG_POLICY_EMPTY_PACKAGE enabled)
46+
SET(VCPKG_POLICY_EMPTY_PACKAGE enabled)

ports/cudnn/CONTROL

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Source: cudnn
2+
Version: 7.6
3+
Description: NVIDIA's cuDNN deep neural network acceleration library
4+
Build-Depends: cuda

ports/cudnn/FindCUDNN.cmake

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# Distributed under the OSI-approved BSD 3-Clause License.
2+
3+
#.rst:
4+
# FindCUDNN
5+
# --------
6+
#
7+
# Result Variables
8+
# ^^^^^^^^^^^^^^^^
9+
#
10+
# This module will set the following variables in your project::
11+
#
12+
# ``CUDNN_FOUND``
13+
# True if CUDNN found on the local system
14+
#
15+
# ``CUDNN_INCLUDE_DIRS``
16+
# Location of CUDNN header files.
17+
#
18+
# ``CUDNN_LIBRARIES``
19+
# The CUDNN libraries.
20+
#
21+
# ``CuDNN::CuDNN``
22+
# The CUDNN target
23+
#
24+
25+
include(FindPackageHandleStandardArgs)
26+
27+
if(NOT CUDNN_INCLUDE_DIR)
28+
find_path(CUDNN_INCLUDE_DIR cudnn.h
29+
HINTS ${CUDA_HOME} ${CUDA_TOOLKIT_ROOT_DIR} $ENV{cudnn} $ENV{CUDNN}
30+
PATH_SUFFIXES cuda/include include)
31+
endif()
32+
33+
if(NOT CUDNN_LIBRARY)
34+
find_library(CUDNN_LIBRARY cudnn
35+
HINTS ${CUDA_HOME} ${CUDA_TOOLKIT_ROOT_DIR} $ENV{cudnn} $ENV{CUDNN}
36+
PATH_SUFFIXES lib lib64 cuda/lib cuda/lib64 lib/x64)
37+
endif()
38+
39+
if(EXISTS "${CUDNN_INCLUDE_DIR}/cudnn.h")
40+
file(READ ${CUDNN_INCLUDE_DIR}/cudnn.h CUDNN_HEADER_CONTENTS)
41+
string(REGEX MATCH "define CUDNN_MAJOR * +([0-9]+)"
42+
CUDNN_VERSION_MAJOR "${CUDNN_HEADER_CONTENTS}")
43+
string(REGEX REPLACE "define CUDNN_MAJOR * +([0-9]+)" "\\1"
44+
CUDNN_VERSION_MAJOR "${CUDNN_VERSION_MAJOR}")
45+
string(REGEX MATCH "define CUDNN_MINOR * +([0-9]+)"
46+
CUDNN_VERSION_MINOR "${CUDNN_HEADER_CONTENTS}")
47+
string(REGEX REPLACE "define CUDNN_MINOR * +([0-9]+)" "\\1"
48+
CUDNN_VERSION_MINOR "${CUDNN_VERSION_MINOR}")
49+
string(REGEX MATCH "define CUDNN_PATCHLEVEL * +([0-9]+)"
50+
CUDNN_VERSION_PATCH "${CUDNN_HEADER_CONTENTS}")
51+
string(REGEX REPLACE "define CUDNN_PATCHLEVEL * +([0-9]+)" "\\1"
52+
CUDNN_VERSION_PATCH "${CUDNN_VERSION_PATCH}")
53+
if(NOT CUDNN_VERSION_MAJOR)
54+
set(CUDNN_VERSION "?")
55+
else()
56+
set(CUDNN_VERSION "${CUDNN_VERSION_MAJOR}.${CUDNN_VERSION_MINOR}.${CUDNN_VERSION_PATCH}")
57+
endif()
58+
endif()
59+
60+
set(CUDNN_INCLUDE_DIRS ${CUDNN_INCLUDE_DIR})
61+
set(CUDNN_LIBRARIES ${CUDNN_LIBRARY})
62+
mark_as_advanced(CUDNN_LIBRARY CUDNN_INCLUDE_DIR)
63+
64+
find_package_handle_standard_args(CUDNN
65+
REQUIRED_VARS CUDNN_INCLUDE_DIR CUDNN_LIBRARY
66+
VERSION_VAR CUDNN_VERSION
67+
)
68+
69+
if(WIN32)
70+
set(CUDNN_DLL_DIR ${CUDNN_INCLUDE_DIR})
71+
list(TRANSFORM CUDNN_DLL_DIR APPEND "/../bin")
72+
find_file(CUDNN_LIBRARY_DLL NAMES cudnn64_${CUDNN_VERSION_MAJOR}.dll PATHS ${CUDNN_DLL_DIR})
73+
endif()
74+
75+
if( CUDNN_FOUND AND NOT TARGET CuDNN::CuDNN )
76+
if( EXISTS "${CUDNN_LIBRARY_DLL}" )
77+
add_library( CuDNN::CuDNN SHARED IMPORTED )
78+
set_target_properties( CuDNN::CuDNN PROPERTIES
79+
IMPORTED_LOCATION "${CUDNN_LIBRARY_DLL}"
80+
IMPORTED_IMPLIB "${CUDNN_LIBRARY}"
81+
INTERFACE_INCLUDE_DIRECTORIES "${CUDNN_INCLUDE_DIR}"
82+
IMPORTED_LINK_INTERFACE_LANGUAGES "C" )
83+
else()
84+
add_library( CuDNN::CuDNN UNKNOWN IMPORTED )
85+
set_target_properties( CuDNN::CuDNN PROPERTIES
86+
IMPORTED_LOCATION "${CUDNN_LIBRARY}"
87+
INTERFACE_INCLUDE_DIRECTORIES "${CUDNN_INCLUDE_DIR}"
88+
IMPORTED_LINK_INTERFACE_LANGUAGES "C" )
89+
endif()
90+
endif()

ports/cudnn/portfile.cmake

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
include(vcpkg_common_functions)
2+
3+
if(VCPKG_TARGET_IS_UWP OR VCPKG_TARGET_IS_OSX)
4+
message(FATAL_ERROR "This port is only for Windows Desktop or Linux")
5+
endif()
6+
7+
if(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
8+
message(FATAL_ERROR "This port is only for x64 architectures")
9+
endif()
10+
11+
vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY ONLY_DYNAMIC_CRT)
12+
13+
#note: this port must be kept in sync with CUDA port: every time one is upgraded, the other must be too
14+
set(CUDNN_VERSION "7.6.0")
15+
set(CUDNN_FULL_VERSION "${CUDNN_VERSION}-cuda10.1_0")
16+
17+
if(VCPKG_TARGET_IS_WINDOWS)
18+
set(CUDNN_DOWNLOAD_LINK "https://anaconda.org/anaconda/cudnn/${CUDNN_VERSION}/download/win-64/cudnn-${CUDNN_FULL_VERSION}.tar.bz2")
19+
set(SHA512_CUDNN "c0218407e7bc2b3c1497f1709dedee345bc619603ec0efa094e392888c0d513d645a1241501f9b406f688defa811578f36b49f456eb533535ecd526702156eea")
20+
set(CUDNN_OS "windows")
21+
elseif(VCPKG_TARGET_IS_LINUX)
22+
set(CUDNN_DOWNLOAD_LINK "https://anaconda.org/anaconda/cudnn/${CUDNN_VERSION}/download/linux-64/cudnn-${CUDNN_FULL_VERSION}.tar.bz2")
23+
set(SHA512_CUDNN "128ccdc0ec24a1133947d7a8eff6cd8edc224134fa5065a11a1a01a99dbaee7d799db1454e0a59e411cf6db244f8c2420c160488a5dd4830addc3578b2011e3d")
24+
set(CUDNN_OS "linux")
25+
endif()
26+
27+
vcpkg_download_distfile(ARCHIVE
28+
URLS ${CUDNN_DOWNLOAD_LINK}
29+
FILENAME "cudnn-${CUDNN_FULL_VERSION}-${CUDNN_OS}.tar.bz2"
30+
SHA512 ${SHA512_CUDNN}
31+
)
32+
33+
vcpkg_extract_source_archive_ex(
34+
OUT_SOURCE_PATH SOURCE_PATH
35+
ARCHIVE ${ARCHIVE}
36+
NO_REMOVE_ONE_LEVEL
37+
)
38+
39+
string(REPLACE "." ";" VERSION_LIST ${CUDNN_VERSION})
40+
list(GET VERSION_LIST 0 CUDNN_VERSION_MAJOR)
41+
list(GET VERSION_LIST 1 CUDNN_VERSION_MINOR)
42+
list(GET VERSION_LIST 2 CUDNN_VERSION_PATCH)
43+
44+
if(VCPKG_TARGET_IS_WINDOWS)
45+
file(INSTALL "${SOURCE_PATH}/Library/include/cudnn.h" DESTINATION ${CURRENT_PACKAGES_DIR}/include)
46+
file(INSTALL "${SOURCE_PATH}/Library/lib/x64/cudnn.lib" DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
47+
file(INSTALL "${SOURCE_PATH}/Library/bin/cudnn64_${CUDNN_VERSION_MAJOR}.dll" DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
48+
file(INSTALL "${SOURCE_PATH}/Library/lib/x64/cudnn.lib" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
49+
file(INSTALL "${SOURCE_PATH}/Library/bin/cudnn64_${CUDNN_VERSION_MAJOR}.dll" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
50+
elseif(VCPKG_TARGET_IS_LINUX)
51+
file(INSTALL "${SOURCE_PATH}/include/cudnn.h" DESTINATION ${CURRENT_PACKAGES_DIR}/include)
52+
file(INSTALL "${SOURCE_PATH}/lib/libcudnn.so.${CUDNN_VERSION}" DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
53+
file(INSTALL "${SOURCE_PATH}/lib/libcudnn.so.${CUDNN_VERSION_MAJOR}" DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
54+
file(INSTALL "${SOURCE_PATH}/lib/libcudnn.so" DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
55+
file(INSTALL "${SOURCE_PATH}/lib/libcudnn.so.${CUDNN_VERSION}" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
56+
file(INSTALL "${SOURCE_PATH}/lib/libcudnn.so.${CUDNN_VERSION_MAJOR}" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
57+
file(INSTALL "${SOURCE_PATH}/lib/libcudnn.so" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
58+
endif()
59+
60+
file(INSTALL "${SOURCE_PATH}/info/LICENSE.txt" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
61+
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/FindCUDNN.cmake" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
62+
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
set(CUDNN_PREV_MODULE_PATH ${CMAKE_MODULE_PATH})
2+
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
3+
4+
if(NOT CUDNN_LIBRARIES)
5+
_find_package(${ARGS})
6+
endif()
7+
8+
set(CMAKE_MODULE_PATH ${CUDNN_PREV_MODULE_PATH})

ports/darknet/CONTROL

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,38 @@
11
Source: darknet
2-
Version: 0.2.5-6
2+
Version: 0.2.5.1
33
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.
44
Build-Depends: pthreads (windows), stb
5-
Default-Features: weights
6-
7-
Feature: opencv
8-
Build-Depends: opencv[ffmpeg]
9-
Description: Build darknet with support for OpenCV
105

116
Feature: cuda
127
Build-Depends: cuda
138
Description: Build darknet with support for CUDA
149

10+
Feature: cudnn
11+
Build-Depends: darknet[cuda]
12+
Description: Build darknet with support for CUDNN
13+
14+
Feature: opencv-base
15+
Build-Depends: opencv[ffmpeg]
16+
Description: Build darknet with support for OpenCV
17+
18+
Feature: opencv-cuda
19+
Build-Depends: opencv[ffmpeg], opencv[cuda]
20+
Description: Build darknet with support for a CUDA-enabled OpenCV
21+
22+
Feature: opencv3-base
23+
Build-Depends: opencv3[ffmpeg]
24+
Description: Build darknet with support for OpenCV3
25+
26+
Feature: opencv3-cuda
27+
Build-Depends: opencv3[ffmpeg], opencv3[cuda]
28+
Description: Build darknet with support for a CUDA-enabled OpenCV3
29+
1530
Feature: weights
1631
Description: Download pre-built weights for test
1732

1833
Feature: weights-train
1934
Description: Download pre-built weights for training
2035

21-
Feature: opencv-cuda
22-
Build-Depends: darknet[opencv], darknet[cuda]
23-
Description: Build darknet with support for a CUDA-enabled OpenCV
36+
Feature: full
37+
Build-Depends: darknet[opencv-cuda], darknet[cudnn], darknet[weights], darknet[weights-train]
38+
Description: Build darknet fully-featured

ports/darknet/portfile.cmake

Lines changed: 51 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,41 @@ include(vcpkg_common_functions)
1111
vcpkg_from_github(
1212
OUT_SOURCE_PATH SOURCE_PATH
1313
REPO AlexeyAB/darknet
14-
REF b2d795e34e1d734d0f451ce9847a0e6b68c32351
15-
SHA512 1964aa0d768d37fc614983718aede8b29e562fd8120116b7cd7a1331bb8a3256e28c01cdff6f19bbe7b9d6289b3292188205f362bae38393cee33d8a2e6a5273
14+
REF 35346d2ef80dc46b9eb4fba57da1737a49f4743e
15+
SHA512 a905a5e42c4ecfdf2b8276fc565b82e30c97e249c0530b403d149a8e6276bb3852a956869c21efbe092799f3743cf529a577fb03275cfcfcc8322b92e9de0ff6
1616
HEAD_REF master
1717
)
1818

19-
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
20-
"cuda" ENABLE_CUDA
21-
"opencv" ENABLE_OPENCV
22-
)
19+
# enable CUDA inside DARKNET
20+
set(ENABLE_CUDA OFF)
21+
if("cuda" IN_LIST FEATURES)
22+
set(ENABLE_CUDA ON)
23+
endif()
24+
25+
set(ENABLE_OPENCV OFF)
26+
# enable OPENCV (basic version) inside DARKNET
27+
if("opencv-base" IN_LIST FEATURES)
28+
set(ENABLE_OPENCV ON)
29+
endif()
30+
if("opencv3-base" IN_LIST FEATURES)
31+
set(ENABLE_OPENCV ON)
32+
endif()
33+
34+
# enable OPENCV (with its own CUDA feature enabled) inside DARKNET
35+
# (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!)
36+
# DARKNET will be automatically able to distinguish an OpenCV that is built with or without CUDA support.
37+
if("opencv-cuda" IN_LIST FEATURES)
38+
set(ENABLE_OPENCV ON)
39+
endif()
40+
if("opencv3-cuda" IN_LIST FEATURES)
41+
set(ENABLE_OPENCV ON)
42+
endif()
43+
44+
# enable CUDNN inside DARKNET (which depends on the "cuda" feature by design)
45+
set(ENABLE_CUDNN OFF)
46+
if("cudnn" IN_LIST FEATURES)
47+
set(ENABLE_CUDNN ON)
48+
endif()
2349

2450
if ("cuda" IN_LIST FEATURES)
2551
if (NOT VCPKG_CMAKE_SYSTEM_NAME AND NOT ENV{CUDACXX})
@@ -67,15 +93,18 @@ endif()
6793
#make sure we don't use any integrated pre-built library nor any unnecessary CMake module
6894
file(REMOVE_RECURSE ${SOURCE_PATH}/3rdparty)
6995
file(REMOVE ${SOURCE_PATH}/cmake/Modules/FindPThreads_windows.cmake)
96+
file(REMOVE ${SOURCE_PATH}/cmake/Modules/FindCUDNN.cmake)
7097

7198
vcpkg_configure_cmake(
7299
SOURCE_PATH ${SOURCE_PATH}
73-
DISABLE_PARALLEL_CONFIGURE #since darknet configures a file inside source tree, it is better to disable parallel configure
100+
DISABLE_PARALLEL_CONFIGURE
74101
PREFER_NINJA
75102
OPTIONS
76103
-DINSTALL_BIN_DIR:STRING=bin
77104
-DINSTALL_LIB_DIR:STRING=lib
78-
${FEATURE_OPTIONS}
105+
-DENABLE_CUDA=${ENABLE_CUDA}
106+
-DENABLE_CUDNN=${ENABLE_CUDNN}
107+
-DENABLE_OPENCV=${ENABLE_OPENCV}
79108
)
80109

81110
vcpkg_install_cmake()
@@ -91,37 +120,35 @@ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/uselib${EXECUTABLE_SUFFIX})
91120
if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/bin/uselib_track${EXECUTABLE_SUFFIX})
92121
file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/uselib_track${EXECUTABLE_SUFFIX})
93122
endif()
94-
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/darknet/)
95-
file(RENAME ${CURRENT_PACKAGES_DIR}/bin/darknet${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/darknet/darknet${EXECUTABLE_SUFFIX})
96-
file(RENAME ${CURRENT_PACKAGES_DIR}/bin/uselib${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/darknet/uselib${EXECUTABLE_SUFFIX})
123+
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/${PORT})
124+
file(RENAME ${CURRENT_PACKAGES_DIR}/bin/darknet${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/${PORT}/darknet${EXECUTABLE_SUFFIX})
125+
file(RENAME ${CURRENT_PACKAGES_DIR}/bin/uselib${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/${PORT}/uselib${EXECUTABLE_SUFFIX})
97126
if(EXISTS ${CURRENT_PACKAGES_DIR}/bin/uselib_track${EXECUTABLE_SUFFIX})
98-
file(RENAME ${CURRENT_PACKAGES_DIR}/bin/uselib_track${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/darknet/uselib_track${EXECUTABLE_SUFFIX})
127+
file(RENAME ${CURRENT_PACKAGES_DIR}/bin/uselib_track${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/${PORT}/uselib_track${EXECUTABLE_SUFFIX})
99128
endif()
100-
file(COPY ${SOURCE_PATH}/cfg DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet)
101-
file(COPY ${SOURCE_PATH}/data DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet)
102-
vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/darknet)
129+
file(COPY ${SOURCE_PATH}/cfg DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
130+
file(COPY ${SOURCE_PATH}/data DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
131+
vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
103132

104133
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
105134
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
106135
endif()
107136

108137
vcpkg_fixup_cmake_targets()
109138

110-
file(COPY ${SOURCE_PATH}/cmake/Modules/FindCUDNN.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/darknet)
111-
112139
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
113140
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
114141

115-
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/darknet RENAME copyright)
142+
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
116143

117144
if("weights" IN_LIST FEATURES)
118-
file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov3.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet)
119-
file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov2.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet)
120-
file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov3-tiny.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet)
121-
file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov2-tiny.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet)
145+
file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov3.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
146+
file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov2.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
147+
file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov3-tiny.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
148+
file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/yolov2-tiny.weights DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
122149
endif()
123150

124151
if("weights-train" IN_LIST FEATURES)
125-
file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/darknet53.conv.74 DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet)
126-
file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/darknet19_448.conv.23 DESTINATION ${CURRENT_PACKAGES_DIR}/tools/darknet)
152+
file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/darknet53.conv.74 DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
153+
file(COPY ${VCPKG_ROOT_DIR}/downloads/darknet-cache/darknet19_448.conv.23 DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
127154
endif()

0 commit comments

Comments
 (0)