mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-26 02:38:37 -06:00
cmLinkLineComputer: Move LinkPath computation from cmLocalGenerator
Add a ConvertToOutputForExisting method which can be made virtual later to satisfy different generator needs. Pass additional strings as parameters for now. They can be turned into class state later.
This commit is contained in:
@@ -72,3 +72,31 @@ std::string cmLinkLineComputer::ConvertToOutputFormat(std::string const& input)
|
||||
|
||||
return this->OutputConverter->ConvertToOutputFormat(input, shellFormat);
|
||||
}
|
||||
|
||||
std::string cmLinkLineComputer::ConvertToOutputForExisting(
|
||||
std::string const& input)
|
||||
{
|
||||
cmOutputConverter::OutputFormat shellFormat = (this->ForResponse)
|
||||
? cmOutputConverter::RESPONSE
|
||||
: ((this->UseWatcomQuote) ? cmOutputConverter::WATCOMQUOTE
|
||||
: cmOutputConverter::SHELL);
|
||||
|
||||
return this->OutputConverter->ConvertToOutputForExisting(input, shellFormat);
|
||||
}
|
||||
|
||||
std::string cmLinkLineComputer::ComputeLinkPath(
|
||||
cmComputeLinkInformation& cli, std::string const& libPathFlag,
|
||||
std::string const& libPathTerminator)
|
||||
{
|
||||
std::string linkPath;
|
||||
std::vector<std::string> const& libDirs = cli.GetDirectories();
|
||||
for (std::vector<std::string>::const_iterator libDir = libDirs.begin();
|
||||
libDir != libDirs.end(); ++libDir) {
|
||||
std::string libpath = this->ConvertToOutputForExisting(*libDir);
|
||||
linkPath += " " + libPathFlag;
|
||||
linkPath += libpath;
|
||||
linkPath += libPathTerminator;
|
||||
linkPath += " ";
|
||||
}
|
||||
return linkPath;
|
||||
}
|
||||
|
||||
@@ -23,8 +23,13 @@ public:
|
||||
|
||||
std::string ComputeLinkLibs(cmComputeLinkInformation& cli);
|
||||
|
||||
std::string ComputeLinkPath(cmComputeLinkInformation& cli,
|
||||
std::string const& libPathFlag,
|
||||
std::string const& libPathTerminator);
|
||||
|
||||
private:
|
||||
std::string ConvertToOutputFormat(std::string const& input);
|
||||
std::string ConvertToOutputForExisting(std::string const& input);
|
||||
|
||||
cmState::Directory StateDir;
|
||||
cmOutputConverter* OutputConverter;
|
||||
|
||||
@@ -1441,17 +1441,8 @@ void cmLocalGenerator::OutputLinkLibraries(
|
||||
}
|
||||
}
|
||||
|
||||
// Append the library search path flags.
|
||||
std::vector<std::string> const& libDirs = cli.GetDirectories();
|
||||
for (std::vector<std::string>::const_iterator libDir = libDirs.begin();
|
||||
libDir != libDirs.end(); ++libDir) {
|
||||
std::string libpath =
|
||||
this->ConvertToOutputForExisting(*libDir, shellFormat);
|
||||
linkPath += " " + libPathFlag;
|
||||
linkPath += libpath;
|
||||
linkPath += libPathTerminator;
|
||||
linkPath += " ";
|
||||
}
|
||||
linkPath =
|
||||
linkLineComputer->ComputeLinkPath(cli, libPathFlag, libPathTerminator);
|
||||
|
||||
std::string linkLibs = linkLineComputer->ComputeLinkLibs(cli);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user