Cut path to CUDA libraries to prevent generation of OpenCVModules.cmake with abs...
authorAlexander Smorkalov <alexander.smorkalov@itseez.com>
Fri, 28 Feb 2014 14:18:20 +0000 (18:18 +0400)
committerAlexander Smorkalov <alexander.smorkalov@itseez.com>
Wed, 19 Mar 2014 14:47:32 +0000 (18:47 +0400)
CMakeLists.txt
cmake/OpenCVDetectAndroidSDK.cmake
cmake/OpenCVDetectCUDA.cmake

index fb49497..747d207 100644 (file)
@@ -467,7 +467,6 @@ include(cmake/OpenCVFindLibsGUI.cmake)
 include(cmake/OpenCVFindLibsVideo.cmake)
 include(cmake/OpenCVFindLibsPerf.cmake)
 
-
 # ----------------------------------------------------------------------------
 #  Detect other 3rd-party libraries/tools
 # ----------------------------------------------------------------------------
@@ -513,16 +512,6 @@ if(NOT HAVE_CUDA)
   set(ENABLE_DYNAMIC_CUDA OFF)
 endif()
 
-if(HAVE_CUDA AND NOT ENABLE_DYNAMIC_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:
 # ----------------------------------------------------------------------------
index af74271..2737589 100644 (file)
@@ -326,12 +326,12 @@ macro(add_android_project target path)
 
       # copy all needed CUDA libs to project if EMBED_CUDA flag is present
       if(android_proj_EMBED_CUDA)
-        set(android_proj_culibs ${CUDA_npp_LIBRARY} ${CUDA_LIBRARIES})
+        set(android_proj_culibs ${CUDA_npp_LIBRARY_ABS} ${CUDA_LIBRARIES_ABS})
         if(HAVE_CUFFT)
-          list(INSERT android_proj_culibs 0 ${CUDA_cufft_LIBRARY})
+          list(INSERT android_proj_culibs 0 ${CUDA_cufft_LIBRARY_ABS})
         endif()
         if(HAVE_CUBLAS)
-          list(INSERT android_proj_culibs 0 ${CUDA_cublas_LIBRARY})
+          list(INSERT android_proj_culibs 0 ${CUDA_cublas_LIBRARY_ABS})
         endif()
         foreach(lib ${android_proj_culibs})
           get_filename_component(f "${lib}" NAME)
index 56b1429..24fbb03 100644 (file)
@@ -219,3 +219,42 @@ else()
   unset(CUDA_ARCH_BIN CACHE)
   unset(CUDA_ARCH_PTX CACHE)
 endif()
+
+if(HAVE_CUDA)
+  set(CUDA_LIBS_PATH "")
+  foreach(p ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY})
+    get_filename_component(_tmp ${p} PATH)
+    list(APPEND CUDA_LIBS_PATH ${_tmp})
+  endforeach()
+
+  if(HAVE_CUBLAS)
+    foreach(p ${CUDA_cublas_LIBRARY})
+      get_filename_component(_tmp ${p} PATH)
+      list(APPEND CUDA_LIBS_PATH ${_tmp})
+    endforeach()
+  endif()
+
+  if(HAVE_CUFFT)
+    foreach(p ${CUDA_cufft_LIBRARY})
+      get_filename_component(_tmp ${p} PATH)
+      list(APPEND CUDA_LIBS_PATH ${_tmp})
+    endforeach()
+  endif()
+
+  list(REMOVE_DUPLICATES CUDA_LIBS_PATH)
+  link_directories(${CUDA_LIBS_PATH})
+
+  set(CUDA_LIBRARIES_ABS ${CUDA_LIBRARIES})
+  ocv_convert_to_lib_name(CUDA_LIBRARIES ${CUDA_LIBRARIES})
+  set(CUDA_npp_LIBRARY_ABS ${CUDA_npp_LIBRARY})
+  ocv_convert_to_lib_name(CUDA_npp_LIBRARY ${CUDA_npp_LIBRARY})
+  if(HAVE_CUBLAS)
+    set(CUDA_cublas_LIBRARY_ABS ${CUDA_cublas_LIBRARY})
+    ocv_convert_to_lib_name(CUDA_cublas_LIBRARY ${CUDA_cublas_LIBRARY})
+  endif()
+
+  if(HAVE_CUFFT)
+    set(CUDA_cufft_LIBRARY_ABS ${CUDA_cufft_LIBRARY})
+    ocv_convert_to_lib_name(CUDA_cufft_LIBRARY ${CUDA_cufft_LIBRARY})
+  endif()
+endif()
\ No newline at end of file