зеркало из https://github.com/microsoft/opencv.git
Merge pull request #607 from cuda-geek:auto-compile-cuda
This commit is contained in:
Коммит
b9ab5939a4
|
@ -427,16 +427,29 @@ endmacro()
|
||||||
# Usage:
|
# Usage:
|
||||||
# ocv_glob_module_sources(<extra sources&headers in the same format as used in ocv_set_module_sources>)
|
# ocv_glob_module_sources(<extra sources&headers in the same format as used in ocv_set_module_sources>)
|
||||||
macro(ocv_glob_module_sources)
|
macro(ocv_glob_module_sources)
|
||||||
file(GLOB_RECURSE lib_srcs "src/*.cpp")
|
file(GLOB lib_srcs "src/*.cpp")
|
||||||
file(GLOB_RECURSE lib_int_hdrs "src/*.hpp" "src/*.h")
|
file(GLOB lib_int_hdrs "src/*.hpp" "src/*.h")
|
||||||
file(GLOB lib_hdrs "include/opencv2/${name}/*.hpp" "include/opencv2/${name}/*.h")
|
file(GLOB lib_hdrs "include/opencv2/${name}/*.hpp" "include/opencv2/${name}/*.h")
|
||||||
file(GLOB lib_hdrs_detail "include/opencv2/${name}/detail/*.hpp" "include/opencv2/${name}/detail/*.h")
|
file(GLOB lib_hdrs_detail "include/opencv2/${name}/detail/*.hpp" "include/opencv2/${name}/detail/*.h")
|
||||||
|
|
||||||
|
file(GLOB lib_device_srcs "src/cuda/*.cu")
|
||||||
|
set(device_objs "")
|
||||||
|
set(lib_device_hdrs "")
|
||||||
|
|
||||||
|
if (HAVE_CUDA AND lib_device_srcs)
|
||||||
|
ocv_include_directories(${CUDA_INCLUDE_DIRS})
|
||||||
|
file(GLOB lib_device_hdrs "src/cuda/*.hpp")
|
||||||
|
|
||||||
|
ocv_cuda_compile(device_objs ${lib_device_srcs} ${lib_device_hdrs})
|
||||||
|
source_group("Src\\Cuda" FILES ${lib_device_srcs} ${lib_device_hdrs})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
ocv_set_module_sources(${ARGN} HEADERS ${lib_hdrs} ${lib_hdrs_detail}
|
||||||
|
SOURCES ${lib_srcs} ${lib_int_hdrs} ${device_objs} ${lib_device_srcs} ${lib_device_hdrs})
|
||||||
|
|
||||||
source_group("Src" FILES ${lib_srcs} ${lib_int_hdrs})
|
source_group("Src" FILES ${lib_srcs} ${lib_int_hdrs})
|
||||||
source_group("Include" FILES ${lib_hdrs})
|
source_group("Include" FILES ${lib_hdrs})
|
||||||
source_group("Include\\detail" FILES ${lib_hdrs_detail})
|
source_group("Include\\detail" FILES ${lib_hdrs_detail})
|
||||||
|
|
||||||
ocv_set_module_sources(${ARGN} HEADERS ${lib_hdrs} ${lib_hdrs_detail} SOURCES ${lib_srcs} ${lib_int_hdrs})
|
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
# creates OpenCV module in current folder
|
# creates OpenCV module in current folder
|
||||||
|
@ -449,6 +462,9 @@ macro(ocv_create_module)
|
||||||
|
|
||||||
if(NOT "${ARGN}" STREQUAL "SKIP_LINK")
|
if(NOT "${ARGN}" STREQUAL "SKIP_LINK")
|
||||||
target_link_libraries(${the_module} ${OPENCV_MODULE_${the_module}_DEPS} ${OPENCV_MODULE_${the_module}_DEPS_EXT} ${OPENCV_LINKER_LIBS} ${IPP_LIBS} ${ARGN})
|
target_link_libraries(${the_module} ${OPENCV_MODULE_${the_module}_DEPS} ${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()
|
endif()
|
||||||
|
|
||||||
add_dependencies(opencv_modules ${the_module})
|
add_dependencies(opencv_modules ${the_module})
|
||||||
|
@ -530,8 +546,8 @@ endmacro()
|
||||||
# ocv_define_module(module_name [INTERNAL] [REQUIRED] [<list of dependencies>] [OPTIONAL <list of optional dependencies>])
|
# ocv_define_module(module_name [INTERNAL] [REQUIRED] [<list of dependencies>] [OPTIONAL <list of optional dependencies>])
|
||||||
macro(ocv_define_module module_name)
|
macro(ocv_define_module module_name)
|
||||||
ocv_add_module(${module_name} ${ARGN})
|
ocv_add_module(${module_name} ${ARGN})
|
||||||
ocv_glob_module_sources()
|
|
||||||
ocv_module_include_directories()
|
ocv_module_include_directories()
|
||||||
|
ocv_glob_module_sources()
|
||||||
ocv_create_module()
|
ocv_create_module()
|
||||||
ocv_add_precompiled_headers(${the_module})
|
ocv_add_precompiled_headers(${the_module})
|
||||||
|
|
||||||
|
|
|
@ -1,27 +1,14 @@
|
||||||
set(the_description "The Core Functionality")
|
set(the_description "The Core Functionality")
|
||||||
ocv_add_module(core ${ZLIB_LIBRARIES})
|
ocv_add_module(core ${ZLIB_LIBRARIES})
|
||||||
ocv_module_include_directories(${ZLIB_INCLUDE_DIR})
|
ocv_module_include_directories(${ZLIB_INCLUDE_DIR} "${OpenCV_SOURCE_DIR}/modules/gpu/include")
|
||||||
|
|
||||||
if(HAVE_CUDA)
|
if(HAVE_CUDA)
|
||||||
ocv_source_group("Src\\Cuda" GLOB "src/cuda/*.cu")
|
|
||||||
ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/gpu/include" ${CUDA_INCLUDE_DIRS})
|
|
||||||
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef)
|
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef)
|
||||||
|
|
||||||
file(GLOB lib_cuda "src/cuda/*.cu")
|
|
||||||
ocv_cuda_compile(cuda_objs ${lib_cuda})
|
|
||||||
|
|
||||||
set(cuda_link_libs ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY})
|
|
||||||
else()
|
|
||||||
set(lib_cuda "")
|
|
||||||
set(cuda_objs "")
|
|
||||||
set(cuda_link_libs "")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
ocv_glob_module_sources(SOURCES ${lib_cuda} ${cuda_objs} "${opencv_core_BINARY_DIR}/version_string.inc")
|
ocv_glob_module_sources(SOURCES "${opencv_core_BINARY_DIR}/version_string.inc")
|
||||||
|
ocv_create_module()
|
||||||
ocv_create_module(${cuda_link_libs})
|
|
||||||
ocv_add_precompiled_headers(${the_module})
|
ocv_add_precompiled_headers(${the_module})
|
||||||
|
|
||||||
ocv_add_accuracy_tests()
|
ocv_add_accuracy_tests()
|
||||||
ocv_add_perf_tests()
|
ocv_add_perf_tests()
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче