mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-04-01 07:11:45 +00:00
[libOption] - Add flag allowing to print options aliases in help text.
By default, we display only options that are not hidden and have help texts. This patch adds flag allowing to display aliases that have no help text. In this case help text of aliased option used instead. Differential revision: https://reviews.llvm.org/D35476 llvm-svn: 309087
This commit is contained in:
parent
9499e4e2f8
commit
6ac3a6929c
@ -191,12 +191,16 @@ public:
|
||||
/// \param FlagsToInclude - If non-zero, only include options with any
|
||||
/// of these flags set.
|
||||
/// \param FlagsToExclude - Exclude options with any of these flags set.
|
||||
void PrintHelp(raw_ostream &OS, const char *Name,
|
||||
const char *Title, unsigned FlagsToInclude,
|
||||
unsigned FlagsToExclude) const;
|
||||
/// \param ShowAllAliases - If true, display all options including aliases
|
||||
/// that don't have help texts. By default, we display
|
||||
/// only options that are not hidden and have help
|
||||
/// texts.
|
||||
void PrintHelp(raw_ostream &OS, const char *Name, const char *Title,
|
||||
unsigned FlagsToInclude, unsigned FlagsToExclude,
|
||||
bool ShowAllAliases) const;
|
||||
|
||||
void PrintHelp(raw_ostream &OS, const char *Name,
|
||||
const char *Title, bool ShowHidden = false) const;
|
||||
void PrintHelp(raw_ostream &OS, const char *Name, const char *Title,
|
||||
bool ShowHidden = false, bool ShowAllAliases = false) const;
|
||||
};
|
||||
|
||||
} // end namespace opt
|
||||
|
@ -444,15 +444,14 @@ static const char *getOptionHelpGroup(const OptTable &Opts, OptSpecifier Id) {
|
||||
}
|
||||
|
||||
void OptTable::PrintHelp(raw_ostream &OS, const char *Name, const char *Title,
|
||||
bool ShowHidden) const {
|
||||
bool ShowHidden, bool ShowAllAliases) const {
|
||||
PrintHelp(OS, Name, Title, /*Include*/ 0, /*Exclude*/
|
||||
(ShowHidden ? 0 : HelpHidden));
|
||||
(ShowHidden ? 0 : HelpHidden), ShowAllAliases);
|
||||
}
|
||||
|
||||
|
||||
void OptTable::PrintHelp(raw_ostream &OS, const char *Name, const char *Title,
|
||||
unsigned FlagsToInclude,
|
||||
unsigned FlagsToExclude) const {
|
||||
unsigned FlagsToInclude, unsigned FlagsToExclude,
|
||||
bool ShowAllAliases) const {
|
||||
OS << "OVERVIEW: " << Title << "\n";
|
||||
OS << '\n';
|
||||
OS << "USAGE: " << Name << " [options] <inputs>\n";
|
||||
@ -476,10 +475,19 @@ void OptTable::PrintHelp(raw_ostream &OS, const char *Name, const char *Title,
|
||||
if (Flags & FlagsToExclude)
|
||||
continue;
|
||||
|
||||
if (const char *Text = getOptionHelpText(Id)) {
|
||||
// If an alias doesn't have a help text, show a help text for the aliased
|
||||
// option instead.
|
||||
const char *HelpText = getOptionHelpText(Id);
|
||||
if (!HelpText && ShowAllAliases) {
|
||||
const Option Alias = getOption(Id).getAlias();
|
||||
if (Alias.isValid())
|
||||
HelpText = getOptionHelpText(Alias.getID());
|
||||
}
|
||||
|
||||
if (HelpText) {
|
||||
const char *HelpGroup = getOptionHelpGroup(*this, Id);
|
||||
const std::string &OptName = getOptionHelpName(*this, Id);
|
||||
GroupedOptionHelp[HelpGroup].push_back({OptName, Text});
|
||||
GroupedOptionHelp[HelpGroup].push_back({OptName, HelpText});
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user