include "llvm/Option/OptParser.td"

multiclass Eq<string name> {
  def NAME: Separate<["--", "-"], name>;
  def NAME # _eq: Joined<["--", "-"], name # "=">, Alias<!cast<Separate>(NAME)>;
}

def help : Flag<["-", "--"], "help">;
defm binary_architecture : Eq<"binary-architecture">,
                           HelpText<"Used when transforming an architecture-less format (such as binary) to another format">;
def B : JoinedOrSeparate<["-"], "B">,
        Alias<binary_architecture>;
defm input_target : Eq<"input-target">,
                    HelpText<"Format of the input file">,
                    Values<"binary">;
defm output_target : Eq<"output-target">,
                     HelpText<"Format of the output file">,
                     Values<"binary">;
def O : JoinedOrSeparate<["-"], "O">,
        Alias<output_target>;
defm split_dwo : Eq<"split-dwo">,
                 MetaVarName<"dwo-file">,
                 HelpText<"Equivalent to extract-dwo on the input file to <dwo-file>, then strip-dwo on the input file">;
defm add_gnu_debuglink : Eq<"add-gnu-debuglink">,
                         MetaVarName<"debug-file">,
                         HelpText<"Add a .gnu_debuglink for <debug-file>">;
defm remove_section : Eq<"remove-section">,
                      MetaVarName<"section">,
                      HelpText<"Remove <section>">;
defm rename_section : Eq<"rename-section">,
                      MetaVarName<"old=new">,
                      HelpText<"Renames a section from old to new">;
defm redefine_symbol : Eq<"redefine-sym">,
                       MetaVarName<"old=new">,
                       HelpText<"Change the name of a symbol old to new">;
def R : JoinedOrSeparate<["-"], "R">,
        Alias<remove_section>;
defm keep : Eq<"keep">,
            MetaVarName<"section">,
            HelpText<"Keep <section>">;
defm only_keep : Eq<"only-keep">,
                 MetaVarName<"section">,
                 HelpText<"Remove all but <section>">;
def j : JoinedOrSeparate<["-"], "j">,
                      Alias<only_keep>;
defm add_section : Eq<"add-section">,
                   MetaVarName<"section=file">,
                   HelpText<"Make a section named <section> with the contents of <file>.">;
def strip_all : Flag<["-", "--"], "strip-all">,
                HelpText<"Remove non-allocated sections other than .gnu.warning* sections">;
def strip_all_gnu : Flag<["-", "--"], "strip-all-gnu">,
                    HelpText<"Compaitable with GNU objcopy's --strip-all">;
def strip_debug : Flag<["-", "--"], "strip-debug">,
                  HelpText<"Remove all debug information">;
def strip_dwo : Flag<["-", "--"], "strip-dwo">,
                HelpText<"Remove all DWARF .dwo sections from file">;
def strip_sections : Flag<["-", "--"], "strip-sections">,
                     HelpText<"Remove all section headers">;
def strip_non_alloc : Flag<["-", "--"], "strip-non-alloc">,
                      HelpText<"Remove all non-allocated sections">;
def extract_dwo : Flag<["-", "--"], "extract-dwo">,
                  HelpText<"Remove all sections that are not DWARF .dwo sections from file">;
def localize_hidden : Flag<["-", "--"], "localize-hidden">,
                      HelpText<"Mark all symbols that have hidden or internal visibility as local">;
defm localize_symbol : Eq<"localize-symbol">,
                       MetaVarName<"symbol">,
                       HelpText<"Mark <symbol> as local">;
def L : JoinedOrSeparate<["-"], "L">,
        Alias<localize_symbol>;
defm globalize_symbol : Eq<"globalize-symbol">,
                       MetaVarName<"symbol">,
                       HelpText<"Mark <symbol> as global">;
defm weaken_symbol : Eq<"weaken-symbol">,
                       MetaVarName<"symbol">,
                       HelpText<"Mark <symbol> as weak">;
def W : JoinedOrSeparate<["-"], "W">,
        Alias<weaken_symbol>;
def weaken : Flag<["-", "--"], "weaken">,
                  HelpText<"Mark all global symbols as weak">;
def discard_all : Flag<["-", "--"], "discard-all">,
                      HelpText<"Remove all local symbols except file and section symbols">;
def x : Flag<["-"], "x">,
        Alias<discard_all>;
defm strip_symbol : Eq<"strip-symbol">,
                       MetaVarName<"symbol">,
                       HelpText<"Remove symbol <symbol>">;
def N : JoinedOrSeparate<["-"], "N">,
        Alias<strip_symbol>;
defm keep_symbol : Eq<"keep-symbol">,
                       MetaVarName<"symbol">,
                       HelpText<"Do not remove symbol <symbol>">;
def K : JoinedOrSeparate<["-"], "K">,
        Alias<keep_symbol>;
def only_keep_debug : Flag<["-", "--"], "only-keep-debug">,
                          HelpText<"Currently ignored. Only for compaitability with GNU objcopy.">;
def strip_unneeded : Flag<["-", "--"], "strip-unneeded">,
                      HelpText<"Remove all symbols not needed by relocations">;
def keep_file_symbols : Flag<["-", "--"], "keep-file-symbols">,
                      HelpText<"Do not remove file symbols">;
