From 269b81060106c6cff77b1ebe5cfba74cba6466d4 Mon Sep 17 00:00:00 2001 From: Tomoaki Teshima Date: Sun, 12 Jul 2020 21:22:12 +0900 Subject: [PATCH] re-enable automatic CC detection on Jetson * treat both CMAKE_C_COMPILER and c_compiler_realpath as candidate --- cmake/OpenCVDetectCUDA.cmake | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/cmake/OpenCVDetectCUDA.cmake b/cmake/OpenCVDetectCUDA.cmake index ef3e0184a0..670bfebd2f 100644 --- a/cmake/OpenCVDetectCUDA.cmake +++ b/cmake/OpenCVDetectCUDA.cmake @@ -106,7 +106,18 @@ if(CUDA_FOUND) if(OPENCV_CUDA_DETECTION_NVCC_FLAGS MATCHES "-ccbin") # already specified by user elseif(CUDA_HOST_COMPILER AND EXISTS "${CUDA_HOST_COMPILER}") - LIST(APPEND OPENCV_CUDA_DETECTION_NVCC_FLAGS -ccbin "${CUDA_HOST_COMPILER}") + get_filename_component(c_compiler_realpath "${CMAKE_C_COMPILER}" REALPATH) + # C compiler doesn't work with --run option, forcing C++ compiler instead + if(CUDA_HOST_COMPILER STREQUAL c_compiler_realpath OR CUDA_HOST_COMPILER STREQUAL CMAKE_C_COMPILER) + if(DEFINED CMAKE_CXX_COMPILER) + get_filename_component(cxx_compiler_realpath "${CMAKE_CXX_COMPILER}" REALPATH) + LIST(APPEND OPENCV_CUDA_DETECTION_NVCC_FLAGS -ccbin "${cxx_compiler_realpath}") + else() + message(STATUS "CUDA: CMAKE_CXX_COMPILER is not available. You may need to specify CUDA_HOST_COMPILER.") + endif() + else() + LIST(APPEND OPENCV_CUDA_DETECTION_NVCC_FLAGS -ccbin "${CUDA_HOST_COMPILER}") + endif() elseif(WIN32 AND CMAKE_LINKER) # Workaround for VS cl.exe not being in the env. path get_filename_component(host_compiler_bindir ${CMAKE_LINKER} DIRECTORY) LIST(APPEND OPENCV_CUDA_DETECTION_NVCC_FLAGS -ccbin "${host_compiler_bindir}")