|
|
@@ -177,17 +177,31 @@ else()
|
|
|
set(_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS "")
|
|
|
endif()
|
|
|
|
|
|
+# Add implicit host link directories that contain device libraries
|
|
|
+# to the device link line.
|
|
|
+set(__IMPLICT_DLINK_DIRS ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES})
|
|
|
+if(__IMPLICT_DLINK_DIRS)
|
|
|
+ list(REMOVE_ITEM __IMPLICT_DLINK_DIRS ${CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES})
|
|
|
+endif()
|
|
|
+set(__IMPLICT_DLINK_FLAGS )
|
|
|
+foreach(dir ${__IMPLICT_DLINK_DIRS})
|
|
|
+ if(EXISTS "${dir}/libcublas_device.a")
|
|
|
+ string(APPEND __IMPLICT_DLINK_FLAGS " -L\"${dir}\"")
|
|
|
+ endif()
|
|
|
+endforeach()
|
|
|
+unset(__IMPLICT_DLINK_DIRS)
|
|
|
|
|
|
#These are used when linking relocatable (dc) cuda code
|
|
|
if(NOT CMAKE_CUDA_DEVICE_LINK_LIBRARY)
|
|
|
set(CMAKE_CUDA_DEVICE_LINK_LIBRARY
|
|
|
- "<CMAKE_CUDA_COMPILER> ${CMAKE_CUDA_HOST_FLAGS} <CMAKE_CUDA_LINK_FLAGS> <LANGUAGE_COMPILE_FLAGS> ${CMAKE_CUDA_COMPILE_OPTIONS_PIC} ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
|
|
|
+ "<CMAKE_CUDA_COMPILER> ${CMAKE_CUDA_HOST_FLAGS} <CMAKE_CUDA_LINK_FLAGS> <LANGUAGE_COMPILE_FLAGS> ${CMAKE_CUDA_COMPILE_OPTIONS_PIC} ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_DLINK_FLAGS}")
|
|
|
endif()
|
|
|
if(NOT CMAKE_CUDA_DEVICE_LINK_EXECUTABLE)
|
|
|
set(CMAKE_CUDA_DEVICE_LINK_EXECUTABLE
|
|
|
- "<CMAKE_CUDA_COMPILER> ${CMAKE_CUDA_HOST_FLAGS} <FLAGS> <CMAKE_CUDA_LINK_FLAGS> ${CMAKE_CUDA_COMPILE_OPTIONS_PIC} ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
|
|
|
+ "<CMAKE_CUDA_COMPILER> ${CMAKE_CUDA_HOST_FLAGS} <FLAGS> <CMAKE_CUDA_LINK_FLAGS> ${CMAKE_CUDA_COMPILE_OPTIONS_PIC} ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_DLINK_FLAGS}")
|
|
|
endif()
|
|
|
|
|
|
unset(_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS)
|
|
|
+unset(__IMPLICT_DLINK_FLAGS)
|
|
|
|
|
|
set(CMAKE_CUDA_INFORMATION_LOADED 1)
|