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:
Andrey Morozov 2010-08-25 12:49:17 +00:00
parent 096080de70
commit 199ffc632d
3 changed files with 102 additions and 90 deletions

@ -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)
@ -142,7 +147,7 @@ if(CMAKE_COMPILER_IS_GNUCXX)
list(GET CMAKE_OPENCV_GCC_VERSIONS 0 CMAKE_OPENCV_GCC_VERSION_MAJOR) list(GET CMAKE_OPENCV_GCC_VERSIONS 0 CMAKE_OPENCV_GCC_VERSION_MAJOR)
list(GET CMAKE_OPENCV_GCC_VERSIONS 1 CMAKE_OPENCV_GCC_VERSION_MINOR) list(GET CMAKE_OPENCV_GCC_VERSIONS 1 CMAKE_OPENCV_GCC_VERSION_MINOR)
set(CMAKE_OPENCV_GCC_VERSION ${CMAKE_OPENCV_GCC_VERSION_MAJOR}${CMAKE_OPENCV_GCC_VERSION_MINOR}) set(CMAKE_OPENCV_GCC_VERSION ${CMAKE_OPENCV_GCC_VERSION_MAJOR}${CMAKE_OPENCV_GCC_VERSION_MINOR})
math(EXPR CMAKE_OPENCV_GCC_VERSION_NUM "${CMAKE_OPENCV_GCC_VERSION_MAJOR}*100 + ${CMAKE_OPENCV_GCC_VERSION_MINOR}") math(EXPR CMAKE_OPENCV_GCC_VERSION_NUM "${CMAKE_OPENCV_GCC_VERSION_MAJOR}*100 + ${CMAKE_OPENCV_GCC_VERSION_MINOR}")
message(STATUS "Detected version of GNU GCC: ${CMAKE_OPENCV_GCC_VERSION} (${CMAKE_OPENCV_GCC_VERSION_NUM})") message(STATUS "Detected version of GNU GCC: ${CMAKE_OPENCV_GCC_VERSION} (${CMAKE_OPENCV_GCC_VERSION_NUM})")
@ -228,14 +233,14 @@ if(CMAKE_COMPILER_IS_GNUCXX)
set(USE_O2 ON CACHE BOOL "Enable -O2 for GCC") set(USE_O2 ON CACHE BOOL "Enable -O2 for GCC")
set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC") set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
endif() endif()
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES amd64*) if(${CMAKE_SYSTEM_PROCESSOR} MATCHES amd64*)
set(X86_64 1) set(X86_64 1)
endif() endif()
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86_64*) if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86_64*)
set(X86_64 1) set(X86_64 1)
endif() endif()
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES i686*) if(${CMAKE_SYSTEM_PROCESSOR} MATCHES i686*)
set(X86 1) set(X86 1)
endif() endif()
@ -245,12 +250,12 @@ if(CMAKE_COMPILER_IS_GNUCXX)
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86*) if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86*)
set(X86 1) set(X86 1)
endif() endif()
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES powerpc*) if(${CMAKE_SYSTEM_PROCESSOR} MATCHES powerpc*)
set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC") set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
set(ENABLE_POWERPC ON CACHE BOOL "Enable PowerPC for GCC") set(ENABLE_POWERPC ON CACHE BOOL "Enable PowerPC for GCC")
endif () endif ()
if(X86 OR X86_64) if(X86 OR X86_64)
# enable everything, since the available set of instructions is checked at runtime # enable everything, since the available set of instructions is checked at runtime
set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC") set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
@ -295,7 +300,7 @@ set(WITH_EIGEN2 ON CACHE BOOL "Include Eigen2 support")
set(WITH_CUDA OFF CACHE BOOL "Include NVidia Cuda Runtime support") set(WITH_CUDA OFF CACHE BOOL "Include NVidia Cuda Runtime support")
if(WIN32) if(WIN32)
set(WITH_VIDEOINPUT ON CACHE BOOL "Enable VideoInput support") set(WITH_VIDEOINPUT ON CACHE BOOL "Enable VideoInput support")
endif() endif()
# =================================================== # ===================================================
@ -320,7 +325,7 @@ macro(CHECK_MODULE module_name define)
foreach(P "${ALIAS_INCLUDE_DIRS}") foreach(P "${ALIAS_INCLUDE_DIRS}")
if (${P}) if (${P})
list(APPEND HIGHGUI_INCLUDE_DIRS ${${P}}) list(APPEND HIGHGUI_INCLUDE_DIRS ${${P}})
endif() endif()
endforeach() endforeach()
foreach(P "${ALIAS_LIBRARY_DIRS}") foreach(P "${ALIAS_LIBRARY_DIRS}")
@ -361,7 +366,7 @@ if(UNIX)
else() else()
set(HAVE_UNICAP FALSE) set(HAVE_UNICAP FALSE)
endif() endif()
if(WITH_PVAPI) if(WITH_PVAPI)
find_path(PVAPI_INCLUDE_PATH "PvApi.h" find_path(PVAPI_INCLUDE_PATH "PvApi.h"
PATHS "/usr/local/include" "/usr/include" PATHS "/usr/local/include" "/usr/include"
@ -387,7 +392,7 @@ if(UNIX)
if(HAVE_FFMPEG_CODEC AND HAVE_FFMPEG_FORMAT AND HAVE_FFMPEG_UTIL) if(HAVE_FFMPEG_CODEC AND HAVE_FFMPEG_FORMAT AND HAVE_FFMPEG_UTIL)
if(HAVE_FFMPEG_SWSCALE OR NOT HAVE_GENTOO_FFMPEG) if(HAVE_FFMPEG_SWSCALE OR NOT HAVE_GENTOO_FFMPEG)
set(HAVE_FFMPEG 1) set(HAVE_FFMPEG 1)
endif() endif()
endif() endif()
# Find the bzip2 library because it is required on some systems # Find the bzip2 library because it is required on some systems
FIND_LIBRARY(BZIP2_LIBRARIES NAMES bz2 bzip2) FIND_LIBRARY(BZIP2_LIBRARIES NAMES bz2 bzip2)
@ -454,7 +459,7 @@ if(UNIX)
set(JPEG_FOUND FALSE) set(JPEG_FOUND FALSE)
endif() endif()
endif() endif()
if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
set(OPENCV_LINKER_LIBS m pthread) set(OPENCV_LINKER_LIBS m pthread)
else() else()
@ -479,7 +484,7 @@ if(BUILD_NEW_PYTHON_SUPPORT)
if(NOT PYTHONLIBS_FOUND AND PYTHON_INCLUDE_PATH) if(NOT PYTHONLIBS_FOUND AND PYTHON_INCLUDE_PATH)
set(PYTHONLIBS_FOUND ON) set(PYTHONLIBS_FOUND ON)
endif(NOT PYTHONLIBS_FOUND AND PYTHON_INCLUDE_PATH) endif(NOT PYTHONLIBS_FOUND AND PYTHON_INCLUDE_PATH)
execute_process(COMMAND ${PYTHON_EXECUTABLE} --version execute_process(COMMAND ${PYTHON_EXECUTABLE} --version
ERROR_VARIABLE PYTHON_VERSION_FULL ERROR_VARIABLE PYTHON_VERSION_FULL
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
@ -526,7 +531,7 @@ if (WITH_QT)
find_package(Qt4) find_package(Qt4)
if (QT4_FOUND) if (QT4_FOUND)
set(HAVE_QT 1) set(HAVE_QT 1)
add_definitions(-DHAVE_QT)#We need to define te macro this way, using cvconfig.h.cmake does not work add_definitions(-DHAVE_QT)#We need to define te macro this way, using cvconfig.h.cmake does not work
find_package (OpenGL QUIET) find_package (OpenGL QUIET)
@ -538,21 +543,21 @@ if (WITH_QT)
add_definitions(-DHAVE_QT_OPENGL) add_definitions(-DHAVE_QT_OPENGL)
#link_directories("${OPENGL_LIBRARIES}") #link_directories("${OPENGL_LIBRARIES}")
set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${OPENGL_LIBRARIES}) set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${OPENGL_LIBRARIES})
endif() endif()
endif() endif()
#endif() #endif()
endif() endif()
endif() endif()
############################### TBB ################################ ############################### TBB ################################
if (WITH_TBB) if (WITH_TBB)
if (UNIX AND NOT APPLE) if (UNIX AND NOT APPLE)
PKG_CHECK_MODULES(TBB tbb) PKG_CHECK_MODULES(TBB tbb)
message(STATUS "TBB detected: ${TBBLIB_FOUND}") message(STATUS "TBB detected: ${TBBLIB_FOUND}")
if (TBB_FOUND) if (TBB_FOUND)
set(HAVE_TBB 1) set(HAVE_TBB 1)
if(NOT "${TBB_INCLUDE_DIRS}" STREQUAL "") if(NOT "${TBB_INCLUDE_DIRS}" STREQUAL "")
include_directories("${TBB_INCLUDE_DIRS}") include_directories("${TBB_INCLUDE_DIRS}")
@ -563,19 +568,19 @@ if (WITH_TBB)
set(TBB_DEFAULT_INCLUDE_DIRS set(TBB_DEFAULT_INCLUDE_DIRS
"/opt/intel/tbb" "/opt/intel/tbb"
"/usr/local/include" "/usr/local/include"
"/usr/include") "/usr/include")
endif() endif()
endif() endif()
if (APPLE) if (APPLE)
set(TBB_DEFAULT_INCLUDE_DIRS set(TBB_DEFAULT_INCLUDE_DIRS
"/usr/local/include" "/usr/local/include"
"/usr/include") "/usr/include")
endif() endif()
if (WIN32) if (WIN32)
set(TBB_DEFAULT_INCLUDE_DIRS set(TBB_DEFAULT_INCLUDE_DIRS
"C:/Program Files/Intel/TBB" "C:/Program Files/Intel/TBB"
"C:/Program Files (x86)/Intel/TBB") "C:/Program Files (x86)/Intel/TBB")
endif() endif()
if (NOT HAVE_TBB) if (NOT HAVE_TBB)
find_path(TBB_INCLUDE_DIR "tbb/tbb.h" find_path(TBB_INCLUDE_DIR "tbb/tbb.h"
PATHS TBB_DEFAULT_INCLUDE_DIRS PATHS TBB_DEFAULT_INCLUDE_DIRS
@ -610,7 +615,7 @@ if (WITH_TBB)
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86*) if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86*)
set(X86 1) set(X86 1)
endif() endif()
set(_TBB_LIB_PATH "${TBB_INCLUDE_DIR}/../lib") set(_TBB_LIB_PATH "${TBB_INCLUDE_DIR}/../lib")
if (X86_64) if (X86_64)
set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/intel64") set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/intel64")
@ -626,7 +631,7 @@ if (WITH_TBB)
link_directories("${TBB_LIB_DIR}") link_directories("${TBB_LIB_DIR}")
endif() endif()
endif() endif()
set(HAVE_TBB 1) set(HAVE_TBB 1)
if(NOT "${TBB_INCLUDE_DIR}" STREQUAL "") if(NOT "${TBB_INCLUDE_DIR}" STREQUAL "")
include_directories("${TBB_INCLUDE_DIR}") include_directories("${TBB_INCLUDE_DIR}")
@ -638,10 +643,33 @@ endif()
############################### CUDA ################################ ############################### CUDA ################################
if (WITH_CUDA) if (WITH_CUDA)
find_package(CUDA) find_package(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()
@ -650,16 +678,16 @@ endif()
if (WIN32 AND WITH_VIDEOINPUT) if (WIN32 AND WITH_VIDEOINPUT)
if(CMAKE_CXX_COMPILER MATCHES "dw2") if(CMAKE_CXX_COMPILER MATCHES "dw2")
else() else()
if(NOT MINGW64) if(NOT MINGW64)
set(HAVE_VIDEOINPUT 1) set(HAVE_VIDEOINPUT 1)
endif() endif()
endif() endif()
endif() endif()
############################## Eigen2 ############################## ############################## Eigen2 ##############################
if(WITH_EIGEN2) if(WITH_EIGEN2)
find_path(EIGEN2_INCLUDE_PATH "Eigen/Core" find_path(EIGEN2_INCLUDE_PATH "Eigen/Core"
PATHS "/usr/local/include/eigen2" "/opt/include/eigen2" "/usr/include/eigen2" PATHS "/usr/local/include/eigen2" "/opt/include/eigen2" "/usr/include/eigen2"
DOC "The path to Eigen2 headers") DOC "The path to Eigen2 headers")
if(EIGEN2_INCLUDE_PATH) if(EIGEN2_INCLUDE_PATH)
@ -723,13 +751,13 @@ if(IPP_FOUND AND USE_IPP)
add_definitions(-DHAVE_IPP) add_definitions(-DHAVE_IPP)
include_directories("${IPP_PATH}/../include") include_directories("${IPP_PATH}/../include")
link_directories("${IPP_PATH}/../lib") link_directories("${IPP_PATH}/../lib")
file(GLOB em64t_files "${IPP_PATH}/../lib/*em64t*") file(GLOB em64t_files "${IPP_PATH}/../lib/*em64t*")
set(IPP_ARCH) set(IPP_ARCH)
if(em64t_files) if(em64t_files)
set(IPP_ARCH "em64t") set(IPP_ARCH "em64t")
endif() endif()
set(A ${CMAKE_STATIC_LIBRARY_PREFIX}) set(A ${CMAKE_STATIC_LIBRARY_PREFIX})
set(B ${IPP_ARCH}${CMAKE_STATIC_LIBRARY_SUFFIX}) set(B ${IPP_ARCH}${CMAKE_STATIC_LIBRARY_SUFFIX})
if(WIN32) if(WIN32)
@ -754,7 +782,7 @@ set(BUILD_LATEX_DOCS OFF CACHE BOOL "Build LaTeX OpenCV Documentation")
find_package(Doxygen) find_package(Doxygen)
if(DOXYGEN_FOUND) if(DOXYGEN_FOUND)
set(BUILD_DOXYGEN_DOCS ON CACHE BOOL "Generate HTML docs using Doxygen") set(BUILD_DOXYGEN_DOCS ON CACHE BOOL "Generate HTML docs using Doxygen")
endif() endif()
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
@ -888,7 +916,7 @@ if(CMAKE_COMPILER_IS_GNUCXX)
#endif() #endif()
endif() endif()
endif() endif()
if(X86 OR X86_64) if(X86 OR X86_64)
if(NOT APPLE) if(NOT APPLE)
if(${CMAKE_SIZEOF_VOID_P} EQUAL 4) if(${CMAKE_SIZEOF_VOID_P} EQUAL 4)
@ -969,9 +997,9 @@ if (WIN32 AND MSVC)
string(REPLACE "/EHsc" "/EHsc-" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") string(REPLACE "/EHsc" "/EHsc-" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
string(REPLACE "/EHsc" "/EHsc-" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") string(REPLACE "/EHsc" "/EHsc-" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
string(REPLACE "/EHsc" "/EHsc-" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") string(REPLACE "/EHsc" "/EHsc-" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
string(REPLACE "/Zm1000" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") string(REPLACE "/Zm1000" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
string(REPLACE "/Zm1000" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") string(REPLACE "/Zm1000" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
endif() endif()
if("${CMAKE_CONFIGURE_LDFLAGS}") if("${CMAKE_CONFIGURE_LDFLAGS}")
@ -1038,10 +1066,10 @@ endif()
# ------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------
if(WIN32) if(WIN32)
# Set CMAKE_INCLUDE_DIRS_CONFIGCMAKE to the list of include directories: # Set CMAKE_INCLUDE_DIRS_CONFIGCMAKE to the list of include directories:
# This will expand to, for example, <program files>/OpenCV 1.1.0/include # This will expand to, for example, <program files>/OpenCV 1.1.0/include
set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}/include\" \"\${THIS_OPENCV_CONFIG_PATH}/include/opencv\"") set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}/include\" \"\${THIS_OPENCV_CONFIG_PATH}/include/opencv\"")
set(CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE "\"${THIS_OPENCV_CONFIG_PATH}\"") set(CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE "\"${THIS_OPENCV_CONFIG_PATH}\"")
# This will expand to, for example, <program files>/OpenCV 1.1.0/lib # This will expand to, for example, <program files>/OpenCV 1.1.0/lib
set(CMAKE_LIB_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}/lib\"") set(CMAKE_LIB_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}/lib\"")
@ -1097,7 +1125,7 @@ if(BUILD_PACKAGE)
${CMAKE_BINARY_DIR}/.cpack/Package.cmake ${CMAKE_BINARY_DIR}/.cpack/Package.cmake
@ONLY @ONLY
) )
include(${CMAKE_BINARY_DIR}/.cpack/Package.cmake) include(${CMAKE_BINARY_DIR}/.cpack/Package.cmake)
set(root_files README) set(root_files README)
@ -1115,8 +1143,8 @@ if(BUILD_PACKAGE)
install(FILES ${root_src_files} install(FILES ${root_src_files}
DESTINATION "." DESTINATION "."
COMPONENT src) COMPONENT src)
# Add the "win-install/OpenCVConfig.cmake" file to the "main" install component # Add the "win-install/OpenCVConfig.cmake" file to the "main" install component
install(FILES install(FILES
"${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake"
DESTINATION "." DESTINATION "."
COMPONENT main COMPONENT main
@ -1128,7 +1156,7 @@ if(BUILD_PACKAGE)
DESTINATION bin COMPONENT main) DESTINATION bin COMPONENT main)
install(FILES ${CMAKE_BINARY_DIR}/lib/Debug/${m}${OPENCV_DLLVERSION}d.lib install(FILES ${CMAKE_BINARY_DIR}/lib/Debug/${m}${OPENCV_DLLVERSION}d.lib
DESTINATION lib COMPONENT main) DESTINATION lib COMPONENT main)
endforeach() endforeach()
endif() endif()
install(DIRECTORY data samples DESTINATION "." COMPONENT main PATTERN ".svn" EXCLUDE) install(DIRECTORY data samples DESTINATION "." COMPONENT main PATTERN ".svn" EXCLUDE)
@ -1136,7 +1164,7 @@ if(BUILD_PACKAGE)
install(DIRECTORY doc/ DESTINATION doc COMPONENT src FILES_MATCHING PATTERN "*.tex") install(DIRECTORY doc/ DESTINATION doc COMPONENT src FILES_MATCHING PATTERN "*.tex")
install(DIRECTORY doc/pics DESTINATION doc COMPONENT src PATTERN ".svn" EXCLUDE) install(DIRECTORY doc/pics DESTINATION doc COMPONENT src PATTERN ".svn" EXCLUDE)
install(DIRECTORY doc/plastex DESTINATION doc COMPONENT src PATTERN ".svn" EXCLUDE) install(DIRECTORY doc/plastex DESTINATION doc COMPONENT src PATTERN ".svn" EXCLUDE)
endif() endif()
endif() endif()
@ -1149,7 +1177,7 @@ add_subdirectory(modules)
if(BUILD_LATEX_DOCS) if(BUILD_LATEX_DOCS)
include(OpenCVFindLATEX.cmake REQUIRED) include(OpenCVFindLATEX.cmake REQUIRED)
if(PDFLATEX_COMPILER) if(PDFLATEX_COMPILER)
message(STATUS "PDF LaTeX found!") message(STATUS "PDF LaTeX found!")
endif() endif()
@ -1210,7 +1238,7 @@ else()
message(STATUS " GThread: ${HAVE_GTHREAD}") message(STATUS " GThread: ${HAVE_GTHREAD}")
endif() endif()
endif() endif()
endif() endif()
message(STATUS "") message(STATUS "")
message(STATUS " Image I/O: ") message(STATUS " Image I/O: ")

