Merge topic 'FindCUDA-fixes'

1aa5c1be FindCUDA: Fix missing librt on Linux when using static cuda runtime.
aab1f6e9 FindCUDA: Restore default behavior of CUDA_USE_STATIC_CUDA_RUNTIME
This commit is contained in:
Brad King 2016-08-15 08:59:48 -04:00 committed by CMake Topic Stage
commit 7fe5c79dd0
1 changed files with 11 additions and 9 deletions

View File

@ -779,18 +779,19 @@ if(CUDA_VERSION VERSION_EQUAL "3.0")
) )
endif() endif()
if(CUDA_USE_STATIC_CUDA_RUNTIME AND NOT CUDA_VERSION VERSION_LESS "5.5") if(NOT CUDA_VERSION VERSION_LESS "5.5")
cuda_find_library_local_first(CUDA_cudart_static_LIBRARY cudart_static "static CUDA runtime library") cuda_find_library_local_first(CUDA_cudart_static_LIBRARY cudart_static "static CUDA runtime library")
mark_as_advanced(CUDA_cudart_static_LIBRARY) mark_as_advanced(CUDA_cudart_static_LIBRARY)
endif() endif()
if(CUDA_cudart_static_LIBRARY) if(CUDA_cudart_static_LIBRARY)
# Set whether to use the static cuda runtime. # If static cudart available, use it by default, but provide a user-visible option to disable it.
option(CUDA_USE_STATIC_CUDA_RUNTIME "Use the static version of the CUDA runtime library if available" ON) option(CUDA_USE_STATIC_CUDA_RUNTIME "Use the static version of the CUDA runtime library if available" ON)
set(CUDA_CUDART_LIBRARY_VAR CUDA_cudart_static_LIBRARY) set(CUDA_CUDART_LIBRARY_VAR CUDA_cudart_static_LIBRARY)
else() else()
option(CUDA_USE_STATIC_CUDA_RUNTIME "Use the static version of the CUDA runtime library if available" OFF) # If not available, silently disable the option.
set(CUDA_USE_STATIC_CUDA_RUNTIME OFF CACHE INTERNAL "")
set(CUDA_CUDART_LIBRARY_VAR CUDA_CUDART_LIBRARY) set(CUDA_CUDART_LIBRARY_VAR CUDA_CUDART_LIBRARY)
endif() endif()
@ -817,12 +818,13 @@ if(CUDA_USE_STATIC_CUDA_RUNTIME)
else() else()
unset(CMAKE_THREAD_PREFER_PTHREAD) unset(CMAKE_THREAD_PREFER_PTHREAD)
endif() endif()
endif()
if (UNIX AND NOT APPLE AND CUDA_VERSION VERSION_LESS "7.0") if(NOT APPLE)
# Before CUDA 7.0, there was librt that has things such as, clock_gettime, shm_open, and shm_unlink. #On Linux, you must link against librt when using the static cuda runtime.
find_library(CUDA_rt_LIBRARY rt) find_library(CUDA_rt_LIBRARY rt)
if (NOT CUDA_rt_LIBRARY) if (NOT CUDA_rt_LIBRARY)
message(WARNING "Expecting to find librt for libcudart_static, but didn't find it.") message(WARNING "Expecting to find librt for libcudart_static, but didn't find it.")
endif()
endif() endif()
endif() endif()
endif() endif()