|
|
@ -5,16 +5,25 @@ set(Darknet_MINOR_VERSION 2) |
|
|
|
set(Darknet_PATCH_VERSION 5) |
|
|
|
set(Darknet_PATCH_VERSION 5) |
|
|
|
set(Darknet_VERSION ${Darknet_MAJOR_VERSION}.${Darknet_MINOR_VERSION}.${Darknet_PATCH_VERSION}) |
|
|
|
set(Darknet_VERSION ${Darknet_MAJOR_VERSION}.${Darknet_MINOR_VERSION}.${Darknet_PATCH_VERSION}) |
|
|
|
|
|
|
|
|
|
|
|
set(CMAKE_VERBOSE_MAKEFILE "FALSE" CACHE BOOL "Create verbose makefile") |
|
|
|
option(CMAKE_VERBOSE_MAKEFILE "Create verbose makefile" OFF) |
|
|
|
set(BUILD_SHARED_LIBS "TRUE" CACHE BOOL "Create dark as a shared library") |
|
|
|
option(CUDA_VERBOSE_BUILD "Create verbose CUDA build" OFF) |
|
|
|
|
|
|
|
option(BUILD_SHARED_LIBS "Create dark as a shared library" ON) |
|
|
|
|
|
|
|
option(BUILD_AS_CPP "Build Darknet using C++ compiler also for C files" OFF) |
|
|
|
|
|
|
|
option(BUILD_USELIB_TRACK "Build uselib_track" ON) |
|
|
|
|
|
|
|
option(MANUALLY_EXPORT_TRACK_OPTFLOW "Manually export the TRACK_OPTFLOW=1 define" OFF) |
|
|
|
|
|
|
|
option(ENABLE_OPENCV "Enable OpenCV integration" ON) |
|
|
|
|
|
|
|
option(ENABLE_CUDA "Enable CUDA support" ON) |
|
|
|
|
|
|
|
option(ENABLE_CUDNN "Enable CUDNN" ON) |
|
|
|
|
|
|
|
option(ENABLE_CUDNN_HALF "Enable CUDNN Half precision" ON) |
|
|
|
|
|
|
|
option(ENABLE_ZED_CAMERA "Enable ZED Camera support" ON) |
|
|
|
|
|
|
|
option(ENABLE_VCPKG_INTEGRATION "Enable VCPKG integration" ON) |
|
|
|
if (WIN32) |
|
|
|
if (WIN32) |
|
|
|
set(SELECT_OPENCV_MODULES "TRUE" CACHE BOOL "Use only few selected OpenCV modules to circumvent some Ninja+CMake bugs on Windows") |
|
|
|
option(SELECT_OPENCV_MODULES "Use only few selected OpenCV modules to circumvent some Ninja+CMake bugs on Windows" ON) |
|
|
|
else() |
|
|
|
else() |
|
|
|
set(SELECT_OPENCV_MODULES "FALSE" CACHE BOOL "Use only few selected OpenCV modules to circumvent some Ninja+CMake bugs on Windows") |
|
|
|
option(SELECT_OPENCV_MODULES "Use only few selected OpenCV modules to circumvent some Ninja+CMake bugs on Windows" OFF) |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
set(BUILD_AS_CPP "FALSE" CACHE BOOL "Build Darknet using C++ compiler also for C files") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE) |
|
|
|
if(ENABLE_VCPKG_INTEGRATION AND DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE) |
|
|
|
set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "") |
|
|
|
set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "") |
|
|
|
message(STATUS "VCPKG found: $ENV{VCPKG_ROOT}") |
|
|
|
message(STATUS "VCPKG found: $ENV{VCPKG_ROOT}") |
|
|
|
message(STATUS "Using VCPKG integration") |
|
|
|
message(STATUS "Using VCPKG integration") |
|
|
@ -43,11 +52,6 @@ set(INSTALL_LIB_DIR "${CMAKE_CURRENT_LIST_DIR}" CACHE PATH "Path where lib |
|
|
|
set(INSTALL_INCLUDE_DIR "include/darknet" CACHE PATH "Path where headers will be installed") |
|
|
|
set(INSTALL_INCLUDE_DIR "include/darknet" CACHE PATH "Path where headers will be installed") |
|
|
|
set(INSTALL_CMAKE_DIR "share/darknet" CACHE PATH "Path where cmake configs will be installed") |
|
|
|
set(INSTALL_CMAKE_DIR "share/darknet" CACHE PATH "Path where cmake configs will be installed") |
|
|
|
|
|
|
|
|
|
|
|
set(ENABLE_OPENCV "TRUE" CACHE BOOL "Enable OpenCV integration") |
|
|
|
|
|
|
|
set(ENABLE_CUDA "TRUE" CACHE BOOL "Enable CUDA support") |
|
|
|
|
|
|
|
set(ENABLE_CUDNN "FALSE" CACHE BOOL "Enable CUDNN") |
|
|
|
|
|
|
|
set(ENABLE_CUDNN_HALF "FALSE" CACHE BOOL "Enable CUDNN Half precision") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(${CMAKE_VERSION} VERSION_LESS "3.9.0") |
|
|
|
if(${CMAKE_VERSION} VERSION_LESS "3.9.0") |
|
|
|
message(WARNING "To build with CUDA support you need CMake 3.9.0+") |
|
|
|
message(WARNING "To build with CUDA support you need CMake 3.9.0+") |
|
|
|
set(ENABLE_CUDA "FALSE" CACHE BOOL "Enable CUDA support" FORCE) |
|
|
|
set(ENABLE_CUDA "FALSE" CACHE BOOL "Enable CUDA support" FORCE) |
|
|
@ -65,9 +69,9 @@ else() |
|
|
|
else() |
|
|
|
else() |
|
|
|
cuda_select_nvcc_arch_flags(CUDA_ARCH_FLAGS ${CUDA_ARCHITECTURES}) |
|
|
|
cuda_select_nvcc_arch_flags(CUDA_ARCH_FLAGS ${CUDA_ARCHITECTURES}) |
|
|
|
message(STATUS "Building with CUDA flags: " "${CUDA_ARCH_FLAGS}") |
|
|
|
message(STATUS "Building with CUDA flags: " "${CUDA_ARCH_FLAGS}") |
|
|
|
if ("arch=compute_75,code=sm_75" IN_LIST CUDA_ARCH_FLAGS) |
|
|
|
if (NOT "arch=compute_75,code=sm_75" IN_LIST CUDA_ARCH_FLAGS) |
|
|
|
set(ENABLE_CUDNN_HALF "TRUE" CACHE BOOL "Enable CUDNN Half precision" FORCE) |
|
|
|
set(ENABLE_CUDNN_HALF "FALSE" CACHE BOOL "Enable CUDNN Half precision" FORCE) |
|
|
|
message(STATUS "Your setup supports half precision!") |
|
|
|
message(STATUS "Your setup does not supports half precision (it requires CC >= 7.5)") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
else() |
|
|
|
else() |
|
|
@ -156,10 +160,9 @@ if(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") |
|
|
|
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -ffp-contract=fast -mavx -mavx2 -msse3 -msse4.1 -msse4.2 -msse4a") |
|
|
|
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -ffp-contract=fast -mavx -mavx2 -msse3 -msse4.1 -msse4.2 -msse4a") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
|
set(SKIP_USELIB_TRACK "FALSE" CACHE BOOL "Skip building uselib_track" FORCE) |
|
|
|
|
|
|
|
if(OpenCV_FOUND) |
|
|
|
if(OpenCV_FOUND) |
|
|
|
if(ENABLE_CUDA AND NOT OpenCV_CUDA_VERSION) |
|
|
|
if(ENABLE_CUDA AND NOT OpenCV_CUDA_VERSION) |
|
|
|
set(SKIP_USELIB_TRACK "TRUE" CACHE BOOL "Skip building uselib_track" FORCE) |
|
|
|
set(BUILD_USELIB_TRACK "FALSE" CACHE BOOL "Skip building uselib_track" FORCE) |
|
|
|
message(STATUS " -> darknet is fine for now, but uselib_track has been disabled!") |
|
|
|
message(STATUS " -> darknet is fine for now, but uselib_track has been disabled!") |
|
|
|
message(STATUS " -> Please rebuild OpenCV from sources with CUDA support to enable it") |
|
|
|
message(STATUS " -> Please rebuild OpenCV from sources with CUDA support to enable it") |
|
|
|
elseif(ENABLE_CUDA AND OpenCV_CUDA_VERSION) |
|
|
|
elseif(ENABLE_CUDA AND OpenCV_CUDA_VERSION) |
|
|
@ -174,8 +177,8 @@ endif() |
|
|
|
|
|
|
|
|
|
|
|
if(ENABLE_CUDA) |
|
|
|
if(ENABLE_CUDA) |
|
|
|
find_package(CUDNN) |
|
|
|
find_package(CUDNN) |
|
|
|
if(CUDNN_FOUND) |
|
|
|
if(NOT CUDNN_FOUND) |
|
|
|
set(ENABLE_CUDNN "TRUE" CACHE BOOL "Enable CUDNN" FORCE) |
|
|
|
set(ENABLE_CUDNN "FALSE" CACHE BOOL "Enable CUDNN" FORCE) |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
@ -206,7 +209,6 @@ if(ENABLE_CUDA) |
|
|
|
message(STATUS "CMAKE_CUDA_FLAGS: ${CMAKE_CUDA_FLAGS}") |
|
|
|
message(STATUS "CMAKE_CUDA_FLAGS: ${CMAKE_CUDA_FLAGS}") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
|
set(ENABLE_ZED_CAMERA "TRUE" CACHE BOOL "Enable ZED Camera support") |
|
|
|
|
|
|
|
if(ENABLE_CUDA) |
|
|
|
if(ENABLE_CUDA) |
|
|
|
if(ENABLE_ZED_CAMERA) |
|
|
|
if(ENABLE_ZED_CAMERA) |
|
|
|
find_package(ZED 2 QUIET) |
|
|
|
find_package(ZED 2 QUIET) |
|
|
@ -292,7 +294,7 @@ if(BUILD_AS_CPP) |
|
|
|
set_target_properties(dark PROPERTIES LINKER_LANGUAGE CXX) |
|
|
|
set_target_properties(dark PROPERTIES LINKER_LANGUAGE CXX) |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
|
if(OpenCV_FOUND AND OpenCV_VERSION VERSION_GREATER "3.0" AND NOT SKIP_USELIB_TRACK) |
|
|
|
if(OpenCV_FOUND AND OpenCV_VERSION VERSION_GREATER "3.0" AND BUILD_USELIB_TRACK) |
|
|
|
add_executable(uselib_track ${CMAKE_CURRENT_LIST_DIR}/src/yolo_console_dll.cpp) |
|
|
|
add_executable(uselib_track ${CMAKE_CURRENT_LIST_DIR}/src/yolo_console_dll.cpp) |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
@ -315,6 +317,10 @@ target_compile_definitions(darknet PRIVATE -DUSE_CMAKE_LIBS) |
|
|
|
target_compile_definitions(dark PRIVATE -DUSE_CMAKE_LIBS) |
|
|
|
target_compile_definitions(dark PRIVATE -DUSE_CMAKE_LIBS) |
|
|
|
target_compile_definitions(uselib PRIVATE -DUSE_CMAKE_LIBS) |
|
|
|
target_compile_definitions(uselib PRIVATE -DUSE_CMAKE_LIBS) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(OpenCV_FOUND AND OpenCV_VERSION VERSION_GREATER "3.0" AND BUILD_USELIB_TRACK AND NOT MANUALLY_EXPORT_TRACK_OPTFLOW) |
|
|
|
|
|
|
|
target_compile_definitions(dark PUBLIC TRACK_OPTFLOW=1) |
|
|
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
|
if(CUDNN_FOUND) |
|
|
|
if(CUDNN_FOUND) |
|
|
|
target_link_libraries(darknet PRIVATE CuDNN::CuDNN) |
|
|
|
target_link_libraries(darknet PRIVATE CuDNN::CuDNN) |
|
|
|
target_link_libraries(dark PRIVATE CuDNN::CuDNN) |
|
|
|
target_link_libraries(dark PRIVATE CuDNN::CuDNN) |
|
|
@ -388,7 +394,7 @@ if(USE_INTEGRATED_LIBS) |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
|
target_link_libraries(uselib PRIVATE dark) |
|
|
|
target_link_libraries(uselib PRIVATE dark) |
|
|
|
if(OpenCV_FOUND AND OpenCV_VERSION VERSION_GREATER "3.0" AND NOT SKIP_USELIB_TRACK) |
|
|
|
if(OpenCV_FOUND AND OpenCV_VERSION VERSION_GREATER "3.0" AND BUILD_USELIB_TRACK) |
|
|
|
target_link_libraries(uselib_track PRIVATE dark) |
|
|
|
target_link_libraries(uselib_track PRIVATE dark) |
|
|
|
target_compile_definitions(uselib_track PRIVATE TRACK_OPTFLOW=1) |
|
|
|
target_compile_definitions(uselib_track PRIVATE TRACK_OPTFLOW=1) |
|
|
|
target_compile_definitions(uselib_track PRIVATE -DUSE_CMAKE_LIBS) |
|
|
|
target_compile_definitions(uselib_track PRIVATE -DUSE_CMAKE_LIBS) |
|
|
@ -423,7 +429,7 @@ install(TARGETS dark EXPORT DarknetTargets |
|
|
|
install(TARGETS uselib darknet |
|
|
|
install(TARGETS uselib darknet |
|
|
|
DESTINATION "${INSTALL_BIN_DIR}" |
|
|
|
DESTINATION "${INSTALL_BIN_DIR}" |
|
|
|
) |
|
|
|
) |
|
|
|
if(OpenCV_FOUND AND OpenCV_VERSION VERSION_GREATER "3.0" AND NOT SKIP_USELIB_TRACK) |
|
|
|
if(OpenCV_FOUND AND OpenCV_VERSION VERSION_GREATER "3.0" AND BUILD_USELIB_TRACK) |
|
|
|
install(TARGETS uselib_track |
|
|
|
install(TARGETS uselib_track |
|
|
|
DESTINATION "${INSTALL_BIN_DIR}" |
|
|
|
DESTINATION "${INSTALL_BIN_DIR}" |
|
|
|
) |
|
|
|
) |
|
|
|