| 1280 | } |
| 1281 | |
| 1282 | void cmFastbuildNormalTargetGenerator::GetCudaDeviceLinkLinkerAndArgs( |
| 1283 | std::string& linker, std::string& args) const |
| 1284 | { |
| 1285 | std::string linkCmd = |
| 1286 | this->GetMakefile()->GetDefinition("CMAKE_CUDA_DEVICE_LINK_" |
| 1287 | "LIBRARY"); |
| 1288 | auto vars = ComputeRuleVariables(); |
| 1289 | vars.Language = "CUDA"; |
| 1290 | vars.Objects = FASTBUILD_1_INPUT_PLACEHOLDER; |
| 1291 | vars.Target = FASTBUILD_2_INPUT_PLACEHOLDER; |
| 1292 | std::unique_ptr<cmLinkLineDeviceComputer> linkLineComputer( |
| 1293 | new cmLinkLineDeviceComputer( |
| 1294 | this->LocalGenerator, |
| 1295 | this->LocalGenerator->GetStateSnapshot().GetDirectory())); |
| 1296 | std::string linkLibs; |
| 1297 | std::string targetFlags; |
| 1298 | std::string linkFlags; |
| 1299 | std::string frameworkPath; |
| 1300 | std::string linkPath; |
| 1301 | // So that the call to "GetTargetFlags" does not pollute "LinkLibs" and |
| 1302 | // "LinkFlags" with unneeded values. |
| 1303 | std::string dummyLinkLibs; |
| 1304 | std::string dummyLinkFlags; |
| 1305 | this->LocalCommonGenerator->GetDeviceLinkFlags( |
| 1306 | *linkLineComputer, Config, linkLibs, linkFlags, frameworkPath, linkPath, |
| 1307 | this->GeneratorTarget); |
| 1308 | this->LocalCommonGenerator->GetTargetFlags( |
| 1309 | linkLineComputer.get(), Config, dummyLinkLibs, targetFlags, dummyLinkFlags, |
| 1310 | frameworkPath, linkPath, this->GeneratorTarget); |
| 1311 | vars.LanguageCompileFlags = ""; |
| 1312 | vars.LinkFlags = linkFlags.c_str(); |
| 1313 | vars.LinkLibraries = linkLibs.c_str(); |
| 1314 | vars.LanguageCompileFlags = targetFlags.c_str(); |
| 1315 | this->RulePlaceholderExpander->ExpandRuleVariables(this->GetLocalGenerator(), |
| 1316 | linkCmd, vars); |
| 1317 | SplitLinkerFromArgs(linkCmd, linker, args); |
| 1318 | } |
| 1319 | |
| 1320 | void cmFastbuildNormalTargetGenerator::GenerateCudaDeviceLink( |
| 1321 | FastbuildTarget& target) const |
nothing calls this directly
no test coverage detected