diff options
author | Brad King <brad.king@kitware.com> | 2019-07-02 12:36:45 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2019-07-02 12:36:56 (GMT) |
commit | 41acd44625f63d0730fdbd983ea598b227622087 (patch) | |
tree | 5fb29c346d05e88fa7eae3a7bef52233f2d1ec36 /Source | |
parent | 554c2ed743f4134df5552d4702c6b1e1dee97079 (diff) | |
parent | a4d502a5bfc38254ccb49615be8d7070fca6819e (diff) | |
download | CMake-41acd44625f63d0730fdbd983ea598b227622087.zip CMake-41acd44625f63d0730fdbd983ea598b227622087.tar.gz CMake-41acd44625f63d0730fdbd983ea598b227622087.tar.bz2 |
Merge topic 'cuda-no-device-link-when-disabled'
a4d502a5bf CUDA: Do not device link if CUDA is not an enabled language
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3491
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmLinkLineDeviceComputer.cxx | 4 | ||||
-rw-r--r-- | Source/cmMakefileExecutableTargetGenerator.cxx | 6 | ||||
-rw-r--r-- | Source/cmMakefileLibraryTargetGenerator.cxx | 8 | ||||
-rw-r--r-- | Source/cmVisualStudio10TargetGenerator.cxx | 2 |
4 files changed, 9 insertions, 11 deletions
diff --git a/Source/cmLinkLineDeviceComputer.cxx b/Source/cmLinkLineDeviceComputer.cxx index 6cfe5bb..d27da3e 100644 --- a/Source/cmLinkLineDeviceComputer.cxx +++ b/Source/cmLinkLineDeviceComputer.cxx @@ -12,6 +12,7 @@ #include "cmAlgorithms.h" #include "cmComputeLinkInformation.h" #include "cmGeneratorTarget.h" +#include "cmGlobalGenerator.h" #include "cmLocalGenerator.h" #include "cmStateDirectory.h" #include "cmStateSnapshot.h" @@ -142,6 +143,9 @@ std::string cmLinkLineDeviceComputer::GetLinkerLanguage(cmGeneratorTarget*, bool requireDeviceLinking(cmGeneratorTarget& target, cmLocalGenerator& lg, const std::string& config) { + if (!target.GetGlobalGenerator()->GetLanguageEnabled("CUDA")) { + return false; + } if (target.GetType() == cmStateEnums::OBJECT_LIBRARY) { return false; diff --git a/Source/cmMakefileExecutableTargetGenerator.cxx b/Source/cmMakefileExecutableTargetGenerator.cxx index 552463d..6b9b9c7 100644 --- a/Source/cmMakefileExecutableTargetGenerator.cxx +++ b/Source/cmMakefileExecutableTargetGenerator.cxx @@ -82,11 +82,7 @@ void cmMakefileExecutableTargetGenerator::WriteDeviceExecutableRule( bool relink) { #ifdef CMAKE_BUILD_WITH_CMAKE - if (!this->GlobalGenerator->GetLanguageEnabled("CUDA")) { - return; - } - - bool requiresDeviceLinking = requireDeviceLinking( + const bool requiresDeviceLinking = requireDeviceLinking( *this->GeneratorTarget, *this->LocalGenerator, this->ConfigName); if (!requiresDeviceLinking) { return; diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx index 99f0df8..b9f7c6d 100644 --- a/Source/cmMakefileLibraryTargetGenerator.cxx +++ b/Source/cmMakefileLibraryTargetGenerator.cxx @@ -123,8 +123,7 @@ void cmMakefileLibraryTargetGenerator::WriteObjectLibraryRules() void cmMakefileLibraryTargetGenerator::WriteStaticLibraryRules() { - - bool requiresDeviceLinking = requireDeviceLinking( + const bool requiresDeviceLinking = requireDeviceLinking( *this->GeneratorTarget, *this->LocalGenerator, this->ConfigName); if (requiresDeviceLinking) { std::string linkRuleVar = "CMAKE_CUDA_DEVICE_LINK_LIBRARY"; @@ -152,7 +151,7 @@ void cmMakefileLibraryTargetGenerator::WriteSharedLibraryRules(bool relink) } if (!relink) { - bool requiresDeviceLinking = requireDeviceLinking( + const bool requiresDeviceLinking = requireDeviceLinking( *this->GeneratorTarget, *this->LocalGenerator, this->ConfigName); if (requiresDeviceLinking) { std::string linkRuleVar = "CMAKE_CUDA_DEVICE_LINK_LIBRARY"; @@ -186,9 +185,8 @@ void cmMakefileLibraryTargetGenerator::WriteSharedLibraryRules(bool relink) void cmMakefileLibraryTargetGenerator::WriteModuleLibraryRules(bool relink) { - if (!relink) { - bool requiresDeviceLinking = requireDeviceLinking( + const bool requiresDeviceLinking = requireDeviceLinking( *this->GeneratorTarget, *this->LocalGenerator, this->ConfigName); if (requiresDeviceLinking) { std::string linkRuleVar = "CMAKE_CUDA_DEVICE_LINK_LIBRARY"; diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 150ede7..0420881 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -3064,7 +3064,7 @@ bool cmVisualStudio10TargetGenerator::ComputeCudaLinkOptions( Options& cudaLinkOptions = *pOptions; // Determine if we need to do a device link - bool doDeviceLinking = requireDeviceLinking( + const bool doDeviceLinking = requireDeviceLinking( *this->GeneratorTarget, *this->LocalGenerator, configName); cudaLinkOptions.AddFlag("PerformDeviceLink", |