Skip to content

Commit 2ddfbb8

Browse files
authored
Merge pull request #4031 from cudawarped:fix_cudart_dependency
[cuda] Add cudart target to all modules which use CUDA
2 parents 641f582 + d8222d3 commit 2ddfbb8

File tree

18 files changed

+124
-34
lines changed

18 files changed

+124
-34
lines changed

modules/cudaarithm/CMakeLists.txt

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,38 +7,41 @@ set(the_description "CUDA-accelerated Operations on Matrices")
77
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4127 /wd4324 /wd4512 -Wundef -Wmissing-declarations -Wshadow)
88

99
set(extra_dependencies "")
10-
set(optional_dependencies "")
1110
if(ENABLE_CUDA_FIRST_CLASS_LANGUAGE)
1211
if(UNIX AND NOT BUILD_SHARED_LIBS AND CUDA_VERSION_STRING VERSION_GREATER_EQUAL 9.2 AND CUDA_VERSION_STRING VERSION_LESS 13.0 AND CMAKE_VERSION VERSION_GREATER_EQUAL 3.23)
1312
set(CUDA_FFT_LIB_EXT "_static_nocallback")
1413
endif()
15-
list(APPEND extra_dependencies CUDA::cudart_static CUDA::nppial${CUDA_LIB_EXT} CUDA::nppc${CUDA_LIB_EXT} CUDA::nppitc${CUDA_LIB_EXT} CUDA::nppig${CUDA_LIB_EXT} CUDA::nppist${CUDA_LIB_EXT} CUDA::nppidei${CUDA_LIB_EXT})
14+
list(APPEND extra_dependencies CUDA::cudart${CUDA_LIB_EXT} CUDA::nppial${CUDA_LIB_EXT} CUDA::nppc${CUDA_LIB_EXT} CUDA::nppitc${CUDA_LIB_EXT} CUDA::nppig${CUDA_LIB_EXT} CUDA::nppist${CUDA_LIB_EXT} CUDA::nppidei${CUDA_LIB_EXT})
1615
if(HAVE_CUBLAS)
17-
list(APPEND optional_dependencies CUDA::cublas${CUDA_LIB_EXT})
16+
list(APPEND extra_dependencies CUDA::cublas${CUDA_LIB_EXT})
1817
if(NOT CUDA_VERSION VERSION_LESS 10.1)
19-
list(APPEND optional_dependencies CUDA::cublasLt${CUDA_LIB_EXT})
18+
list(APPEND extra_dependencies CUDA::cublasLt${CUDA_LIB_EXT})
2019
endif()
2120
endif()
2221
if(HAVE_CUFFT)
2322
# static version requires seperable compilation which is incompatible with opencv's current library structure
2423
# the cufft_static_nocallback variant does not requires seperable compilation. callbacks are currently not used.
25-
list(APPEND optional_dependencies CUDA::cufft${CUDA_FFT_LIB_EXT})
24+
list(APPEND extra_dependencies CUDA::cufft${CUDA_FFT_LIB_EXT})
2625
endif()
2726
else()
2827
if(HAVE_CUBLAS)
29-
list(APPEND optional_dependencies ${CUDA_cublas_LIBRARY})
28+
list(APPEND extra_dependencies ${CUDA_cublas_LIBRARY})
3029
endif()
3130
if(HAVE_CUFFT)
32-
list(APPEND optional_dependencies ${CUDA_cufft_LIBRARY})
31+
list(APPEND extra_dependencies ${CUDA_cufft_LIBRARY})
3332
endif()
3433
endif()
3534

36-
ocv_add_module(cudaarithm opencv_core ${extra_dependencies} OPTIONAL opencv_cudev ${optional_dependencies} WRAP python)
35+
ocv_add_module(cudaarithm opencv_core OPTIONAL opencv_cudev WRAP python)
3736

3837
ocv_module_include_directories()
3938
ocv_glob_module_sources()
4039

41-
ocv_create_module()
40+
ocv_create_module(${extra_dependencies})
4241

43-
ocv_add_accuracy_tests(DEPENDS_ON opencv_imgproc)
42+
set(test_libs "")
43+
if(ENABLE_CUDA_FIRST_CLASS_LANGUAGE)
44+
list(APPEND test_libs CUDA::cudart${CUDA_LIB_EXT})
45+
endif()
46+
ocv_add_accuracy_tests(${test_libs} DEPENDS_ON opencv_imgproc)
4447
ocv_add_perf_tests(DEPENDS_ON opencv_imgproc)

