mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
ae24723f0f
Allow opting out from preprocessing with a command line argument. Update tests to pass -no-preprocess to make it not try to use clang (which isn't a build level dependency of llvm-rc), but add a test that does preprocessing under clang/test/Preprocessor. Update a few options to allow them both joined (as -DFOO) and separate (-D BR), as rc.exe allows both forms of them. With the verbose flag set, this prints the preprocessing command used (which differs from what rc.exe does). Tests under llvm/test/tools/llvm-rc only test constructing the preprocessor commands, while tests under clang/test/Preprocessor test actually running the preprocessor. Differential Revision: https://reviews.llvm.org/D100755
66 lines
2.1 KiB
TableGen
66 lines
2.1 KiB
TableGen
include "llvm/Option/OptParser.td"
|
|
|
|
// All the switches can be preceded by either '/' or '-'.
|
|
// These options seem to be important for the tool
|
|
// and should be implemented.
|
|
|
|
class S<string name, string help> :
|
|
Separate<["/", "-"], name>, HelpText<help>;
|
|
|
|
class JS<string name, string help> :
|
|
JoinedOrSeparate<["/", "-"], name>, HelpText<help>;
|
|
|
|
class F<string name, string help> : Flag<["/", "-"], name>, HelpText<help>;
|
|
|
|
class F_nodoc<string name> : Flag<["/", "-"], name>;
|
|
class S_nodoc<string name> : Separate<["/", "-"], name>;
|
|
|
|
def fileout : JS<"FO", "Change the output file location.">;
|
|
|
|
def define : JS<"D", "Define a symbol for the C preprocessor.">;
|
|
def undef : JS<"U", "Undefine a symbol for the C preprocessor.">;
|
|
|
|
def lang_id : JS<"L", "Set the default language identifier.">;
|
|
def lang_name : S<"LN", "Set the default language name.">;
|
|
|
|
def includepath : JS<"I", "Add an include path.">;
|
|
def noinclude : F<"X", "Ignore 'include' variable.">;
|
|
|
|
def add_null : F<"N", "Null-terminate all strings in the string table.">;
|
|
|
|
def dupid_nowarn : F<"Y", "Suppress warnings on duplicate resource IDs.">;
|
|
|
|
def verbose : F<"V", "Be verbose.">;
|
|
def help : F<"?", "Display this help and exit.">;
|
|
def h : F<"H", "Display this help and exit.">, Alias<help>;
|
|
|
|
def codepage : JS<"C", "Set the codepage used for input strings.">;
|
|
|
|
// llvm-rc specific options:
|
|
|
|
def dry_run : F<"dry-run", "Don't compile the input; only try to parse it.">;
|
|
|
|
def no_preprocess : F<"no-preprocess", "Don't try to preprocess the input file.">;
|
|
|
|
// Print (but do not run) the commands to run for preprocessing
|
|
def _HASH_HASH_HASH : F_nodoc<"###">;
|
|
|
|
// Unused switches (at least for now). These will stay unimplemented
|
|
// in an early stage of development and can be ignored. However, we need to
|
|
// parse them in order to preserve the compatibility with the original tool.
|
|
|
|
def nologo : F_nodoc<"NOLOGO">;
|
|
def r : F_nodoc<"R">;
|
|
def sl : F_nodoc<"SL">;
|
|
|
|
// (Codepages support.)
|
|
def w : F_nodoc<"W">;
|
|
|
|
// (Support of MUI and similar.)
|
|
def fm : S_nodoc<"FM">;
|
|
def q : S_nodoc<"Q">;
|
|
def g : F_nodoc<"G">;
|
|
def gn : F_nodoc<"GN">;
|
|
def g1 : F_nodoc<"G1">;
|
|
def g2 : F_nodoc<"G2">;
|