1193326Sed//===--- Options.h - Option info & table ------------------------*- C++ -*-===//
2193326Sed//
3193326Sed//                     The LLVM Compiler Infrastructure
4193326Sed//
5193326Sed// This file is distributed under the University of Illinois Open Source
6193326Sed// License. See LICENSE.TXT for details.
7193326Sed//
8193326Sed//===----------------------------------------------------------------------===//
9193326Sed
10199512Srdivacky#ifndef CLANG_DRIVER_OPTIONS_H
11199512Srdivacky#define CLANG_DRIVER_OPTIONS_H
12193326Sed
13263508Sdimnamespace llvm {
14263508Sdimnamespace opt {
15263508Sdimclass OptTable;
16263508Sdim}
17263508Sdim}
18263508Sdim
19193326Sednamespace clang {
20193326Sednamespace driver {
21199512Srdivacky
22193326Sednamespace options {
23263508Sdim/// Flags specifically for clang options.  Must not overlap with
24263508Sdim/// llvm::opt::DriverFlag.
25263508Sdimenum ClangFlags {
26263508Sdim  DriverOption = (1 << 4),
27263508Sdim  LinkerInput = (1 << 5),
28263508Sdim  NoArgumentUnused = (1 << 6),
29263508Sdim  Unsupported = (1 << 7),
30263508Sdim  CoreOption = (1 << 8),
31263508Sdim  CLOption = (1 << 9),
32263508Sdim  CC1Option = (1 << 10),
33263508Sdim  NoDriverOption = (1 << 11)
34263508Sdim};
35263508Sdim
36263508Sdimenum ID {
37193326Sed    OPT_INVALID = 0, // This is not an option ID.
38263508Sdim#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \
39193326Sed               HELPTEXT, METAVAR) OPT_##ID,
40199512Srdivacky#include "clang/Driver/Options.inc"
41193326Sed    LastOption
42193326Sed#undef OPTION
43193326Sed  };
44193326Sed}
45198092Srdivacky
46263508Sdimllvm::opt::OptTable *createDriverOptTable();
47193326Sed}
48193326Sed}
49193326Sed
50193326Sed#endif
51