modules/cudabgsegm/CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ endif()
55
set(the_description "CUDA-accelerated Background Segmentation")
66

77
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4127 /wd4324 /wd4512 -Wundef -Wmissing-declarations -Wshadow)
8+
9+
ocv_define_module(cudabgsegm opencv_video WRAP python)
10+
811
if(ENABLE_CUDA_FIRST_CLASS_LANGUAGE)
9-
ocv_module_include_directories(${CUDAToolkit_INCLUDE_DIRS})
12+
ocv_target_link_libraries(${the_module} PRIVATE CUDA::cudart${CUDA_LIB_EXT})
1013
endif()
11-
ocv_define_module(cudabgsegm opencv_video WRAP python)

modules/cudacodec/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ endif()
3232

3333
if(HAVE_NVCUVID OR HAVE_NVCUVENC)
3434
if(ENABLE_CUDA_FIRST_CLASS_LANGUAGE)
35-
list(APPEND extra_libs CUDA::cuda_driver)
35+
list(APPEND extra_libs CUDA::cuda_driver CUDA::cudart${CUDA_LIB_EXT})
3636
else()
3737
list(APPEND extra_libs ${CUDA_CUDA_LIBRARY})
3838
endif()

modules/cudafeatures2d/CMakeLists.txt

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,17 @@ endif()
55
set(the_description "CUDA-accelerated Feature Detection and Description")
66

77
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4127 /wd4100 /wd4324 /wd4512 /wd4515 -Wundef -Wmissing-declarations -Wshadow -Wunused-parameter -Wshadow)
8+
9+
ocv_add_module(cudafeatures2d opencv_features2d opencv_cudafilters opencv_cudawarping WRAP python)
10+
11+
ocv_module_include_directories()
12+
ocv_glob_module_sources()
13+
14+
set(extra_libs "")
815
if(ENABLE_CUDA_FIRST_CLASS_LANGUAGE)
9-
ocv_module_include_directories(${CUDAToolkit_INCLUDE_DIRS})
16+
list(APPEND extra_libs CUDA::cudart${CUDA_LIB_EXT})
1017
endif()
11-
ocv_define_module(cudafeatures2d opencv_features2d opencv_cudafilters opencv_cudawarping WRAP python)
18+
ocv_create_module(${extra_libs})
19+
20+
ocv_add_accuracy_tests(${extra_libs})
21+
ocv_add_perf_tests(${extra_libs})

modules/cudafilters/CMakeLists.txt

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,21 @@ endif()
55
set(the_description "CUDA-accelerated Image Filtering")
66

77
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4127 /wd4324 /wd4512 -Wundef -Wmissing-declarations -Wshadow)
8-
set(extra_libs "")
8+
9+
ocv_add_module(cudafilters opencv_imgproc opencv_cudaarithm WRAP python)
10+
11+
ocv_module_include_directories()
12+
ocv_glob_module_sources()
13+
14+
set(build_libs "")
15+
if(ENABLE_CUDA_FIRST_CLASS_LANGUAGE)
16+
list(APPEND build_libs CUDA::cudart${CUDA_LIB_EXT} CUDA::nppif${CUDA_LIB_EXT} CUDA::nppim${CUDA_LIB_EXT})
17+
endif()
18+
ocv_create_module(${build_libs})
19+
20+
set(test_libs "")
921
if(ENABLE_CUDA_FIRST_CLASS_LANGUAGE)
10-
set(extra_libs CUDA::nppif${CUDA_LIB_EXT} CUDA::nppim${CUDA_LIB_EXT})
22+
list(APPEND test_libs CUDA::cudart${CUDA_LIB_EXT})
1123
endif()
12-
ocv_define_module(cudafilters opencv_imgproc opencv_cudaarithm ${extra_libs} WRAP python)
24+
ocv_add_accuracy_tests(${test_libs})
25+
ocv_add_perf_tests()

modules/cudaimgproc/CMakeLists.txt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ endif()
55
set(the_description "CUDA-accelerated Image Processing")
66

