|
|
|
@ -35,6 +35,11 @@ set(CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL "" CACHE INTERNAL "" FORCE) |
|
|
|
|
set(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO "" CACHE INTERNAL "" FORCE) |
|
|
|
|
set(CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "" CACHE INTERNAL "" FORCE) |
|
|
|
|
set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "" CACHE INTERNAL "" FORCE) |
|
|
|
|
set(CMAKE_VERBOSE OFF CACHE BOOL "Verbose mode") |
|
|
|
|
|
|
|
|
|
if (CMAKE_VERBOSE) |
|
|
|
|
set (CMAKE_VERBOSE_MAKEFILE 1) |
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
project(OpenCV) |
|
|
|
|
|
|
|
|
@ -642,6 +647,29 @@ if (WITH_CUDA) |
|
|
|
|
if (CUDA_FOUND) |
|
|
|
|
message(STATUS "CUDA detected.") |
|
|
|
|
set(HAVE_CUDA 1) |
|
|
|
|
|
|
|
|
|
set(CUDA_COMPUTE_CAPABILITIES " 1.0 1.1 1.2 1.3 2.0 " CACHE STRING "Add or remove compute capability") |
|
|
|
|
set(CUDA_NVCC_FLAGS_ARCH ${CUDA_COMPUTE_CAPABILITIES}) |
|
|
|
|
|
|
|
|
|
set(CUDA_NVCC_FLAGS_NUM "") |
|
|
|
|
|
|
|
|
|
while(NOT ${CUDA_NVCC_FLAGS_ARCH} STREQUAL "") |
|
|
|
|
string(REGEX MATCH "[0-9]+.[0-9]+" RESULT_NUM ${CUDA_NVCC_FLAGS_ARCH}) |
|
|
|
|
string(REGEX MATCHALL "[0-9]" RESULT_STR ${RESULT_NUM}) |
|
|
|
|
string(REGEX REPLACE ";" "\ " RESULT ${RESULT_STR}) |
|
|
|
|
list(APPEND CUDA_NVCC_FLAGS_NUM ${RESULT}) |
|
|
|
|
string(REGEX REPLACE "${RESULT_NUM}" "\ " CUDA_NVCC_FLAGS_ARCH_STR ${CUDA_NVCC_FLAGS_ARCH}) |
|
|
|
|
string(STRIP ${CUDA_NVCC_FLAGS_ARCH_STR} CUDA_NVCC_FLAGS_ARCH) |
|
|
|
|
endwhile() |
|
|
|
|
|
|
|
|
|
set (OpenCV_CUDA_CC "") |
|
|
|
|
set (loop_var "") |
|
|
|
|
foreach( loop_var IN LISTS CUDA_NVCC_FLAGS_NUM) |
|
|
|
|
set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} -gencode arch=compute_${loop_var},code=sm_${loop_var}) |
|
|
|
|
set (OpenCV_CUDA_CC ${OpenCV_CUDA_CC} -gencode arch=compute_${loop_var},code=sm_${loop_var}) |
|
|
|
|
endforeach() |
|
|
|
|
|
|
|
|
|
### set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} ${OpenCV_COMPUTE_CAPABILITIES}) |
|
|
|
|
endif() |
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|