mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-07 06:09:52 -06:00
cmLocalGenerator: Separate rpath content from library stream
This commit is contained in:
@@ -1463,32 +1463,34 @@ void cmLocalGenerator::OutputLinkLibraries(
|
||||
linkLibs += " ";
|
||||
}
|
||||
|
||||
std::string rpath;
|
||||
|
||||
// Check what kind of rpath flags to use.
|
||||
if (cli.GetRuntimeSep().empty()) {
|
||||
// Each rpath entry gets its own option ("-R a -R b -R c")
|
||||
std::vector<std::string> runtimeDirs;
|
||||
cli.GetRPath(runtimeDirs, relink);
|
||||
|
||||
std::string rpath;
|
||||
for (std::vector<std::string>::iterator ri = runtimeDirs.begin();
|
||||
ri != runtimeDirs.end(); ++ri) {
|
||||
rpath += cli.GetRuntimeFlag();
|
||||
rpath += this->ConvertToOutputFormat(*ri, shellFormat);
|
||||
rpath += " ";
|
||||
}
|
||||
fout << rpath;
|
||||
} else {
|
||||
// All rpath entries are combined ("-Wl,-rpath,a:b:c").
|
||||
std::string rpath = cli.GetRPathString(relink);
|
||||
std::string rpathString = cli.GetRPathString(relink);
|
||||
|
||||
// Store the rpath option in the stream.
|
||||
if (!rpath.empty()) {
|
||||
fout << cli.GetRuntimeFlag();
|
||||
fout << this->EscapeForShell(rpath, escapeAllowMakeVars);
|
||||
fout << " ";
|
||||
if (!rpathString.empty()) {
|
||||
rpath += cli.GetRuntimeFlag();
|
||||
rpath += this->EscapeForShell(rpathString, escapeAllowMakeVars);
|
||||
rpath += " ";
|
||||
}
|
||||
}
|
||||
|
||||
fout << rpath;
|
||||
|
||||
// Write the library flags to the build rule.
|
||||
fout << linkLibs;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user