diff --git a/CMakeLists.txt b/CMakeLists.txt index 5afc9fd7..4fce9c30 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,8 +19,13 @@ endif() enable_language(C) enable_language(CXX) -set(ENABLE_CUDA "TRUE" CACHE BOOL "Enable CUDA build") +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/Modules/" ${CMAKE_MODULE_PATH}) +include_directories(${CMAKE_CURRENT_LIST_DIR}/include) +include_directories(${CMAKE_CURRENT_LIST_DIR}/src) +set(SKIP_USELIB_TRACK "FALSE" CACHE BOOL "Skip building uselib_track" FORCE) +set(ENABLE_CUDA "TRUE" CACHE BOOL "Enable CUDA build") if(${CMAKE_VERSION} VERSION_LESS "3.8.0") set(ENABLE_CUDA "FALSE" CACHE BOOL "Enable CUDA build" FORCE) message(WARNING "To build with CUDA support you need CMake 3.8.0+") @@ -34,11 +39,6 @@ else() endif() endif() -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/Modules/" ${CMAKE_MODULE_PATH}) -include_directories(${CMAKE_CURRENT_LIST_DIR}/include) -include_directories(${CMAKE_CURRENT_LIST_DIR}/src) - set(CUDA_COMPUTE_MODEL_75 "75") #Compute capability for Tesla T4, RTX 2080 set(CUDA_COMPUTE_MODEL_72 "72") #Compute capability for Jetson Xavier set(CUDA_COMPUTE_MODEL_70 "70") #Compute capability for Tesla V100 @@ -103,6 +103,10 @@ else() endif() if(OpenCV_FOUND) + if(NOT OpenCV_CUDA_VERSION) + set(SKIP_USELIB_TRACK "TRUE" CACHE BOOL "Skip building uselib_track" FORCE) + message(WARNING "The build of OpenCV does not have CUDA support, so some tools have been disabled! Please rebuild OpenCV with CUDA support to build them!") + endif() add_definitions(-DOPENCV) include_directories(${OpenCV_INCLUDE_DIRS}) endif() @@ -227,7 +231,7 @@ endif() target_compile_definitions(darklib PRIVATE LIB_EXPORTS=1) set_target_properties(darklib PROPERTIES LINKER_LANGUAGE CXX) -if(OpenCV_VERSION VERSION_GREATER "3.0") +if(OpenCV_VERSION VERSION_GREATER "3.0" AND NOT SKIP_USELIB_TRACK) add_executable(uselib_track ${CMAKE_CURRENT_LIST_DIR}/src/yolo_console_dll.cpp) target_compile_definitions(uselib_track PRIVATE TRACK_OPTFLOW=1) set_target_properties(uselib_track PROPERTIES LINKER_LANGUAGE CXX) @@ -276,7 +280,7 @@ if(ENABLE_CUDA) endif() target_link_libraries(uselib darklib) -if(OpenCV_VERSION VERSION_GREATER "3.0") +if(OpenCV_VERSION VERSION_GREATER "3.0" AND NOT SKIP_USELIB_TRACK) target_link_libraries(uselib_track darklib) install(TARGETS uselib_track DESTINATION ${CMAKE_SOURCE_DIR}/) endif() diff --git a/appveyor.yml b/appveyor.yml index bc452e12..665fcfa0 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -12,6 +12,14 @@ environment: COMPILER: vs VCPKG_ROOT: C:\projects\vcpkg VCPKG_DEFAULT_TRIPLET: x64-windows + USE_CUDA: yes + CUDACXX: C:\CUDA\nvcc\bin\nvcc.exe + CUDA_PATH: C:\CUDA\nvcc + - platform: Win64 + COMPILER: vs + VCPKG_ROOT: C:\projects\vcpkg + VCPKG_DEFAULT_TRIPLET: x64-windows + USE_CUDA: no - platform: Win64 COMPILER: vs USE_INTEGRATED_LIBS: yes @@ -24,6 +32,9 @@ install: - if [%COMPILER%]==[cygwin] SET PATH=%PATH:C:\Program Files\Git\usr\bin;=% - git submodule -q update --init --recursive - cd %WORKSPACE%\ + - if [%USE_CUDA%]==[yes] curl -L https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_411.31_windows -o cuda_10.0.130_411.31_windows.exe + - if [%USE_CUDA%]==[yes] if NOT EXIST C:\CUDA mkdir C:\CUDA + - if [%USE_CUDA%]==[yes] 7z x cuda_10.0.130_411.31_windows.exe -oC:\CUDA nvcc/* nvrtc*/* - mkdir cygwin-downloads - ps: if($env:COMPILER -eq "cygwin") { Invoke-WebRequest https://cygwin.com/setup-x86_64.exe -OutFile $env:WORKSPACE\cygwin-setup.exe } - if [%COMPILER%]==[cygwin] %WORKSPACE%\cygwin-setup.exe --quiet-mode --no-shortcuts --no-startmenu --no-desktop --upgrade-also --root C:\cygwin64 --local-package-dir %WORKSPACE%\cygwin-downloads --packages gcc-g++,cmake,libopencv-devel @@ -31,7 +42,8 @@ install: - if [%COMPILER%]==[vs] if NOT [%USE_INTEGRATED_LIBS%]==[yes] cd %VCPKG_ROOT% - if [%COMPILER%]==[vs] if NOT [%USE_INTEGRATED_LIBS%]==[yes] bootstrap-vcpkg.bat - if [%COMPILER%]==[vs] if NOT [%USE_INTEGRATED_LIBS%]==[yes] vcpkg integrate install - - if [%COMPILER%]==[vs] if NOT [%USE_INTEGRATED_LIBS%]==[yes] vcpkg install opencv pthreads + - if [%COMPILER%]==[vs] if NOT [%USE_INTEGRATED_LIBS%]==[yes] if NOT [%USE_CUDA%]==[yes] vcpkg install opencv pthreads + - if [%COMPILER%]==[vs] if NOT [%USE_INTEGRATED_LIBS%]==[yes] if [%USE_CUDA%]==[yes] vcpkg install opencv[cuda] pthreads - cd %WORKSPACE%\darknet\ - mkdir build_debug && cd build_debug - if [%COMPILER%]==[cygwin] %CYGSH% 'cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE="Debug"'