diff --git a/.gitignore b/.gitignore index 142b185d..f5d9a42a 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ *.so *.exe *.dll +*.lib mnist/ data/ caffe/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 05b56e89..3334bcfe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,24 +30,28 @@ set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/Modules/" ${CMAKE_MODULE_ set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}" CACHE PATH "Install prefix" FORCE) set(INSTALL_BIN_DIR "${CMAKE_CURRENT_LIST_DIR}" CACHE PATH "Path where exe and dll will be installed") -set(INSTALL_LIB_DIR "lib" CACHE PATH "Path where lib will be installed") +set(INSTALL_LIB_DIR "${CMAKE_CURRENT_LIST_DIR}" CACHE PATH "Path where lib 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(ENABLE_CUDA "TRUE" CACHE BOOL "Enable CUDA build") +set(ENABLE_CUDA "FALSE" CACHE BOOL "Enable CUDA support") set(ENABLE_CUDNN "FALSE" CACHE BOOL "Enable CUDNN") set(ENABLE_CUDNN_HALF "FALSE" CACHE BOOL "Enable CUDNN Half precision") -set(ENABLE_OPENMP "TRUE" CACHE BOOL "Enable OpenMP") + if(${CMAKE_VERSION} VERSION_LESS "3.8.0") - set(ENABLE_CUDA "FALSE" CACHE BOOL "Enable CUDA build" FORCE) + set(ENABLE_CUDA "FALSE" CACHE BOOL "Enable CUDA support" FORCE) message(WARNING "To build with CUDA support you need CMake 3.8.0+") else() include(CheckLanguage) check_language(CUDA) if(CMAKE_CUDA_COMPILER) enable_language(CUDA) - else() - set(ENABLE_CUDA "FALSE" CACHE BOOL "Enable CUDA build" FORCE) + find_package(CUDA REQUIRED) + if(CUDA_VERSION VERSION_LESS "9.0") + message(STATUS "Unsupported CUDA version, please upgrade to CUDA 9+. Disabling CUDA support") + else() + set(ENABLE_CUDA "TRUE" CACHE BOOL "Enable CUDA support" FORCE) + endif() endif() endif() @@ -77,42 +81,53 @@ endif() if(USE_INTEGRATED_LIBS) set(PThreads_windows_DIR ${CMAKE_CURRENT_LIST_DIR}/3rdparty/pthreads CACHE PATH "Path where pthreads for windows can be located") - add_definitions(-D_TIMESPEC_DEFINED) endif() set(Stb_DIR ${CMAKE_CURRENT_LIST_DIR}/3rdparty/stb CACHE PATH "Path where Stb image library can be located") set(CMAKE_DEBUG_POSTFIX d) -add_definitions(-DUSE_CMAKE_LIBS) - +set(CMAKE_THREAD_PREFER_PTHREAD ON) +find_package(Threads REQUIRED) if(MSVC) - set(CMAKE_CXX_FLAGS "/wd4013 /wd4018 /wd4028 /wd4047 /wd4068 /wd4090 /wd4101 /wd4113 /wd4133 /wd4190 /wd4244 /wd4267 /wd4305 /wd4477 /wd4996 /wd4819 /fp:fast ${CMAKE_CXX_FLAGS}") - string(REGEX REPLACE "/O2" "/Ox" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}) - add_definitions(-D_CRT_RAND_S) - add_definitions(-DNOMINMAX) - add_definitions(-D_USE_MATH_DEFINES) + find_package(PThreads_windows REQUIRED) +endif() +find_package(OpenCV) +find_package(Stb REQUIRED) +if(${CMAKE_VERSION} VERSION_LESS "3.9.0") + message(WARNING "To build with OpenMP support you need CMake 3.9.0+") +else() + find_package(OpenMP) endif() -if(CMAKE_COMPILER_IS_GNUCC) - set(CMAKE_CXX_FLAGS "-Wno-unused-result -Wno-write-strings ${CMAKE_CXX_FLAGS}") - string(REGEX REPLACE "-O0" "-Og" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG}) - string(REGEX REPLACE "-O3" "-Ofast" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}) - set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ffp-contract=fast -mavx -mavx2 -msse3 -msse4.1 -msse4.2 -msse4a") +set(ADDITIONAL_CXX_FLAGS "-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -Wno-deprecated-declarations -Wno-write-strings") +set(ADDITIONAL_C_FLAGS "-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -Wno-deprecated-declarations -Wno-write-strings") + +if(MSVC) + set(ADDITIONAL_CXX_FLAGS "/wd4013 /wd4018 /wd4028 /wd4047 /wd4068 /wd4090 /wd4101 /wd4113 /wd4133 /wd4190 /wd4244 /wd4267 /wd4305 /wd4477 /wd4996 /wd4819 /fp:fast") + set(ADDITIONAL_C_FLAGS "/wd4013 /wd4018 /wd4028 /wd4047 /wd4068 /wd4090 /wd4101 /wd4113 /wd4133 /wd4190 /wd4244 /wd4267 /wd4305 /wd4477 /wd4996 /wd4819 /fp:fast") + set(CMAKE_CXX_FLAGS "${ADDITIONAL_CXX_FLAGS} ${CMAKE_CXX_FLAGS}") + set(CMAKE_C_FLAGS "${ADDITIONAL_C_FLAGS} ${CMAKE_C_FLAGS}") + string(REGEX REPLACE "/O2" "/Ox" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}) + string(REGEX REPLACE "/O2" "/Ox" CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE}) endif() -if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") - if (UNIX AND NOT APPLE) - set(CMAKE_CXX_FLAGS "-pthread ${CMAKE_CXX_FLAGS}") #force pthread to avoid bugs in some cmake setups +if(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") + if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") + if (UNIX AND NOT APPLE) + set(CMAKE_CXX_FLAGS "-pthread ${CMAKE_CXX_FLAGS}") #force pthread to avoid bugs in some cmake setups + set(CMAKE_C_FLAGS "-pthread ${CMAKE_C_FLAGS}") + endif() endif() - set(CMAKE_CXX_FLAGS "-Wno-deprecated -Wno-writable-strings ${CMAKE_CXX_FLAGS}") + set(CMAKE_CXX_FLAGS "${ADDITIONAL_CXX_FLAGS} ${CMAKE_CXX_FLAGS}") + set(CMAKE_C_FLAGS "${ADDITIONAL_C_FLAGS} ${CMAKE_C_FLAGS}") string(REGEX REPLACE "-O0" "-Og" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG}) string(REGEX REPLACE "-O3" "-Ofast" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}) + string(REGEX REPLACE "-O0" "-Og" CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}) + string(REGEX REPLACE "-O3" "-Ofast" CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE}) + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_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() -set(ENABLE_OPENCV "TRUE" CACHE BOOL "Enable OpenCV integration") -if(ENABLE_OPENCV) - find_package(OpenCV) -endif() -find_package(Stb REQUIRED) +string(REPLACE " " "," ADDITIONAL_CXX_FLAGS_COMMA_SEPARATED "${ADDITIONAL_CXX_FLAGS}") set(SKIP_USELIB_TRACK "FALSE" CACHE BOOL "Skip building uselib_track" FORCE) if(OpenCV_FOUND) @@ -124,13 +139,9 @@ if(OpenCV_FOUND) endif() if(ENABLE_CUDA) - if(NOT WIN32) - include_directories("${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}") - link_directories("${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES}") - endif() - if(CUDA_COMPUTE_MODEL VERSION_GREATER_EQUAL ${CUDA_COMPUTE_MODEL_75} AND CMAKE_CUDA_COMPILER_VERSION VERSION_LESS_EQUAL 9) - message(STATUS "CUDA 10 is required for Compute Model 7.5 - Lowering settings to 7.0") - set(CUDA_COMPUTE_MODEL ${CUDA_COMPUTE_MODEL_70}) + if(CUDA_COMPUTE_MODEL VERSION_GREATER_EQUAL ${CUDA_COMPUTE_MODEL_75} AND CUDA_VERSION VERSION_LESS_EQUAL "9.2") + message(STATUS "CUDA 10 is required for Compute Model 7.5 - Lowering settings to 7.2") + set(CUDA_COMPUTE_MODEL ${CUDA_COMPUTE_MODEL_72}) endif() find_package(CUDNN) if(CUDNN_FOUND) @@ -140,32 +151,33 @@ if(ENABLE_CUDA) message(STATUS "Enabled CUDNN_HALF") endif() endif() + set(CUDA_COMPUTECAPABILITY_FLAGS "-gencode arch=compute_${CUDA_COMPUTE_MODEL},code=[sm_${CUDA_COMPUTE_MODEL},compute_${CUDA_COMPUTE_MODEL}]") if (MSVC) if(CUDNN_FOUND) if(OpenCV_FOUND) - set(CMAKE_CUDA_FLAGS "-gencode arch=compute_${CUDA_COMPUTE_MODEL},code=[sm_${CUDA_COMPUTE_MODEL},compute_${CUDA_COMPUTE_MODEL}] -Wno-deprecated-declarations -Xcompiler=\"/wd4028,/wd4190,/wd4244,/wd4267,/wd4305,/wd4477,/wd4996,/wd4819,/DGPU,/DCUDNN,/DOPENCV\" ${CMAKE_CUDA_FLAGS}") + set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} -Wno-deprecated-declarations -Xcompiler=\"${ADDITIONAL_CXX_FLAGS_COMMA_SEPARATED},/DGPU,/DCUDNN,/DOPENCV\" ${CMAKE_CUDA_FLAGS}") else() - set(CMAKE_CUDA_FLAGS "-gencode arch=compute_${CUDA_COMPUTE_MODEL},code=[sm_${CUDA_COMPUTE_MODEL},compute_${CUDA_COMPUTE_MODEL}] -Wno-deprecated-declarations -Xcompiler=\"/wd4028,/wd4190,/wd4244,/wd4267,/wd4305,/wd4477,/wd4996,/wd4819,/DGPU,/DCUDNN\" ${CMAKE_CUDA_FLAGS}") + set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} -Wno-deprecated-declarations -Xcompiler=\"${ADDITIONAL_CXX_FLAGS_COMMA_SEPARATED},/DGPU,/DCUDNN\" ${CMAKE_CUDA_FLAGS}") endif() else() if(OpenCV_FOUND) - set(CMAKE_CUDA_FLAGS "-gencode arch=compute_${CUDA_COMPUTE_MODEL},code=[sm_${CUDA_COMPUTE_MODEL},compute_${CUDA_COMPUTE_MODEL}] -Wno-deprecated-declarations -Xcompiler=\"/wd4028,/wd4190,/wd4244,/wd4267,/wd4305,/wd4477,/wd4996,/wd4819,/DGPU,/DOPENCV\" ${CMAKE_CUDA_FLAGS}") + set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} -Wno-deprecated-declarations -Xcompiler=\"${ADDITIONAL_CXX_FLAGS_COMMA_SEPARATED},/DGPU,/DOPENCV\" ${CMAKE_CUDA_FLAGS}") else() - set(CMAKE_CUDA_FLAGS "-gencode arch=compute_${CUDA_COMPUTE_MODEL},code=[sm_${CUDA_COMPUTE_MODEL},compute_${CUDA_COMPUTE_MODEL}] -Wno-deprecated-declarations -Xcompiler=\"/wd4028,/wd4190,/wd4244,/wd4267,/wd4305,/wd4477,/wd4996,/wd4819,/DGPU\" ${CMAKE_CUDA_FLAGS}") + set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} -Wno-deprecated-declarations -Xcompiler=\"${ADDITIONAL_CXX_FLAGS_COMMA_SEPARATED},/DGPU\" ${CMAKE_CUDA_FLAGS}") endif() endif() else() if(CUDNN_FOUND) if(OpenCV_FOUND) - set(CMAKE_CUDA_FLAGS "-gencode arch=compute_${CUDA_COMPUTE_MODEL},code=[sm_${CUDA_COMPUTE_MODEL},compute_${CUDA_COMPUTE_MODEL}] --compiler-options \"-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -Wno-deprecated-declarations -fPIC -fopenmp -Ofast -DOPENCV -DGPU -DCUDNN \" ${CMAKE_CUDA_FLAGS}") + set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} --compiler-options \"${ADDITIONAL_CXX_FLAGS} -fPIC -fopenmp -Ofast -DOPENCV -DGPU -DCUDNN \" ${CMAKE_CUDA_FLAGS}") else() - set(CMAKE_CUDA_FLAGS "-gencode arch=compute_${CUDA_COMPUTE_MODEL},code=[sm_${CUDA_COMPUTE_MODEL},compute_${CUDA_COMPUTE_MODEL}] --compiler-options \"-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -Wno-deprecated-declarations -fPIC -fopenmp -Ofast -DGPU -DCUDNN \" ${CMAKE_CUDA_FLAGS}") + set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} --compiler-options \"${ADDITIONAL_CXX_FLAGS} -fPIC -fopenmp -Ofast -DGPU -DCUDNN \" ${CMAKE_CUDA_FLAGS}") endif() else() if(OpenCV_FOUND) - set(CMAKE_CUDA_FLAGS "-gencode arch=compute_${CUDA_COMPUTE_MODEL},code=[sm_${CUDA_COMPUTE_MODEL},compute_${CUDA_COMPUTE_MODEL}] --compiler-options \"-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -Wno-deprecated-declarations -fPIC -fopenmp -Ofast -DOPENCV -DGPU \" ${CMAKE_CUDA_FLAGS}") + set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} --compiler-options \"${ADDITIONAL_CXX_FLAGS} -fPIC -fopenmp -Ofast -DOPENCV -DGPU \" ${CMAKE_CUDA_FLAGS}") else() - set(CMAKE_CUDA_FLAGS "-gencode arch=compute_${CUDA_COMPUTE_MODEL},code=[sm_${CUDA_COMPUTE_MODEL},compute_${CUDA_COMPUTE_MODEL}] --compiler-options \"-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -Wno-deprecated-declarations -fPIC -fopenmp -Ofast -DGPU \" ${CMAKE_CUDA_FLAGS}") + set(CMAKE_CUDA_FLAGS "${CUDA_COMPUTECAPABILITY_FLAGS} --compiler-options \"${ADDITIONAL_CXX_FLAGS} -fPIC -fopenmp -Ofast -DGPU \" ${CMAKE_CUDA_FLAGS}") endif() endif() endif() @@ -178,7 +190,6 @@ if(ENABLE_CUDA) if(ZED_FOUND) include_directories(${ZED_INCLUDE_DIRS}) link_directories(${ZED_LIBRARY_DIR}) - add_definitions(-DZED_STEREO) message(STATUS "ZED SDK enabled") else() message(STATUS "ZED SDK not found") @@ -190,21 +201,6 @@ else() set(ENABLE_ZED_CAMERA "FALSE" CACHE BOOL "Enable ZED Camera support" FORCE) endif() -set(CMAKE_THREAD_PREFER_PTHREAD ON) -find_package(Threads REQUIRED) -if(MSVC) - find_package(PThreads_windows REQUIRED) -endif() - -if(${CMAKE_VERSION} VERSION_LESS "3.9.0") - message(WARNING "To build with OpenMP support you need CMake 3.9.0+") -else() - find_package(OpenMP) - if(NOT OPENMP_FOUND) - set(ENABLE_OPENMP "FALSE" CACHE BOOL "Enable OpenMP" FORCE) - endif() -endif() - set(DARKNET_INSTALL_INCLUDE_DIR ${INSTALL_INCLUDE_DIR}) # Make relative paths absolute (needed later on) foreach(p LIB BIN INCLUDE CMAKE) @@ -225,11 +221,13 @@ file(GLOB headers "${CMAKE_CURRENT_LIST_DIR}/src/*.h") list(APPEND headers ${CMAKE_CURRENT_LIST_DIR}/include/darknet.h ) -#remove windows only files, will be re-added if necessary later -list(REMOVE_ITEM headers - ${CMAKE_CURRENT_LIST_DIR}/src/gettimeofday.h - ${CMAKE_CURRENT_LIST_DIR}/src/getopt.h -) +#remove windows only files +if(NOT WIN32) + list(REMOVE_ITEM headers + ${CMAKE_CURRENT_LIST_DIR}/src/gettimeofday.h + ${CMAKE_CURRENT_LIST_DIR}/src/getopt.h + ) +endif() #set(exported_headers ${headers}) #look for all *.c files in src folder @@ -243,29 +241,19 @@ list(APPEND sources list(REMOVE_ITEM sources ${CMAKE_CURRENT_LIST_DIR}/src/darknet.c ) -#remove windows only files, will be re-added if necessary later -list(REMOVE_ITEM sources - ${CMAKE_CURRENT_LIST_DIR}/src/gettimeofday.c - ${CMAKE_CURRENT_LIST_DIR}/src/getopt.c -) - -if(ENABLE_CUDA) - file(GLOB cuda_sources "${CMAKE_CURRENT_LIST_DIR}/src/*.cu") -endif() - -if(WIN32) - list(APPEND sources +#remove windows only files +if(NOT WIN32) + list(REMOVE_ITEM sources ${CMAKE_CURRENT_LIST_DIR}/src/gettimeofday.c ${CMAKE_CURRENT_LIST_DIR}/src/getopt.c ) +endif() - list(APPEND headers - ${CMAKE_CURRENT_LIST_DIR}/src/gettimeofday.h - ${CMAKE_CURRENT_LIST_DIR}/src/getopt.h - ) +if(ENABLE_CUDA) + file(GLOB cuda_sources "${CMAKE_CURRENT_LIST_DIR}/src/*.cu") endif() -set_source_files_properties(${sources} PROPERTIES LANGUAGE CXX) +#set_source_files_properties(${sources} PROPERTIES LANGUAGE CXX) add_library(dark ${CMAKE_CURRENT_LIST_DIR}/include/yolo_v2_class.hpp ${CMAKE_CURRENT_LIST_DIR}/src/yolo_v2_class.cpp ${sources} ${headers} ${cuda_sources}) set_target_properties(dark PROPERTIES POSITION_INDEPENDENT_CODE ON) @@ -275,23 +263,27 @@ endif() if(BUILD_SHARED_LIBS) target_compile_definitions(dark PRIVATE LIB_EXPORTS=1) endif() -set_target_properties(dark PROPERTIES LINKER_LANGUAGE CXX) +#set_target_properties(dark PROPERTIES LINKER_LANGUAGE CXX) if(OpenCV_FOUND AND OpenCV_VERSION VERSION_GREATER "3.0" AND NOT SKIP_USELIB_TRACK) add_executable(uselib_track ${CMAKE_CURRENT_LIST_DIR}/src/yolo_console_dll.cpp) endif() add_executable(uselib ${CMAKE_CURRENT_LIST_DIR}/src/yolo_console_dll.cpp) -set_target_properties(uselib PROPERTIES LINKER_LANGUAGE CXX) +#set_target_properties(uselib PROPERTIES LINKER_LANGUAGE CXX) add_executable(darknet ${CMAKE_CURRENT_LIST_DIR}/src/darknet.c ${sources} ${headers} ${cuda_sources}) -set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/src/darknet.c PROPERTIES LANGUAGE CXX) -set_target_properties(darknet PROPERTIES LINKER_LANGUAGE CXX) +#set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/src/darknet.c PROPERTIES LANGUAGE CXX) +#set_target_properties(darknet PROPERTIES LINKER_LANGUAGE CXX) target_include_directories(darknet PUBLIC $ $ $ $) target_include_directories(dark PUBLIC $ $ $ $) target_include_directories(uselib PUBLIC $ $ $ $) +target_compile_definitions(darknet PRIVATE -DUSE_CMAKE_LIBS) +target_compile_definitions(dark PRIVATE -DUSE_CMAKE_LIBS) +target_compile_definitions(uselib PRIVATE -DUSE_CMAKE_LIBS) + if(CUDNN_FOUND) target_link_libraries(darknet PRIVATE CuDNN::CuDNN) target_link_libraries(dark PRIVATE CuDNN::CuDNN) @@ -313,7 +305,9 @@ endif() if(OPENMP_FOUND) target_link_libraries(darknet PUBLIC OpenMP::OpenMP_CXX) + target_link_libraries(darknet PUBLIC OpenMP::OpenMP_C) target_link_libraries(dark PUBLIC OpenMP::OpenMP_CXX) + target_link_libraries(dark PUBLIC OpenMP::OpenMP_C) endif() if(CMAKE_COMPILER_IS_GNUCC) @@ -326,6 +320,9 @@ if(MSVC) target_link_libraries(darknet PRIVATE wsock32 ws2_32) target_link_libraries(dark PRIVATE PThreads_windows::PThreads_windows) target_link_libraries(dark PRIVATE wsock32 ws2_32) + target_compile_definitions(darknet PRIVATE -D_CRT_RAND_S -DNOMINMAX -D_USE_MATH_DEFINES) + target_compile_definitions(dark PRIVATE -D_CRT_RAND_S -DNOMINMAX -D_USE_MATH_DEFINES) + target_compile_definitions(uselib PRIVATE -D_CRT_RAND_S -DNOMINMAX -D_USE_MATH_DEFINES) endif() target_link_libraries(darknet PRIVATE Threads::Threads) @@ -333,7 +330,11 @@ target_link_libraries(dark PRIVATE Threads::Threads) if(ENABLE_ZED_CAMERA) target_link_libraries(darknet PRIVATE ${ZED_LIBRARIES}) + target_link_libraries(dark PRIVATE ${ZED_LIBRARIES}) target_link_libraries(uselib PRIVATE ${ZED_LIBRARIES}) + target_compile_definitions(darknet PRIVATE -DZED_STEREO) + target_compile_definitions(uselib PRIVATE -DZED_STEREO) + target_compile_definitions(dark PRIVATE -DZED_STEREO) endif() if(ENABLE_CUDA) @@ -344,13 +345,26 @@ if(ENABLE_CUDA) target_compile_definitions(dark PUBLIC -DGPU) endif() +if(USE_INTEGRATED_LIBS) + target_compile_definitions(darknet PRIVATE -D_TIMESPEC_DEFINED) + target_compile_definitions(dark PRIVATE -D_TIMESPEC_DEFINED) +endif() + target_link_libraries(uselib PRIVATE dark) if(OpenCV_FOUND AND OpenCV_VERSION VERSION_GREATER "3.0" AND NOT SKIP_USELIB_TRACK) target_link_libraries(uselib_track PRIVATE dark) target_compile_definitions(uselib_track PRIVATE TRACK_OPTFLOW=1) - set_target_properties(uselib_track PROPERTIES LINKER_LANGUAGE CXX) + target_compile_definitions(uselib_track PRIVATE -DUSE_CMAKE_LIBS) + #set_target_properties(uselib_track PROPERTIES LINKER_LANGUAGE CXX) target_include_directories(uselib_track PRIVATE ${CMAKE_CURRENT_LIST_DIR}/include) target_link_libraries(uselib_track PRIVATE ${OpenCV_LIBS}) + if(ENABLE_ZED_CAMERA) + target_link_libraries(uselib_track PRIVATE ${ZED_LIBRARIES}) + target_compile_definitions(uselib_track PRIVATE -DZED_STEREO) + endif() + if(MSVC) + target_compile_definitions(uselib_track PRIVATE -D_CRT_RAND_S -DNOMINMAX -D_USE_MATH_DEFINES) + endif() endif() #set_target_properties(dark PROPERTIES PUBLIC_HEADER "${exported_headers};${CMAKE_CURRENT_LIST_DIR}/include/yolo_v2_class.hpp")