@ -3,24 +3,30 @@
# #
# ** File generated automatically, do not modify ** # ** File generated automatically, do not modify **
# #
# Usage from an external project: # Usage from an external project:
# In your CMakeLists.txt, add these lines: # In your CMakeLists.txt, add these lines:
# #
# FIND_PACKAGE(OpenCV REQUIRED ) # FIND_PACKAGE(OpenCV REQUIRED )
# TARGET_LINK_LIBRARIES(MY_TARGET_NAME ${OpenCV_LIBS}) # TARGET_LINK_LIBRARIES(MY_TARGET_NAME ${OpenCV_LIBS})
# #
# This file will define the following variables: # This file will define the following variables:
# - OpenCV_LIBS : The list of libraries to links against. # - OpenCV_LIBS : The list of libraries to links against.
# - 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_VERSION : The version of this OpenCV build. Example: "1.2.0" # - OpenCV_COMPUTE_CAPABILITIES : The version of compute capability
# - OpenCV_VERSION_MAJOR : Major version part of OpenCV_VERSION. Example: "1" # - OpenCV_VERSION : The version of this OpenCV build. Example: "1.2.0"
# - OpenCV_VERSION_MINOR : Minor version part of OpenCV_VERSION. Example: "2" # - OpenCV_VERSION_MAJOR : Major version part of OpenCV_VERSION. Example: "1"
# - OpenCV_VERSION_PATCH : Patch version part of OpenCV_VERSION. Example: "0" # - OpenCV_VERSION_MINOR : Minor version part of OpenCV_VERSION. Example: "2"
# - 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
@ -68,26 +74,26 @@ if(NOT @CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE@ STREQUAL "")
endforeach(__CVLIB) endforeach(__CVLIB)
endif(NOT @CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE@ STREQUAL "") endif(NOT @CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE@ STREQUAL "")
# For OpenCV built as static libs, we need the user to link against # For OpenCV built as static libs, we need the user to link against
# many more dependencies: # many more dependencies:
IF (NOT @OPENCV_BUILD_SHARED_LIB@) IF (NOT @OPENCV_BUILD_SHARED_LIB@)
# Under static libs, the user of OpenCV needs access to the 3rdparty libs as well: # Under static libs, the user of OpenCV needs access to the 3rdparty libs as well:
LINK_DIRECTORIES("@CMAKE_BINARY_DIR@/3rdparty/lib") LINK_DIRECTORIES("@CMAKE_BINARY_DIR@/3rdparty/lib")
SET(OpenCV_LIBS SET(OpenCV_LIBS
@OPENCV_LINKER_LIBS@ @OPENCV_LINKER_LIBS@
@IPP_LIBS@ @IPP_LIBS@
@JPEG_LIBRARIES@ @JPEG_LIBRARIES@
@PNG_LIBRARIES@ @PNG_LIBRARIES@
@TIFF_LIBRARIES@ @TIFF_LIBRARIES@
@JASPER_LIBRARIES@ @JASPER_LIBRARIES@
@HIGHGUI_LIBRARIES@ @HIGHGUI_LIBRARIES@
${OpenCV_LIBS}) # The standard libs BEFORE (OpenCV_LIBS) since these can have "debug","optimized". ${OpenCV_LIBS}) # The standard libs BEFORE (OpenCV_LIBS) since these can have "debug","optimized".
ENDIF(NOT @OPENCV_BUILD_SHARED_LIB@) ENDIF(NOT @OPENCV_BUILD_SHARED_LIB@)
# ====================================================== # ======================================================
# Version variables: # Version variables:
# ====================================================== # ======================================================
SET(OpenCV_VERSION @OPENCV_VERSION@) SET(OpenCV_VERSION @OPENCV_VERSION@)
SET(OpenCV_VERSION_MAJOR @OPENCV_VERSION_MAJOR@) SET(OpenCV_VERSION_MAJOR @OPENCV_VERSION_MAJOR@)

@ -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")
@ -66,7 +44,7 @@ if (HAVE_CUDA)
#set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-keep") #set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-keep")
#set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-Xcompiler;/EHsc-;") #set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-Xcompiler;/EHsc-;")
string(REPLACE "/W4" "/W3" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") string(REPLACE "/W4" "/W3" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
string(REPLACE "/W4" "/W3" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") string(REPLACE "/W4" "/W3" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
string(REPLACE "/W4" "/W3" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") string(REPLACE "/W4" "/W3" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")