|
|
@@ -93,9 +93,7 @@ include(CMakeCommonLanguageInclude)
|
|
|
# CMAKE_CUDA_LINK_EXECUTABLE
|
|
|
|
|
|
if(CMAKE_CUDA_HOST_COMPILER)
|
|
|
- set(CMAKE_CUDA_HOST_FLAGS "-ccbin=<CMAKE_CUDA_HOST_COMPILER>")
|
|
|
-else()
|
|
|
- set(CMAKE_CUDA_HOST_FLAGS "")
|
|
|
+ string(APPEND _CMAKE_CUDA_EXTRA_FLAGS " -ccbin=<CMAKE_CUDA_HOST_COMPILER>")
|
|
|
endif()
|
|
|
|
|
|
set(__IMPLICT_LINKS )
|
|
|
@@ -135,24 +133,24 @@ endif()
|
|
|
#Specify how to compile when ptx has been requested
|
|
|
if(NOT CMAKE_CUDA_COMPILE_PTX_COMPILATION)
|
|
|
set(CMAKE_CUDA_COMPILE_PTX_COMPILATION
|
|
|
- "<CMAKE_CUDA_COMPILER> ${CMAKE_CUDA_HOST_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -ptx <SOURCE> -o <OBJECT>")
|
|
|
+ "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -ptx <SOURCE> -o <OBJECT>")
|
|
|
endif()
|
|
|
|
|
|
#Specify how to compile when separable compilation has been requested
|
|
|
if(NOT CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION)
|
|
|
set(CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION
|
|
|
- "<CMAKE_CUDA_COMPILER> ${CMAKE_CUDA_HOST_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -dc <SOURCE> -o <OBJECT>")
|
|
|
+ "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -dc <SOURCE> -o <OBJECT>")
|
|
|
endif()
|
|
|
|
|
|
#Specify how to compile when whole compilation has been requested
|
|
|
if(NOT CMAKE_CUDA_COMPILE_WHOLE_COMPILATION)
|
|
|
set(CMAKE_CUDA_COMPILE_WHOLE_COMPILATION
|
|
|
- "<CMAKE_CUDA_COMPILER> ${CMAKE_CUDA_HOST_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -c <SOURCE> -o <OBJECT>")
|
|
|
+ "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -c <SOURCE> -o <OBJECT>")
|
|
|
endif()
|
|
|
|
|
|
if(CMAKE_GENERATOR STREQUAL "Ninja")
|
|
|
set(CMAKE_CUDA_COMPILE_DEPENDENCY_DETECTION
|
|
|
- "<CMAKE_CUDA_COMPILER> ${CMAKE_CUDA_HOST_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -M <SOURCE> -MT <OBJECT> -o $DEP_FILE")
|
|
|
+ "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -M <SOURCE> -MT <OBJECT> -o $DEP_FILE")
|
|
|
#The Ninja generator uses the make file dependency files to determine what
|
|
|
#files need to be recompiled. Unfortunately, nvcc doesn't support building
|
|
|
#a source file and generating the dependencies of said file in a single
|
|
|
@@ -171,13 +169,6 @@ if(NOT CMAKE_CUDA_LINK_EXECUTABLE)
|
|
|
"<CMAKE_CUDA_HOST_LINK_LAUNCHER> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_LINKS}")
|
|
|
endif()
|
|
|
|
|
|
-if( CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA" AND
|
|
|
- CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "8.0.0")
|
|
|
- set(_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS "-Wno-deprecated-gpu-targets")
|
|
|
-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})
|
|
|
@@ -192,14 +183,15 @@ foreach(dir ${__IMPLICT_DLINK_DIRS})
|
|
|
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} <LANGUAGE_COMPILE_FLAGS> ${CMAKE_CUDA_COMPILE_OPTIONS_PIC} ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_DLINK_FLAGS}")
|
|
|
+ "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_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_COMPILE_OPTIONS_PIC} ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_DLINK_FLAGS}")
|
|
|
+ "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <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)
|