浏览代码

cmLocalGenerator: Separate rpath content from library stream

Stephen Kelly 9 年之前
父节点
当前提交
80f57e67ee
共有 1 个文件被更改,包括 9 次插入7 次删除
  1. 9 7
      Source/cmLocalGenerator.cxx

+ 9 - 7
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<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;