X-Git-Url: http://rtime.felk.cvut.cz/gitweb/hercules2020/kcf.git/blobdiff_plain/7f15abdc856272c897c66019034cf5378cf569c0..297b7fa4d28734f72d28682f9ea0b3ec85b73b98:/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 1ab0f30..28062bd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,61 +2,21 @@ cmake_minimum_required(VERSION 3.0.2) project(kcf_tracker) -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -pedantic -O3 -Wno-long-long -fno-omit-frame-pointer") - -SET(FFT "OpenCV" CACHE STRING "Select FFT implementation") -SET_PROPERTY(CACHE FFT PROPERTY STRINGS OpenCV OpenCV_cuFFT fftw cuFFTW) -MESSAGE(STATUS "FFT implementation: ${FFT}") - -option(OPENMP "Use OpenMP library. Works with FFTW and OpenCV implementation." OFF) -option(ASYNC "Works only if OPENCV_CUFFT is not ON. Will enable C++ async directive." OFF) -option(DEBUG_MODE "Additional terminal outputs and screens. " OFF) -option(PROFILING "Enable profiling using perf_event_open together with libpfm4. " OFF) - -IF(DEBUG_MODE ) - add_definitions(-DDEBUG_MODE ) - MESSAGE(STATUS "Debug mode") -ENDIF() #DEBUG_MODE - -IF(PROFILING) - add_definitions(-DPROFILING ) - MESSAGE(STATUS "Profiling mode") -ENDIF() #DEBUG_MODE - -SET(use_cuda OFF) - -IF(FFT STREQUAL "OpenCV") -ELSEIF(FFT STREQUAL "OpenCV_cuFFT") - add_definitions(-DOPENCV_CUFFT) - set(use_cuda ON) -ELSEIF(FFT STREQUAL "fftw") - add_definitions(-DFFTW) -ELSEIF(FFT STREQUAL "cuFFTW") - add_definitions(-DFFTW -DCUFFTW) - set(use_cuda ON) -ELSE() - MESSAGE(FATAL_ERROR "Invalid FFT implementation selected") -ENDIF() - -IF(ASYNC AND NOT OPENMP) - add_definitions(-DASYNC) - MESSAGE(STATUS "ASYNC") -ENDIF() #ASYNC +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -pedantic -Wno-long-long -fno-omit-frame-pointer") +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(default_build_type "Release") + message(STATUS "Setting build type to '${default_build_type}' as none was specified.") + set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE + STRING "Choose the type of build." FORCE) + # Set the possible values of build type for cmake-gui + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Release" "MinSizeRel" "RelWithDebInfo") +endif() FIND_PACKAGE( OpenCV REQUIRED ) link_directories ( ${OpenCV_LIB_DIR} ) -MESSAGE(STATUS "OpenCV_LIB_DIR: ${OpenCV_LIB_DIR} ") - -IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - IF(NOT OPENMP) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -Wno-unknown-pragmas") - ELSE() - MESSAGE(STATUS "OpenMP") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp") - ENDIF() #ASYNC -ENDIF () - include_directories ( ${OpenCV_INCLUDE_DIRS} ) +MESSAGE(STATUS "OpenCV_LIB_DIR: ${OpenCV_LIB_DIR} ") MESSAGE(STATUS "OpenCV_INCLUDE_DIRS: ${OpenCV_INCLUDE_DIRS}") INCLUDE_DIRECTORIES( ${CMAKE_BINARY_DIR}/) @@ -64,18 +24,6 @@ include_directories(${CMAKE_SOURCE_DIR}/src/ ${CMAKE_SOURCE_DIR}/src/piotr_fhog include_directories(${CMAKE_SOURCE_DIR}/sse2neon) -IF(use_cuda) - find_package(CUDA REQUIRED) - - include_directories ( ${CUDA_INCLUDE_DIRS} ) - MESSAGE(STATUS "CUDA_INCLUDE_DIRS: ${CUDA_INCLUDE_DIRS}") - set(CUDA_SEPARABLE_COMPILATION ON) - set(CUDA_PROPAGATE_HOST_FLAGS OFF) - set(CUDA_HOST_COMPILER /usr/bin/g++) - list( APPEND CUDA_NVCC_FLAGS "-O3 --gpu-architecture compute_62 -std=c++11") - find_cuda_helper_libs(cufftw) -ENDIF() - add_subdirectory(src) IF(NOT use_cuda) @@ -86,18 +34,3 @@ ELSE() ENDIF() #OPENCV_CUFFT target_link_libraries(kcf_vot ${OpenCV_LIBS} kcf) - -IF(FFT STREQUAL "fftw") - target_link_libraries(kcf_vot fftw3f) - IF(OPENMP) - target_link_libraries(kcf_vot fftw3_omp) - ENDIF() -ENDIF() #FFTW - -IF(FFT STREQUAL "cuFFTW") - target_link_libraries(kcf_vot ${CUDA_cufft_LIBRARY} ${CUDA_cufftw_LIBRARY}) -ENDIF() #cuFFTW - -IF(PROFILING) - target_link_libraries(kcf_vot pfm) -ENDIF()