From 0825120f6a6175ec857b6f8910eaa06a623d7a48 Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Wed, 13 Aug 2014 18:07:31 +0400 Subject: [PATCH] move CUDA compilation step from ocv_glob_module_sources to ocv_add_library --- cmake/OpenCVModule.cmake | 25 ++++++++----------------- cmake/OpenCVUtils.cmake | 20 ++++++++++++++++++-- 2 files changed, 26 insertions(+), 19 deletions(-) diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake index d53f066..7ded13d 100644 --- a/cmake/OpenCVModule.cmake +++ b/cmake/OpenCVModule.cmake @@ -585,25 +585,16 @@ macro(ocv_glob_module_sources) ocv_source_group("Src" DIRBASE "${CMAKE_CURRENT_LIST_DIR}/src" FILES ${lib_srcs} ${lib_int_hdrs}) ocv_source_group("Include" DIRBASE "${CMAKE_CURRENT_LIST_DIR}/include" FILES ${lib_hdrs} ${lib_hdrs_detail}) - if (exclude_cuda EQUAL -1) + set(lib_cuda_srcs "") + set(lib_cuda_hdrs "") + if(HAVE_CUDA AND exclude_cuda EQUAL -1) file(GLOB lib_cuda_srcs "${CMAKE_CURRENT_LIST_DIR}/src/cuda/*.cu" ) - set(cuda_objs "") - set(lib_cuda_hdrs "") - if(HAVE_CUDA) - ocv_include_directories(${CUDA_INCLUDE_DIRS}) - file(GLOB lib_cuda_hdrs - "${CMAKE_CURRENT_LIST_DIR}/src/cuda/*.hpp" - ) - - ocv_cuda_compile(cuda_objs ${lib_cuda_srcs} ${lib_cuda_hdrs}) - source_group("Src\\Cuda" FILES ${lib_cuda_srcs} ${lib_cuda_hdrs}) - endif() - else() - set(cuda_objs "") - set(lib_cuda_srcs "") - set(lib_cuda_hdrs "") + file(GLOB lib_cuda_hdrs + "${CMAKE_CURRENT_LIST_DIR}/src/cuda/*.hpp" + ) + source_group("Src\\Cuda" FILES ${lib_cuda_srcs} ${lib_cuda_hdrs}) endif() file(GLOB cl_kernels @@ -622,7 +613,7 @@ macro(ocv_glob_module_sources) endif() ocv_set_module_sources(${_argn} HEADERS ${lib_hdrs} ${lib_hdrs_detail} - SOURCES ${lib_srcs} ${lib_int_hdrs} ${cuda_objs} ${lib_cuda_srcs} ${lib_cuda_hdrs}) + SOURCES ${lib_srcs} ${lib_int_hdrs} ${lib_cuda_srcs} ${lib_cuda_hdrs}) endmacro() # creates OpenCV module in current folder diff --git a/cmake/OpenCVUtils.cmake b/cmake/OpenCVUtils.cmake index a7d449f..e13c79a 100644 --- a/cmake/OpenCVUtils.cmake +++ b/cmake/OpenCVUtils.cmake @@ -748,6 +748,22 @@ function(ocv_add_executable target) endfunction() function(ocv_add_library target) - add_library(${target} ${ARGN}) + set(cuda_objs "") + if(HAVE_CUDA) + set(cuda_srcs "") + + foreach(var ${ARGN}) + if(var MATCHES ".cu") + list(APPEND cuda_srcs ${var}) + endif() + endforeach() + + if(cuda_srcs) + ocv_include_directories(${CUDA_INCLUDE_DIRS}) + ocv_cuda_compile(cuda_objs ${lib_cuda_srcs} ${lib_cuda_hdrs}) + endif() + endif() + + add_library(${target} ${ARGN} ${cuda_objs}) _ocv_append_target_includes(${target}) -endfunction() \ No newline at end of file +endfunction() -- 2.7.4