1 cmake_minimum_required(VERSION 3.0.2)
5 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -pedantic -O3 -Wno-long-long -fno-omit-frame-pointer")
7 SET(FFT "OpenCV" CACHE STRING "Select FFT implementation")
8 SET_PROPERTY(CACHE FFT PROPERTY STRINGS OpenCV OpenCV_cuFFT fftw cuFFTW)
9 MESSAGE(STATUS "FFT implementation: ${FFT}")
11 option(OPENMP "Use OpenMP library. Works with FFTW and OpenCV implementation." OFF)
12 option(ASYNC "Works only if OPENCV_CUFFT is not ON. Will enable C++ async directive." OFF)
13 option(DEBUG_MODE "Additional terminal outputs and screens. " OFF)
14 option(PROFILING "Enable profiling using perf_event_open together with libpfm4. " OFF)
17 add_definitions(-DDEBUG_MODE )
18 MESSAGE(STATUS "Debug mode")
22 add_definitions(-DPROFILING )
23 MESSAGE(STATUS "Profiling mode")
28 IF(FFT STREQUAL "OpenCV")
29 ELSEIF(FFT STREQUAL "OpenCV_cuFFT")
30 add_definitions(-DOPENCV_CUFFT)
32 ELSEIF(FFT STREQUAL "fftw")
33 add_definitions(-DFFTW)
34 ELSEIF(FFT STREQUAL "cuFFTW")
35 add_definitions(-DFFTW -DCUFFTW)
38 MESSAGE(FATAL_ERROR "Invalid FFT implementation selected")
41 IF(ASYNC AND NOT OPENMP)
42 add_definitions(-DASYNC)
43 MESSAGE(STATUS "ASYNC")
46 FIND_PACKAGE( OpenCV REQUIRED )
47 link_directories ( ${OpenCV_LIB_DIR} )
48 MESSAGE(STATUS "OpenCV_LIB_DIR: ${OpenCV_LIB_DIR} ")
50 IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
52 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -Wno-unknown-pragmas")
54 MESSAGE(STATUS "OpenMP")
55 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
59 include_directories ( ${OpenCV_INCLUDE_DIRS} )
60 MESSAGE(STATUS "OpenCV_INCLUDE_DIRS: ${OpenCV_INCLUDE_DIRS}")
62 INCLUDE_DIRECTORIES( ${CMAKE_BINARY_DIR}/)
63 include_directories(${CMAKE_SOURCE_DIR}/src/ ${CMAKE_SOURCE_DIR}/src/piotr_fhog ${CMAKE_SOURCE_DIR}/src/cn)
65 include_directories(${CMAKE_SOURCE_DIR}/sse2neon)
70 add_executable(kcf_vot main_vot.cpp vot.hpp)
72 find_package(CUDA REQUIRED)
74 include_directories ( ${CUDA_INCLUDE_DIRS} )
75 MESSAGE(STATUS "CUDA_INCLUDE_DIRS: ${CUDA_INCLUDE_DIRS}")
76 set(CUDA_SEPARABLE_COMPILATION ON)
77 set(CUDA_PROPAGATE_HOST_FLAGS OFF)
78 set(CUDA_HOST_COMPILER /usr/bin/g++)
79 list( APPEND CUDA_NVCC_FLAGS "-O3 --gpu-architecture compute_62 -std=c++11")
80 find_cuda_helper_libs(cufftw)
82 cuda_add_executable( kcf_vot main_vot.cpp vot.hpp )
83 target_link_libraries(kcf_vot ${CUDA_LIBRARIES})
86 target_link_libraries(kcf_vot ${OpenCV_LIBS} kcf)
88 IF(FFT STREQUAL "fftw")
89 target_link_libraries(kcf_vot fftw3f)
91 target_link_libraries(kcf_vot fftw3_omp)
95 IF(FFT STREQUAL "cuFFTW")
96 target_link_libraries(kcf_vot ${CUDA_cufft_LIBRARY} ${CUDA_cufftw_LIBRARY})
100 target_link_libraries(kcf_vot pfm)