[dsymutil] Add -o option to select ouptut filename
authorFrederic Riss <friss@apple.com>
Sat, 28 Feb 2015 00:29:03 +0000 (00:29 +0000)
committerFrederic Riss <friss@apple.com>
Sat, 28 Feb 2015 00:29:03 +0000 (00:29 +0000)
We do not create the output file yet, so no means to test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230821 91177308-0d34-0410-b5e6-96231b3b80d8

tools/dsymutil/dsymutil.cpp

index 2b4fcfe07008cd42666d44b1f052dbd531ea45b4..baa07d67093de1ed82b3d05c8f9116926830240e 100644 (file)
@@ -29,6 +29,10 @@ using namespace llvm::cl;
 static opt<std::string> InputFile(Positional, desc("<input file>"),
                                   init("a.out"));
 
+static opt<std::string> OutputFileOpt("o", desc("Specify the output file."
+                                                " default: <input file>.dwarf"),
+                                      value_desc("filename"));
+
 static opt<std::string> OsoPrependPath("oso-prepend-path",
                                        desc("Specify a directory to prepend "
                                             "to the paths of object files."),
@@ -63,9 +67,15 @@ int main(int argc, char **argv) {
   if (ParseOnly)
     return 0;
 
-  std::string OutputBasename(InputFile);
-  if (OutputBasename == "-")
-    OutputBasename = "a.out";
+  std::string OutputFile;
+  if (OutputFileOpt.empty()) {
+    if (InputFile == "-")
+      OutputFile = "a.out.dwarf";
+    else
+      OutputFile = InputFile + ".dwarf";
+  } else {
+    OutputFile = OutputFileOpt;
+  }
 
-  return !linkDwarf(OutputBasename + ".dwarf", **DebugMapPtrOrErr, Verbose);
+  return !linkDwarf(OutputFile, **DebugMapPtrOrErr, Verbose);
 }