All CUDA related stuff were moved to separate dynamic library.

pull/2022/head
Alexander Smorkalov 11 years ago
parent e88253ccad
commit d4087f19a2
  1. 23
      modules/core/CMakeLists.txt
  2. 11
      modules/core/cuda/CMakeLists.txt
  3. 23
      modules/core/cuda/main.cpp
  4. 2
      modules/core/include/opencv2/core/gpumat.hpp
  5. 1143
      modules/core/src/gpumat.cpp
  6. 1069
      modules/core/src/gpumat_cuda.hpp

@ -1,22 +1,27 @@
set(the_description "The Core Functionality")
ocv_add_module(core PRIVATE_REQUIRED ${ZLIB_LIBRARIES})
ocv_module_include_directories(${ZLIB_INCLUDE_DIR})
if(HAVE_WINRT)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /ZW /GS /Gm- /AI\"${WINDOWS_SDK_PATH}/References/CommonConfiguration/Neutral\" /AI\"${VISUAL_STUDIO_PATH}/vcpackages\"")
endif()
if(HAVE_CUDA)
ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/gpu/include")
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef)
endif()
file(GLOB lib_cuda_hdrs "include/opencv2/${name}/cuda/*.hpp" "include/opencv2/${name}/cuda/*.h")
file(GLOB lib_cuda_hdrs_detail "include/opencv2/${name}/cuda/detail/*.hpp" "include/opencv2/${name}/cuda/detail/*.h")
source_group("Cuda Headers" FILES ${lib_cuda_hdrs})
source_group("Cuda Headers\\Detail" FILES ${lib_cuda_hdrs_detail})
if(DYNAMIC_CUDA_SUPPORT)
add_definitions(-DDYNAMIC_CUDA_SUPPORT)
endif()
ocv_add_module(core PRIVATE_REQUIRED ${ZLIB_LIBRARIES})
ocv_module_include_directories(${ZLIB_INCLUDE_DIR})
if(HAVE_CUDA)
ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/gpu/include")
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef)
endif()
ocv_glob_module_sources(SOURCES "${opencv_core_BINARY_DIR}/version_string.inc"
HEADERS ${lib_cuda_hdrs} ${lib_cuda_hdrs_detail})
@ -25,3 +30,7 @@ ocv_add_precompiled_headers(${the_module})
ocv_add_accuracy_tests()
ocv_add_perf_tests()
if(DYNAMIC_CUDA_SUPPORT)
add_subdirectory(cuda)
endif()

@ -0,0 +1,11 @@
project(opencv_core_cuda)
set(HAVE_CUDA FALSE)
add_definitions("-DHAVE_CUDA")
include_directories(${CUDA_INCLUDE_DIRS}
"../src/"
"../include/opencv2/core/"
"${OpenCV_SOURCE_DIR}/modules/gpu/include"
)
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef)
cuda_add_library(opencv_core_cuda SHARED main.cpp ../src/cuda/matrix_operations.cu)
target_link_libraries(opencv_core_cuda ${CUDA_LIBRARIES})

@ -0,0 +1,23 @@
#include "opencv2/core/core.hpp"
#include "opencv2/core/gpumat.hpp"
#ifdef HAVE_CUDA
#include <cuda_runtime.h>
#include <npp.h>
#define CUDART_MINIMUM_REQUIRED_VERSION 4020
#define NPP_MINIMUM_REQUIRED_VERSION 4200
#if (CUDART_VERSION < CUDART_MINIMUM_REQUIRED_VERSION)
#error "Insufficient Cuda Runtime library version, please update it."
#endif
#if (NPP_VERSION_MAJOR * 1000 + NPP_VERSION_MINOR * 100 + NPP_VERSION_BUILD < NPP_MINIMUM_REQUIRED_VERSION)
#error "Insufficient NPP version, please update it."
#endif
#endif
using namespace cv;
using namespace cv::gpu;
#include "gpumat_cuda.hpp"

@ -48,6 +48,8 @@
#include "opencv2/core/core.hpp"
#include "opencv2/core/cuda_devptrs.hpp"
#define throw_nogpu CV_Error(CV_GpuNotSupported, "The library is compiled without CUDA support")
namespace cv { namespace gpu
{
//////////////////////////////// Initialization & Info ////////////////////////

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save