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

Method WriteTargetLinkLine

Source/cmGhsMultiTargetGenerator.cxx:283–332  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

281}
282
283void cmGhsMultiTargetGenerator::WriteTargetLinkLine(std::ostream& fout,
284 std::string const& config)
285{
286 if (this->TagType == GhsMultiGpj::INTEGRITY_APPLICATION) {
287 return;
288 }
289
290 std::string linkLibraries;
291 std::string flags;
292 std::string linkFlags;
293 std::string frameworkPath;
294 std::string linkPath;
295
296 std::unique_ptr<cmLinkLineComputer> linkLineComputer =
297 this->GetGlobalGenerator()->CreateLinkLineComputer(
298 this->LocalGenerator,
299 this->LocalGenerator->GetStateSnapshot().GetDirectory());
300
301 this->LocalGenerator->GetTargetFlags(
302 linkLineComputer.get(), config, linkLibraries, flags, linkFlags,
303 frameworkPath, linkPath, this->GeneratorTarget);
304
305 // write out link options
306 std::vector<std::string> lopts = cmSystemTools::ParseArguments(linkFlags);
307 for (std::string const& l : lopts) {
308 fout << " " << l << '\n';
309 }
310
311 // write out link search paths
312 // must be quoted for paths that contain spaces
313 std::vector<std::string> lpath = cmSystemTools::ParseArguments(linkPath);
314 for (std::string const& l : lpath) {
315 fout << " -L\"" << l << "\"\n";
316 }
317
318 // write out link libs
319 // must be quoted for filepaths that contains spaces
320 std::string cbd = this->LocalGenerator->GetCurrentBinaryDirectory();
321
322 std::vector<std::string> llibs =
323 cmSystemTools::ParseArguments(linkLibraries);
324 for (std::string const& l : llibs) {
325 if (l.compare(0, 2, "-l") == 0) {
326 fout << " \"" << l << "\"\n";
327 } else {
328 std::string rl = cmSystemTools::CollapseFullPath(l, cbd);
329 fout << " -l\"" << rl << "\"\n";
330 }
331 }
332}
333
334void cmGhsMultiTargetGenerator::WriteBuildEvents(std::ostream& fout)
335{

Callers 1

GenerateTargetMethod · 0.95

Calls 7

GetGlobalGeneratorMethod · 0.95
GetTargetFlagsMethod · 0.80
GetDirectoryMethod · 0.45
GetStateSnapshotMethod · 0.45
getMethod · 0.45
compareMethod · 0.45

Tested by

no test coverage detected