[llvm-commits] [llvm] r46421 - /llvm/trunk/tools/llvm-ld/llvm-ld.cpp

Chris Lattner sabre at nondot.org
Sun Jan 27 14:59:00 PST 2008


Author: lattner
Date: Sun Jan 27 16:58:59 2008
New Revision: 46421

URL: http://llvm.org/viewvc/llvm-project?rev=46421&view=rev
Log:
Add support for frameworks.  Patch by Shantonu Sen!

Modified:
    llvm/trunk/tools/llvm-ld/llvm-ld.cpp

Modified: llvm/trunk/tools/llvm-ld/llvm-ld.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-ld/llvm-ld.cpp?rev=46421&r1=46420&r2=46421&view=diff

==============================================================================
--- llvm/trunk/tools/llvm-ld/llvm-ld.cpp (original)
+++ llvm/trunk/tools/llvm-ld/llvm-ld.cpp Sun Jan 27 16:58:59 2008
@@ -55,10 +55,18 @@
   cl::desc("Specify a library search path"),
   cl::value_desc("directory"));
 
+static cl::list<std::string> FrameworkPaths("F", cl::Prefix,
+  cl::desc("Specify a framework search path"),
+  cl::value_desc("directory"));
+
 static cl::list<std::string> Libraries("l", cl::Prefix,
   cl::desc("Specify libraries to link to"),
   cl::value_desc("library prefix"));
 
+static cl::list<std::string> Frameworks("framework",
+  cl::desc("Specify frameworks to link to"),
+  cl::value_desc("framework"));
+
 // Options to control the linking, optimization, and code gen processes
 static cl::opt<bool> LinkAsLibrary("link-as-library",
   cl::desc("Link the .bc files together as a library, not an executable"));
@@ -287,6 +295,8 @@
 ///  OutputFilename  - The name of the file to generate.
 ///  NativeLinkItems - The native libraries, files, code with which to link
 ///  LibPaths        - The list of directories in which to find libraries.
+///  FrameworksPaths - The list of directories in which to find frameworks.
+///  Frameworks      - The list of frameworks (dynamic libraries)
 ///  gcc             - The pathname to use for GGC.
 ///  envp            - A copy of the process's current environment.
 ///
@@ -331,10 +341,12 @@
   args.push_back(OutputFilename);
   args.push_back(InputFilename);
 
-  // Add in the library paths
+  // Add in the library and framework paths
   for (unsigned index = 0; index < LibPaths.size(); index++) {
-    args.push_back("-L");
-    args.push_back(LibPaths[index]);
+    args.push_back("-L" + LibPaths[index]);
+  }
+  for (unsigned index = 0; index < FrameworkPaths.size(); index++) {
+    args.push_back("-F" + FrameworkPaths[index]);
   }
 
   // Add the requested options
@@ -350,6 +362,11 @@
         args.push_back(LinkItems[index].first);
     }
 
+  // Add in frameworks to link.
+  for (unsigned index = 0; index < Frameworks.size(); index++) {
+    args.push_back("-framework");
+    args.push_back(Frameworks[index]);
+  }
       
   // Now that "args" owns all the std::strings for the arguments, call the c_str
   // method to get the underlying string array.  We do this game so that the





More information about the llvm-commits mailing list