From 80f57e67eefc905a726f2f35bd1672a188ea4c99 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Sat, 8 Oct 2016 12:21:36 +0200 Subject: cmLocalGenerator: Separate rpath content from library stream --- Source/cmLocalGenerator.cxx | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index ae4a0b2..6de8f9a 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -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 runtimeDirs; cli.GetRPath(runtimeDirs, relink); - std::string rpath; for (std::vector::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; -- cgit v0.12