Prechádzať zdrojové kódy

ENH: When a full path to a library cannot be parsed, just add the whole path to the link line. If it isn't a valid path, the linker will complain.

Brad King 23 rokov pred
rodič
commit
6676286784
1 zmenil súbory, kde vykonal 9 pridanie a 0 odobranie
  1. 9 0
      Source/cmLocalUnixMakefileGenerator.cxx

+ 9 - 0
Source/cmLocalUnixMakefileGenerator.cxx

@@ -555,6 +555,7 @@ void cmLocalUnixMakefileGenerator::OutputLinkLibraries(std::ostream& fout,
       cmRegularExpression libname_noprefix("([^/]*)(\\.so|\\.lib|\\.dll|\\.sl|\\.a|\\.dylib).*");
       if(libname.find(file))
         {
+        // Library had "lib" prefix.
         librariesLinked += libLinkFlag;
         file = libname.match(1);
         librariesLinked += file;
@@ -566,6 +567,7 @@ void cmLocalUnixMakefileGenerator::OutputLinkLibraries(std::ostream& fout,
         }
       else if(libname_noprefix.find(file))
         {
+        // Library had no "lib" prefix.
         librariesLinked += libLinkFlag;
         file = libname_noprefix.match(1);
         librariesLinked += file;
@@ -575,6 +577,13 @@ void cmLocalUnixMakefileGenerator::OutputLinkLibraries(std::ostream& fout,
           }
         librariesLinked += " ";
         }
+      else
+        {
+        // Error parsing the library name.  Just use the full path.
+        // The linker will give an error if it is invalid.
+        librariesLinked += lib->first;
+        librariesLinked += " ";
+        }
       }
     // not a full path, so add -l name
     else