RSCCOptions.td revision b81c6a4cbd9c08e0b20ea4fbc615b416ac1bc9ec
1//===----------------------------------------------------------------------===//
2//
3//  This file defines the options accepted by llvm-rs-cc.
4//
5//===----------------------------------------------------------------------===//
6
7// Include the common option parsing interfaces.
8include "clang/Driver/OptParser.td"
9
10//===----------------------------------------------------------------------===//
11// Target Options
12//===----------------------------------------------------------------------===//
13
14def target_cpu : Separate<"-target-cpu">,
15  HelpText<"Target a specific cpu type">;
16def _target_cpu : Flag<"-u">, Alias<target_cpu>;
17def target_feature : Separate<"-target-feature">,
18  HelpText<"Target specific attributes">;
19def triple : Separate<"-triple">,
20  HelpText<"Specify target triple (e.g. i686-apple-darwin9)">;
21def triple_EQ : Joined<"-triple=">, Alias<triple>;
22def _triple : Separate<"-t">, Alias<triple>;
23
24//===----------------------------------------------------------------------===//
25// Header Search Options
26//===----------------------------------------------------------------------===//
27
28def I : JoinedOrSeparate<"-I">, MetaVarName<"<directory>">,
29  HelpText<"Add directory to include search path">;
30def _I : Separate<"include-path">, MetaVarName<"<directory>">, Alias<I>;
31
32//===----------------------------------------------------------------------===//
33// Frontend Options
34//===----------------------------------------------------------------------===//
35
36def o : Separate<"-o">, MetaVarName<"<directory>">,
37  HelpText<"Specify output directory">;
38
39def Output_Type_Group : OptionGroup<"<output type group>">;
40let Group = Output_Type_Group in {
41
42def emit_asm : Flag<"-emit-asm">,
43  HelpText<"Emit target assembly files">;
44def _emit_asm : Flag<"-S">, Alias<emit_asm>;
45def emit_llvm : Flag<"-emit-llvm">,
46  HelpText<"Build ASTs then convert to LLVM, emit .ll file">;
47def emit_bc : Flag<"-emit-bc">,
48  HelpText<"Build ASTs then convert to LLVM, emit .bc file">;
49def emit_nothing : Flag<"-emit-nothing">,
50  HelpText<"Build ASTs then convert to LLVM, but emit nothing">;
51}
52
53def allow_rs_prefix : Flag<"-allow-rs-prefix">,
54  HelpText<"Allow user-defined function prefixed with 'rs'">;
55
56def java_reflection_path_base : Separate<"-java-reflection-path-base">,
57  MetaVarName<"<directory>">,
58  HelpText<"Base directory for output reflected Java files">;
59def _java_reflection_path_base : Separate<"-p">,
60  Alias<java_reflection_path_base>;
61def java_reflection_package_name : Separate<"-java-reflection-package-name">,
62  HelpText<"Specify the package name that reflected Java files belong to">;
63def _java_reflection_package_name : Separate<"-j">,
64  Alias<java_reflection_package_name>;
65
66def bitcode_storage : Separate<"-bitcode-storage">,
67  MetaVarName<"<value>">, HelpText<"<value> should be 'ar' or 'jc'">;
68def _bitcode_storage : Separate<"-s">, Alias<bitcode_storage>;
69
70//===----------------------------------------------------------------------===//
71// Dependency Output Options
72//===----------------------------------------------------------------------===//
73
74def M_Group : OptionGroup<"M group>">;
75let Group = M_Group in {
76
77  def MD : Flag<"-MD">;
78
79  def M : Flag<"-M">;
80  def emit_dep : Flag<"-emit-dep">, Alias<M>;
81}
82
83def output_dep_dir : Separate<"-output-dep-dir">, MetaVarName<"<directory>">,
84  HelpText<"Specify output directory for dependencies output">;
85def _output_dep_dir : Separate<"-d">, Alias<output_dep_dir>;
86
87def additional_dep_target: Separate<"additional-dep-target">,
88  HelpText<"Additional targets to show up in dependencies output">;
89def _additional_dep_target : Separate<"-a">, Alias<additional_dep_target>;
90
91//===----------------------------------------------------------------------===//
92// Misc Options
93//===----------------------------------------------------------------------===//
94
95def help : Flag<"-help">,
96  HelpText<"Print this help text">;
97def _help : Flag<"--help">, Alias<help>;
98def __help : Flag<"-h">, Alias<help>;
99
100def version : Flag<"-version">,
101  HelpText<"Print the assembler version">;
102def _version : Flag<"--version">, Alias<version>;
103