CUDA: Support CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS global variable

This commit is contained in:
Robert Maynard
2019-07-31 20:11:08 -04:00
parent 8ce189720e
commit 8f1d22c2d9
5 changed files with 15 additions and 1 deletions

View File

@@ -353,6 +353,7 @@ Variables that Control the Build
/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG
/variable/CMAKE_CONFIG_POSTFIX
/variable/CMAKE_CUDA_SEPARABLE_COMPILATION
/variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS
/variable/CMAKE_DEBUG_POSTFIX
/variable/CMAKE_ENABLE_EXPORTS
/variable/CMAKE_EXE_LINKER_FLAGS

View File

@@ -0,0 +1,6 @@
cuda-CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS
--------------------------------------
* Variable :variable:`CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS` has been
introduced to optionally initialize the
:prop_tgt:`CUDA_RESOLVE_DEVICE_SYMBOLS` target property.

View File

@@ -0,0 +1,6 @@
CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS
---------------------------------
Default value for :prop_tgt:`CUDA_RESOLVE_DEVICE_SYMBOLS` target
property. This variable is used to initialize the property on each target as
it is created.

View File

@@ -342,6 +342,7 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type,
initProp("CUDA_EXTENSIONS");
initProp("CUDA_COMPILER_LAUNCHER");
initProp("CUDA_SEPARABLE_COMPILATION");
initProp("CUDA_RESOLVE_DEVICE_SYMBOLS");
initProp("LINK_SEARCH_START_STATIC");
initProp("LINK_SEARCH_END_STATIC");
initProp("FOLDER");

View File

@@ -27,12 +27,12 @@ endif()
string(APPEND CMAKE_CUDA_FLAGS " -gencode arch=compute_30,code=[compute_30] -gencode arch=compute_50,code=\\\"compute_50\\\"")
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CUDA_STANDARD 11)
set(CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS OFF)
add_library(CUDANoDeviceResolve SHARED file1.cu)
set_target_properties(CUDANoDeviceResolve
PROPERTIES
CUDA_SEPARABLE_COMPILATION ON
CUDA_RESOLVE_DEVICE_SYMBOLS OFF
POSITION_INDEPENDENT_CODE ON)
if(MSVC)
target_link_options(CUDANoDeviceResolve PRIVATE "/FORCE:UNRESOLVED")