cmake_minimum_required(VERSION 2.8)
-set(KCF_LIB_SRC kcf.cpp kcf.h fft.cpp threadctx.hpp pragmas.h dynmem.hpp debug.cpp)
+set(KCF_LIB_SRC kcf.cpp kcf.h fft.cpp threadctx.hpp pragmas.h dynmem.hpp debug.cpp complexmat.hpp)
find_package(PkgConfig)
SET(use_cuda OFF)
IF(FFT STREQUAL "OpenCV")
- list(APPEND KCF_LIB_SRC fft_opencv.cpp complexmat.hpp)
+ list(APPEND KCF_LIB_SRC fft_opencv.cpp)
ELSEIF(FFT STREQUAL "fftw")
- list(APPEND KCF_LIB_SRC fft_fftw.cpp complexmat.hpp)
+ list(APPEND KCF_LIB_SRC fft_fftw.cpp)
add_definitions(-DFFTW)
pkg_check_modules(FFTW REQUIRED fftw3f)
ELSEIF(FFT STREQUAL "cuFFTW")
- list(APPEND KCF_LIB_SRC fft_fftw.cpp complexmat.hpp)
+ list(APPEND KCF_LIB_SRC fft_fftw.cpp)
add_definitions(-DFFTW -DCUFFTW)
set(use_cuda ON)
ELSEIF(FFT STREQUAL "cuFFT")
- list(APPEND KCF_LIB_SRC fft_cufft.cpp complexmat.cuh cuda_functions.cuh)
+ list(APPEND KCF_LIB_SRC fft_cufft.cpp)
add_definitions(-DCUFFT)
set(use_cuda ON)
iF(CUDA_DEBUG)
MESSAGE(FATAL_ERROR "Invalid FFT implementation selected")
ENDIF()
+IF(FFT STREQUAL "cuFFT")
+ list(APPEND KCF_LIB_SRC complexmat.cu)
+ELSE()
+ list(APPEND KCF_LIB_SRC complexmat.cpp)
+ENDIF()
+
IF((FFT STREQUAL "OpenCV") AND BIG_BATCH)
message(SEND_ERROR "OpenCV version does not support big batch mode.")
ENDIF()
CUDA_SELECT_NVCC_ARCH_FLAGS(ARCH_FLAGS ${CUDA_ARCH_LIST})
list( APPEND CUDA_NVCC_FLAGS -O3 -std=c++11 ${ARCH_FLAGS} --default-stream per-thread) # --gpu-architecture sm_62 )
find_cuda_helper_libs(cufftw)
- IF(FFT STREQUAL "cuFFT")
- cuda_add_library(kcfcuda complexmat.cu cuda_functions.cu)
- ENDIF()
-
+ find_cuda_helper_libs(nvToolsExt)
ENDIF()
add_subdirectory(piotr_fhog)
add_subdirectory(cn)
-add_library(kcf STATIC ${KCF_LIB_SRC})
+if(FFT STREQUAL "cuFFT")
+ cuda_add_library(kcf STATIC ${KCF_LIB_SRC})
+else()
+ add_library(kcf STATIC ${KCF_LIB_SRC})
+endif()
+
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
target_compile_options(kcf PRIVATE -Wno-gnu-zero-variadic-macro-arguments)
endif()
ENDIF() #cuFFTW
IF(FFT STREQUAL "cuFFT")
- target_link_libraries(kcf kcfcuda ${CUDA_cufft_LIBRARY} ${CUDA_cublas_LIBRARY} ${CUDA_LIBRARIES})
+ target_link_libraries(kcf ${CUDA_cufft_LIBRARY} ${CUDA_cublas_LIBRARY} ${CUDA_LIBRARIES} ${CUDA_nvToolsExt_LIBRARY})
ENDIF()
IF(PROFILING)