summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefileExecutableTargetGenerator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-12-13 18:02:11 (GMT)
committerBrad King <brad.king@kitware.com>2017-01-12 15:39:03 (GMT)
commit02582b91ad92969d8fbbd845a5d48b3fbd762966 (patch)
tree9dce94911a77826b9067a9538c0ac93fd4bffcf5 /Source/cmMakefileExecutableTargetGenerator.cxx
parentd470cb70077acf2216afe097b5abe379f1828239 (diff)
downloadCMake-02582b91ad92969d8fbbd845a5d48b3fbd762966.zip
CMake-02582b91ad92969d8fbbd845a5d48b3fbd762966.tar.gz
CMake-02582b91ad92969d8fbbd845a5d48b3fbd762966.tar.bz2
CUDA: Populate compiler PDB placeholder during device linking
The device link step runs the host compiler internally so we need to use the proper compiler PDB file with MSVC.
Diffstat (limited to 'Source/cmMakefileExecutableTargetGenerator.cxx')
-rw-r--r--Source/cmMakefileExecutableTargetGenerator.cxx6
1 files changed, 6 insertions, 0 deletions
diff --git a/Source/cmMakefileExecutableTargetGenerator.cxx b/Source/cmMakefileExecutableTargetGenerator.cxx
index 480bb34..4bc706c 100644
--- a/Source/cmMakefileExecutableTargetGenerator.cxx
+++ b/Source/cmMakefileExecutableTargetGenerator.cxx
@@ -230,6 +230,11 @@ void cmMakefileExecutableTargetGenerator::WriteDeviceExecutableRule(
this->LocalGenerator->GetCurrentBinaryDirectory(), targetOutputReal),
output);
+ std::string targetFullPathCompilePDB = this->ComputeTargetCompilePDB();
+ std::string targetOutPathCompilePDB =
+ this->LocalGenerator->ConvertToOutputFormat(targetFullPathCompilePDB,
+ cmOutputConverter::SHELL);
+
vars.Language = linkLanguage.c_str();
vars.Objects = buildObjs.c_str();
vars.ObjectDir = objectDir.c_str();
@@ -237,6 +242,7 @@ void cmMakefileExecutableTargetGenerator::WriteDeviceExecutableRule(
vars.LinkLibraries = linkLibs.c_str();
vars.Flags = flags.c_str();
vars.LinkFlags = linkFlags.c_str();
+ vars.TargetCompilePDB = targetOutPathCompilePDB.c_str();
std::string launcher;