added flags OpenCV_COMPUTE_CAPABILITIES, which stores the version compute capability from which it is compiled opencv
now use opencv with cuda in your application in the such way : set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} ${OpenCV_COMPUTE_CAPABILITIES})
This commit is contained in:
parent
096080de70
commit
199ffc632d
@ -35,6 +35,11 @@ set(CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL "" CACHE INTERNAL "" FORCE)
|
|||||||
set(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO "" 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_MINSIZEREL "" CACHE INTERNAL "" FORCE)
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "" 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)
|
project(OpenCV)
|
||||||
|
|
||||||
@ -642,6 +647,29 @@ if (WITH_CUDA)
|
|||||||
if (CUDA_FOUND)
|
if (CUDA_FOUND)
|
||||||
message(STATUS "CUDA detected.")
|
message(STATUS "CUDA detected.")
|
||||||
set(HAVE_CUDA 1)
|
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()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -14,13 +14,19 @@
|
|||||||
# - OpenCV_LIB_DIR : The directory where lib files are. Calling LINK_DIRECTORIES
|
# - OpenCV_LIB_DIR : The directory where lib files are. Calling LINK_DIRECTORIES
|
||||||
# with this path is NOT needed.
|
# with this path is NOT needed.
|
||||||
# - OpenCV_INCLUDE_DIRS : The OpenCV include directories.
|
# - OpenCV_INCLUDE_DIRS : The OpenCV include directories.
|
||||||
|
# - OpenCV_COMPUTE_CAPABILITIES : The version of compute capability
|
||||||
# - OpenCV_VERSION : The version of this OpenCV build. Example: "1.2.0"
|
# - OpenCV_VERSION : The version of this OpenCV build. Example: "1.2.0"
|
||||||
# - OpenCV_VERSION_MAJOR : Major version part of OpenCV_VERSION. Example: "1"
|
# - OpenCV_VERSION_MAJOR : Major version part of OpenCV_VERSION. Example: "1"
|
||||||
# - OpenCV_VERSION_MINOR : Minor version part of OpenCV_VERSION. Example: "2"
|
# - OpenCV_VERSION_MINOR : Minor version part of OpenCV_VERSION. Example: "2"
|
||||||
# - OpenCV_VERSION_PATCH : Patch version part of OpenCV_VERSION. Example: "0"
|
# - OpenCV_VERSION_PATCH : Patch version part of OpenCV_VERSION. Example: "0"
|
||||||
#
|
#
|
||||||
# ===================================================================================
|
# =================================================================================================
|
||||||
|
|
||||||
|
# ======================================================
|
||||||
|
# Version Compute Capability from which library OpenCV
|
||||||
|
# has been compiled is remembered
|
||||||
|
# ======================================================
|
||||||
|
SET(OpenCV_COMPUTE_CAPABILITIES @OpenCV_CUDA_CC@)
|
||||||
|
|
||||||
# Extract the directory where *this* file has been installed (determined at cmake run-time)
|
# Extract the directory where *this* file has been installed (determined at cmake run-time)
|
||||||
# This variable may or may not be used below, depending on the parsing of OpenCVConfig.cmake
|
# This variable may or may not be used below, depending on the parsing of OpenCVConfig.cmake
|
||||||
|
@ -36,28 +36,6 @@ if (HAVE_CUDA)
|
|||||||
include_directories(${CUDA_INCLUDE_DIRS})
|
include_directories(${CUDA_INCLUDE_DIRS})
|
||||||
link_directories(${CUDA_LIBRARIES})
|
link_directories(${CUDA_LIBRARIES})
|
||||||
|
|
||||||
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 (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})
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
message(STATUS " CUDA_NVCC_FLAGS: ${CUDA_NVCC_FLAGS} ")
|
|
||||||
|
|
||||||
|
|
||||||
if (UNIX OR APPLE)
|
if (UNIX OR APPLE)
|
||||||
set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-Xcompiler;-fPIC;")
|
set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-Xcompiler;-fPIC;")
|
||||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" "-fPIC")
|
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" "-fPIC")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user