77
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4127 /wd4100 /wd4324 /wd4512 /wd4515 -Wundef -Wmissing-declarations -Wshadow -Wunused-parameter)
8-
set(extra_libs "")
8+
9+
ocv_define_module(cudaimgproc opencv_imgproc OPTIONAL opencv_cudev opencv_cudaarithm opencv_cudafilters WRAP python)
10+
911
if(ENABLE_CUDA_FIRST_CLASS_LANGUAGE)
10-
set(extra_libs CUDA::nppial${CUDA_LIB_EXT} CUDA::nppist${CUDA_LIB_EXT} CUDA::nppicc${CUDA_LIB_EXT} CUDA::nppidei${CUDA_LIB_EXT})
12+
ocv_target_link_libraries(${the_module} PRIVATE CUDA::cudart${CUDA_LIB_EXT} CUDA::nppial${CUDA_LIB_EXT} CUDA::nppist${CUDA_LIB_EXT} CUDA::nppicc${CUDA_LIB_EXT} CUDA::nppidei${CUDA_LIB_EXT})
1113
endif()
12-
ocv_define_module(cudaimgproc opencv_imgproc ${extra_libs} OPTIONAL opencv_cudev opencv_cudaarithm opencv_cudafilters WRAP python)

modules/cudalegacy/CMakeLists.txt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,17 @@ endif()
55
set(the_description "CUDA-accelerated Computer Vision (legacy)")
66

77
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4127 /wd4130 /wd4324 /wd4512 /wd4310 -Wundef -Wmissing-declarations -Wuninitialized -Wshadow -Wdeprecated-declarations -Wstrict-aliasing -Wtautological-compare)
8+
9+
ocv_add_module(cudalegacy opencv_core opencv_video OPTIONAL opencv_objdetect opencv_imgproc opencv_calib3d opencv_cudaarithm opencv_cudafilters opencv_cudaimgproc)
10+
11+
ocv_module_include_directories()
12+
ocv_glob_module_sources()
13+
14+
set(extra_libs "")
815
if(ENABLE_CUDA_FIRST_CLASS_LANGUAGE)
9-
ocv_module_include_directories(${CUDAToolkit_INCLUDE_DIRS})
16+
list(APPEND extra_libs CUDA::cudart${CUDA_LIB_EXT})
1017
endif()
11-
ocv_define_module(cudalegacy opencv_core opencv_video
12-
OPTIONAL opencv_objdetect opencv_imgproc opencv_calib3d opencv_cudaarithm opencv_cudafilters opencv_cudaimgproc)
18+
ocv_create_module(${extra_libs})
19+
20+
ocv_add_accuracy_tests(${extra_libs})
21+
ocv_add_perf_tests(${extra_libs})

modules/cudaobjdetect/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,7 @@ set(the_description "CUDA-accelerated Object Detection")
77
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4127 /wd4324 /wd4512 -Wundef -Wmissing-declarations -Wshadow -Wstrict-aliasing)
88

99
ocv_define_module(cudaobjdetect opencv_objdetect opencv_cudaarithm opencv_cudawarping OPTIONAL opencv_cudalegacy WRAP python)
10+
11+
if(ENABLE_CUDA_FIRST_CLASS_LANGUAGE)
12+
ocv_target_link_libraries(${the_module} PRIVATE CUDA::cudart${CUDA_LIB_EXT})
13+
endif()

modules/cudaoptflow/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4127 /wd4324 /wd4512 -Wundef -Wmissing-d
88

99
ocv_define_module(cudaoptflow opencv_video opencv_optflow opencv_cudaarithm opencv_cudawarping opencv_cudaimgproc OPTIONAL opencv_cudalegacy WRAP python)
1010

11+
if(ENABLE_CUDA_FIRST_CLASS_LANGUAGE)
12+
ocv_target_link_libraries(${the_module} PRIVATE CUDA::cudart${CUDA_LIB_EXT})
13+
endif()
14+
1115
if(NOT CUDA_VERSION VERSION_LESS "10.0")
1216
set(NVIDIA_OPTICAL_FLOW_2_0_HEADERS_COMMIT "edb50da3cf849840d680249aa6dbef248ebce2ca")
1317
set(NVIDIA_OPTICAL_FLOW_2_0_HEADERS_MD5 "a73cd48b18dcc0cc8933b30796074191")

modules/cudastereo/CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ endif()
55
set(the_description "CUDA-accelerated Stereo Correspondence")
66

77
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4127 /wd4324 /wd4512 -Wundef -Wmissing-declarations -Wshadow)
8+
9+
ocv_define_module(cudastereo opencv_calib3d OPTIONAL opencv_cudev WRAP python)
10+
811
if(ENABLE_CUDA_FIRST_CLASS_LANGUAGE)
9-
ocv_module_include_directories(${CUDAToolkit_INCLUDE_DIRS})
12+
ocv_target_link_libraries(${the_module} PRIVATE CUDA::cudart${CUDA_LIB_EXT})
1013
endif()
11-
ocv_define_module(cudastereo opencv_calib3d OPTIONAL opencv_cudev WRAP python)

0 commit comments

Comments
 (0)