Make dependency from CUDA explicit to prevent from fake dependedcies from CUDA runtime.
authorAlexander Smorkalov <alexander.smorkalov@itseez.com>
Thu, 19 Dec 2013 06:27:38 +0000 (10:27 +0400)
committerAlexander Smorkalov <alexander.smorkalov@itseez.com>
Thu, 19 Dec 2013 06:27:38 +0000 (10:27 +0400)
CMakeLists.txt
cmake/OpenCVModule.cmake
modules/core/CMakeLists.txt
modules/gpu/CMakeLists.txt
modules/superres/CMakeLists.txt

index 01d49ab..56c1764 100644 (file)
@@ -460,18 +460,6 @@ if(WITH_OPENCL)
 endif()
 
 # ----------------------------------------------------------------------------
-# Add CUDA libraries (needed for apps/tools, samples)
-# ----------------------------------------------------------------------------
-if(HAVE_CUDA)
-  set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY})
-  if(HAVE_CUBLAS)
-    set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CUDA_cublas_LIBRARY})
-  endif()
-  if(HAVE_CUFFT)
-    set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CUDA_cufft_LIBRARY})
-  endif()
-endif()
-# ----------------------------------------------------------------------------
 # Solution folders:
 # ----------------------------------------------------------------------------
 if(ENABLE_SOLUTION_FOLDERS)
index c923aba..d7e7c4a 100644 (file)
@@ -537,9 +537,6 @@ macro(ocv_create_module)
     target_link_libraries(${the_module} ${OPENCV_MODULE_${the_module}_DEPS})
     target_link_libraries(${the_module} LINK_INTERFACE_LIBRARIES ${OPENCV_MODULE_${the_module}_DEPS})
     target_link_libraries(${the_module} ${OPENCV_MODULE_${the_module}_DEPS_EXT} ${OPENCV_LINKER_LIBS} ${IPP_LIBS} ${ARGN})
-    if (HAVE_CUDA)
-      target_link_libraries(${the_module} ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY})
-    endif()
   endif()
 
   add_dependencies(opencv_modules ${the_module})
index a7a997f..07fa089 100644 (file)
@@ -33,7 +33,11 @@ macro(ocv_glob_module_sources_no_cuda)
                                  SOURCES ${lib_srcs} ${lib_int_hdrs} ${cuda_objs} ${lib_cuda_hdrs})
 endmacro()
 
-ocv_add_module(core PRIVATE_REQUIRED ${ZLIB_LIBRARIES})
+if (DYNAMIC_CUDA_SUPPORT)
+  ocv_add_module(core PRIVATE_REQUIRED ${ZLIB_LIBRARIES})
+else()
+  ocv_add_module(core PRIVATE_REQUIRED ${ZLIB_LIBRARIES} ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY})
+endif()
 ocv_module_include_directories(${ZLIB_INCLUDE_DIR})
 
 if(HAVE_WINRT)
index a616597..9171feb 100644 (file)
@@ -3,7 +3,8 @@ if(IOS)
 endif()
 
 set(the_description "GPU-accelerated Computer Vision")
-ocv_add_module(gpu opencv_imgproc opencv_calib3d opencv_objdetect opencv_video opencv_photo opencv_legacy)
+ocv_add_module(gpu opencv_imgproc opencv_calib3d opencv_objdetect opencv_video opencv_photo opencv_legacy
+               OPTIONAL ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY} ${CUDA_cublas_LIBRARY} ${CUDA_cufft_LIBRARY})
 
 ocv_module_include_directories("${CMAKE_CURRENT_SOURCE_DIR}/src/cuda")
 
index 44e9dc0..3da8dc2 100644 (file)
@@ -4,4 +4,4 @@ endif()
 
 set(the_description "Super Resolution")
 ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4127 -Wundef)
-ocv_define_module(superres opencv_imgproc opencv_video OPTIONAL opencv_gpu opencv_highgui opencv_ocl)
+ocv_define_module(superres opencv_imgproc opencv_video OPTIONAL opencv_gpu opencv_highgui opencv_ocl ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY})