MESSAGE(STATUS "Big_batch mode")
ENDIF()
+IF (("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") AND NOT OPENMP)
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-pragmas")
+ENDIF()
+
SET(use_cuda OFF)
IF(FFT STREQUAL "OpenCV")
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 complexmat.cuh cuda_functions.cuh complexmat.cu cuda_functions.cu)
add_definitions(-DCUFFT)
set(use_cuda ON)
iF(CUDA_DEBUG)
IF(ASYNC)
add_definitions(-DASYNC)
+ find_package(Threads REQUIRED)
MESSAGE(STATUS "ASYNC")
ELSEIF(OPENMP)
- add_definitions(-DOPENMP)
- MESSAGE(STATUS "OPENMP")
+ add_definitions(-DOPENMP)
+ FIND_PACKAGE(OpenMP REQUIRED CXX)
ENDIF() #ASYNC
FIND_PACKAGE( OpenCV REQUIRED )
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()
-
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")
- set_property(TARGET kcf APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-gnu-zero-variadic-macro-arguments ")
+ target_compile_options(kcf PRIVATE -Wno-gnu-zero-variadic-macro-arguments)
endif()
target_link_libraries(kcf ${FFTW_LDFLAGS})
IF(OPENMP)
target_link_libraries(kcf fftw3_omp)
- ELSEIF(NOT ASYNC)
+ ELSE()
target_link_libraries(kcf fftw3_threads)
ENDIF()
ENDIF() #FFTW
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})
ENDIF()
IF(PROFILING)
target_link_libraries(kcf pfm)
ENDIF()
+
+IF(OPENMP)
+ target_compile_options(kcf PUBLIC ${OpenMP_CXX_FLAGS})
+ target_link_libraries(kcf ${OpenMP_CXX_LIB_NAMES})
+ target_link_libraries(kcf ${OpenMP_omp_LIBRARY})
+ if (("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") AND NOT OpenMP_CXX_LIB_NAMES)
+ # Older cmake does not set OpenMP_CXX_LIB_NAMES so hardcode it here
+ target_link_libraries(kcf gomp)
+ endif()
+ENDIF()
+
+if(THREADS_HAVE_PTHREAD_ARG)
+ target_compile_options(kcf PUBLIC "-pthread")
+endif()
+if(CMAKE_THREAD_LIBS_INIT)
+ target_link_libraries(kcf "${CMAKE_THREAD_LIBS_INIT}")
+endif()