Browse Source

BUG: Cannot escape link items because some need the spaces to separate arguments. Instead just escape the argument to the loader flag.

Brad King 18 years ago
parent
commit
4241e699c7
1 changed files with 6 additions and 6 deletions
  1. 6 6
      Source/cmLocalGenerator.cxx

+ 6 - 6
Source/cmLocalGenerator.cxx

@@ -1585,7 +1585,7 @@ void cmLocalGenerator::OutputLinkLibraries(std::ostream& fout,
   for(std::vector<cmStdString>::iterator lib = libNames.begin();
       lib != libNames.end(); ++lib)
     {
-    linkLibs += this->Convert(lib->c_str(), NONE, SHELL, false);
+    linkLibs += *lib;
     linkLibs += " ";
     }
 
@@ -1715,17 +1715,17 @@ void cmLocalGenerator
         // Pass the full path to the target file but purposely leave
         // off the per-configuration subdirectory.  The link directory
         // ordering knows how to deal with this.
-        std::string linkItem;
+        std::string linkItem = tgt->GetDirectory(0, implib);
+        linkItem += "/";
+        linkItem += tgt->GetFullName(config, implib);
         if(impexe && loader_flag)
           {
           // This link item is an executable that may provide symbols
           // used by this target.  A special flag is needed on this
           // platform.  Add it now.
-          linkItem += loader_flag;
+          linkItem = loader_flag +
+            this->Convert(linkItem.c_str(), NONE, SHELL, false);
           }
-        linkItem += tgt->GetDirectory(0, implib);
-        linkItem += "/";
-        linkItem += tgt->GetFullName(config, implib);
         linkLibraries.push_back(linkItem);
         // For full path, use the true location.
         if(fullPathLibs)