diff options
author | Mikhail Glushenkov <foldr@codedgers.com> | 2008-11-28 00:13:25 +0000 |
---|---|---|
committer | Mikhail Glushenkov <foldr@codedgers.com> | 2008-11-28 00:13:25 +0000 |
commit | 739c720e66e1b8889bb752131e4e27b797cec97c (patch) | |
tree | 91154f0b71da4104c58ec54dfa93da87c3dae4d0 | |
parent | 3321b0ff2408c2a2c5d84f88c5b953f36c99d90a (diff) |
Add 'hidden' and 'really_hidden' option properties.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60198 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/CompilerDriver/Common.td | 6 | ||||
-rw-r--r-- | tools/llvmc/doc/LLVMC-Reference.rst | 6 | ||||
-rw-r--r-- | utils/TableGen/LLVMCConfigurationEmitter.cpp | 44 |
3 files changed, 53 insertions, 3 deletions
diff --git a/include/llvm/CompilerDriver/Common.td b/include/llvm/CompilerDriver/Common.td index 4589f9179c..109a7e5eda 100644 --- a/include/llvm/CompilerDriver/Common.td +++ b/include/llvm/CompilerDriver/Common.td @@ -38,10 +38,12 @@ def prefix_list_option; def append_cmd; def forward; def forward_as; -def stop_compilation; -def unpack_values; def help; +def hidden; +def really_hidden; def required; +def stop_compilation; +def unpack_values; // Empty DAG marker. def empty; diff --git a/tools/llvmc/doc/LLVMC-Reference.rst b/tools/llvmc/doc/LLVMC-Reference.rst index 290778468a..919025527b 100644 --- a/tools/llvmc/doc/LLVMC-Reference.rst +++ b/tools/llvmc/doc/LLVMC-Reference.rst @@ -353,6 +353,12 @@ currently implemented option types and properties are described below: - ``required`` - this option is obligatory. + - ``hidden`` - this option should not appear in the ``--help`` + output (but should appear in the ``--help-hidden`` output). + + - ``really_hidden`` - the option should not appear in any help + output. + Option list - specifying all options in a single place ====================================================== diff --git a/utils/TableGen/LLVMCConfigurationEmitter.cpp b/utils/TableGen/LLVMCConfigurationEmitter.cpp index da4ed78a24..668282a91a 100644 --- a/utils/TableGen/LLVMCConfigurationEmitter.cpp +++ b/utils/TableGen/LLVMCConfigurationEmitter.cpp @@ -198,7 +198,8 @@ struct OptionDescription { // Global option description. namespace GlobalOptionDescriptionFlags { - enum GlobalOptionDescriptionFlags { Required = 0x1 }; + enum GlobalOptionDescriptionFlags { Required = 0x1, Hidden = 0x2, + ReallyHidden = 0x4 }; } struct GlobalOptionDescription : public OptionDescription { @@ -222,6 +223,20 @@ struct GlobalOptionDescription : public OptionDescription { Flags |= GlobalOptionDescriptionFlags::Required; } + bool isHidden() const { + return Flags & GlobalOptionDescriptionFlags::Hidden; + } + void setHidden() { + Flags |= GlobalOptionDescriptionFlags::Hidden; + } + + bool isReallyHidden() const { + return Flags & GlobalOptionDescriptionFlags::ReallyHidden; + } + void setReallyHidden() { + Flags |= GlobalOptionDescriptionFlags::ReallyHidden; + } + /// Merge - Merge two option descriptions. void Merge (const GlobalOptionDescription& other) { @@ -412,8 +427,12 @@ public: &CollectOptionProperties::onForwardAs; optionPropertyHandlers_["help"] = &CollectOptionProperties::onHelp; + optionPropertyHandlers_["hidden"] = + &CollectOptionProperties::onHidden; optionPropertyHandlers_["output_suffix"] = &CollectOptionProperties::onOutputSuffix; + optionPropertyHandlers_["really_hidden"] = + &CollectOptionProperties::onReallyHidden; optionPropertyHandlers_["required"] = &CollectOptionProperties::onRequired; optionPropertyHandlers_["stop_compilation"] = @@ -493,6 +512,18 @@ private: optDesc_.Help = help_message; } + void onHidden (const DagInit* d) { + checkNumberOfArguments(d, 0); + checkToolProps(d); + optDesc_.setHidden(); + } + + void onReallyHidden (const DagInit* d) { + checkNumberOfArguments(d, 0); + checkToolProps(d); + optDesc_.setReallyHidden(); + } + void onRequired (const DagInit* d) { checkNumberOfArguments(d, 0); checkToolProps(d); @@ -1413,6 +1444,17 @@ void EmitOptionDescriptions (const GlobalOptionDescriptions& descs, } } + if (val.isReallyHidden() || val.isHidden()) { + if (val.isRequired()) + O << " |"; + else + O << ","; + if (val.isReallyHidden()) + O << " cl::ReallyHidden"; + else + O << " cl::Hidden"; + } + if (!val.Help.empty()) O << ", cl::desc(\"" << val.Help << "\")"; |