MCPcopy Create free account
hub / github.com/Kitware/CMake / GetCudaDeviceLinkLinkerAndArgs

Method GetCudaDeviceLinkLinkerAndArgs

Source/cmFastbuildNormalTargetGenerator.cxx:1282–1318  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1280}
1281
1282void 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
1320void cmFastbuildNormalTargetGenerator::GenerateCudaDeviceLink(
1321 FastbuildTarget& target) const

Callers

nothing calls this directly

Calls 10

GetTargetFlagsMethod · 0.80
c_strMethod · 0.80
ExpandRuleVariablesMethod · 0.80
GetDefinitionMethod · 0.45
GetMakefileMethod · 0.45
GetDirectoryMethod · 0.45
GetStateSnapshotMethod · 0.45
GetDeviceLinkFlagsMethod · 0.45
getMethod · 0.45
GetLocalGeneratorMethod · 0.45

Tested by

no test coverage detected