Browse Source

BUG: use full paths via pwd for -L paths on unix shells

Bill Hoffman 22 years ago
parent
commit
f3c42f593e
1 changed files with 12 additions and 5 deletions
  1. 12 5
      Source/cmLocalUnixMakefileGenerator.cxx

+ 12 - 5
Source/cmLocalUnixMakefileGenerator.cxx

@@ -697,6 +697,16 @@ void cmLocalUnixMakefileGenerator::OutputLinkLibraries(std::ostream& fout,
     std::string libpath = this->ConvertToOutputForExisting(libDir->c_str());
     if(emitted.insert(libpath).second)
       {
+      std::string fullLibPath;
+      if(!m_WindowsShell)
+        {
+        fullLibPath = "\"`cd ";
+        }
+      fullLibPath += libpath;
+      if(!m_WindowsShell)
+        {
+        fullLibPath += ";pwd`\"";
+        }
       std::string::size_type pos = libDir->find(libPathFlag.c_str());
       if((pos == std::string::npos || pos > 0)
          && libDir->find("${") == std::string::npos)
@@ -704,13 +714,10 @@ void cmLocalUnixMakefileGenerator::OutputLinkLibraries(std::ostream& fout,
         linkLibs += libPathFlag;
         if(outputRuntime)
           {
-          std::string rpath = "\"`cd ";
-          rpath += libpath;
-          rpath += ";pwd`\"";
-          runtimeDirs.push_back( rpath );
+          runtimeDirs.push_back( fullLibPath );
           }
         }
-      linkLibs += libpath;
+      linkLibs += fullLibPath;
       linkLibs += " ";
       }
     }