Home | History | Annotate | Download | only in Driver
      1 //===--- Options.h - Option info & table ------------------------*- C++ -*-===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 #ifndef LLVM_CLANG_DRIVER_OPTIONS_H
     11 #define LLVM_CLANG_DRIVER_OPTIONS_H
     12 
     13 #include <memory>
     14 
     15 namespace llvm {
     16 namespace opt {
     17 class OptTable;
     18 }
     19 }
     20 
     21 namespace clang {
     22 namespace driver {
     23 
     24 namespace options {
     25 /// Flags specifically for clang options.  Must not overlap with
     26 /// llvm::opt::DriverFlag.
     27 enum ClangFlags {
     28   DriverOption = (1 << 4),
     29   LinkerInput = (1 << 5),
     30   NoArgumentUnused = (1 << 6),
     31   Unsupported = (1 << 7),
     32   CoreOption = (1 << 8),
     33   CLOption = (1 << 9),
     34   CC1Option = (1 << 10),
     35   CC1AsOption = (1 << 11),
     36   NoDriverOption = (1 << 12),
     37   Ignored = (1 << 13)
     38 };
     39 
     40 enum ID {
     41     OPT_INVALID = 0, // This is not an option ID.
     42 #define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \
     43                HELPTEXT, METAVAR) OPT_##ID,
     44 #include "clang/Driver/Options.inc"
     45     LastOption
     46 #undef OPTION
     47   };
     48 }
     49 
     50 std::unique_ptr<llvm::opt::OptTable> createDriverOptTable();
     51 }
     52 }
     53 
     54 #endif
     55