13fdcc6fb12d7cf38d2a3111736f80f0dd55447b4Nick Lewycky//===--- DriverOptions.cpp - Driver Options Table -------------------------===// 227e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar// 327e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar// The LLVM Compiler Infrastructure 427e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar// 527e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar// This file is distributed under the University of Illinois Open Source 627e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar// License. See LICENSE.TXT for details. 727e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar// 827e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar//===----------------------------------------------------------------------===// 927e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar 1027e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar#include "clang/Driver/Options.h" 11b960232518a1cd79c5f64ab5ef54c88e34660191Craig Topper#include "llvm/ADT/STLExtras.h" 12b1e25a1bc03292dc538d336573e0be1490223171Reid Kleckner#include "llvm/Option/OptTable.h" 13b1e25a1bc03292dc538d336573e0be1490223171Reid Kleckner#include "llvm/Option/Option.h" 1427e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar 1527e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbarusing namespace clang::driver; 1627e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbarusing namespace clang::driver::options; 17b1e25a1bc03292dc538d336573e0be1490223171Reid Klecknerusing namespace llvm::opt; 1827e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar 19b17a2c119877b47cb3fb68c76a91dfe4d8cc6199Hans Wennborg#define PREFIX(NAME, VALUE) static const char *const NAME[] = VALUE; 20c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencer#include "clang/Driver/Options.inc" 21c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencer#undef PREFIX 22c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencer 2368f7a2426227476bcfa33ada70b708c82419dfdcNuno Lopesstatic const OptTable::Info InfoTable[] = { 24438292860a49f6998dff4db0b9ff04bcc0d5ae33Hans Wennborg#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \ 2527e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar HELPTEXT, METAVAR) \ 26c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencer { PREFIX, NAME, HELPTEXT, METAVAR, OPT_##ID, Option::KIND##Class, PARAM, \ 27438292860a49f6998dff4db0b9ff04bcc0d5ae33Hans Wennborg FLAGS, OPT_##GROUP, OPT_##ALIAS, ALIASARGS }, 2864bdce3f02091b0a4e1528d690495970c1249803Daniel Dunbar#include "clang/Driver/Options.inc" 29b17a2c119877b47cb3fb68c76a91dfe4d8cc6199Hans Wennborg#undef OPTION 3027e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar}; 3127e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar 3227e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbarnamespace { 3327e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar 3427e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbarclass DriverOptTable : public OptTable { 3527e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbarpublic: 3627e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar DriverOptTable() 37b960232518a1cd79c5f64ab5ef54c88e34660191Craig Topper : OptTable(InfoTable, llvm::array_lengthof(InfoTable)) {} 3827e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar}; 3927e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar 4027e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar} 4127e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar 4227e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel DunbarOptTable *clang::driver::createDriverOptTable() { 4327e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar return new DriverOptTable(); 4427e738d0d3f781672a5999d2a9e2827b00a97d0cDaniel Dunbar} 45