diff options
Diffstat (limited to 'lib/Tooling/CommonOptionsParser.cpp')
| -rw-r--r-- | lib/Tooling/CommonOptionsParser.cpp | 20 | 
1 files changed, 17 insertions, 3 deletions
| diff --git a/lib/Tooling/CommonOptionsParser.cpp b/lib/Tooling/CommonOptionsParser.cpp index cce4816aa675..e0b844c067d4 100644 --- a/lib/Tooling/CommonOptionsParser.cpp +++ b/lib/Tooling/CommonOptionsParser.cpp @@ -54,12 +54,26 @@ const char *const CommonOptionsParser::HelpMessage =      "\n";  CommonOptionsParser::CommonOptionsParser(int &argc, const char **argv, +                                         cl::OptionCategory &Category,                                           const char *Overview) { -  static cl::opt<std::string> BuildPath( -      "p", cl::desc("Build path"), cl::Optional); +  static cl::opt<bool> Help("h", cl::desc("Alias for -help"), cl::Hidden); + +  static cl::opt<std::string> BuildPath("p", cl::desc("Build path"), +                                        cl::Optional, cl::cat(Category));    static cl::list<std::string> SourcePaths( -      cl::Positional, cl::desc("<source0> [... <sourceN>]"), cl::OneOrMore); +      cl::Positional, cl::desc("<source0> [... <sourceN>]"), cl::OneOrMore, +      cl::cat(Category)); + +  // Hide unrelated options. +  StringMap<cl::Option*> Options; +  cl::getRegisteredOptions(Options); +  for (StringMap<cl::Option *>::iterator I = Options.begin(), E = Options.end(); +       I != E; ++I) { +    if (I->second->Category != &Category && I->first() != "help" && +        I->first() != "version") +      I->second->setHiddenFlag(cl::ReallyHidden); +  }    Compilations.reset(FixedCompilationDatabase::loadFromCommandLine(argc,                                                                     argv)); | 
