From ba72b708c18b8210d3166ba775d9c3bc8b80b586 Mon Sep 17 00:00:00 2001 From: Frederic Riss Date: Wed, 29 Jul 2015 22:29:46 +0000 Subject: [PATCH] [dsymutil] Use option categories. Prevent all the unrelated LLVM options to appear in the -help output by introducing a tool specific option category. As a drive-by improve the wording of the help message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243583 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/dsymutil/dsymutil.cpp | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/tools/dsymutil/dsymutil.cpp b/tools/dsymutil/dsymutil.cpp index 4c1f6a39b66..fee4e083053 100644 --- a/tools/dsymutil/dsymutil.cpp +++ b/tools/dsymutil/dsymutil.cpp @@ -27,40 +27,44 @@ using namespace llvm::dsymutil; namespace { using namespace llvm::cl; +OptionCategory DsymCategory("Specific Options"); +static opt Help("h", desc("Alias for -help"), Hidden); + static opt InputFile(Positional, desc(""), - init("a.out")); + init("a.out"), cat(DsymCategory)); static opt OutputFileOpt("o", desc("Specify the output file. default: .dwarf"), - value_desc("filename")); + value_desc("filename"), cat(DsymCategory)); static opt OsoPrependPath( "oso-prepend-path", desc("Specify a directory to prepend to the paths of object files."), - value_desc("path")); + value_desc("path"), cat(DsymCategory)); -static opt Verbose("verbose", desc("Verbosity level"), init(false)); +static opt Verbose("verbose", desc("Verbosity level"), init(false), + cat(DsymCategory)); static opt NoOutput("no-output", desc("Do the link in memory, but do not emit the result file."), - init(false)); + init(false), cat(DsymCategory)); static opt NoODR("no-odr", desc("Do not use ODR (One Definition Rule) for type uniquing."), - init(false)); + init(false), cat(DsymCategory)); static opt DumpDebugMap( "dump-debug-map", desc("Parse and dump the debug map to standard output. Not DWARF link " "will take place."), - init(false)); + init(false), cat(DsymCategory)); static opt InputIsYAMLDebugMap( "y", desc("Treat the input file is a YAML debug map rather than a binary."), - init(false)); + init(false), cat(DsymCategory)); } int main(int argc, char **argv) { @@ -69,7 +73,16 @@ int main(int argc, char **argv) { llvm::llvm_shutdown_obj Shutdown; LinkOptions Options; - llvm::cl::ParseCommandLineOptions(argc, argv, "llvm dsymutil\n"); + HideUnrelatedOptions(DsymCategory); + llvm::cl::ParseCommandLineOptions( + argc, argv, + "manipulate archived DWARF debug symbol files.\n\n" + "dsymutil links the DWARF debug information found in the object files\n" + "for the executable by using debug symbols information\n" + "contained in its symbol table.\n"); + + if (Help) + PrintHelpMessage(); auto DebugMapPtrOrErr = parseDebugMap(InputFile, OsoPrependPath, Verbose, InputIsYAMLDebugMap); -- 2.34.1