blob: 0bbb50264507e16f7c1cf76928d33d7a63d52b69 [file] [log] [blame]
Daniel Dunbar0498cfc2009-11-10 19:51:53 +00001//===-- Options.h - clang-cc Option Handling --------------------*- 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_CLANGCC_OPTIONS_H
11#define LLVM_CLANGCC_OPTIONS_H
12
13#include "llvm/ADT/StringMap.h"
14
15namespace clang {
16
17class CompileOptions;
Daniel Dunbar0db4b762009-11-11 08:13:40 +000018class DiagnosticOptions;
Daniel Dunbarf7973292009-11-11 08:13:32 +000019class HeaderSearchOptions;
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000020class LangOptions;
Daniel Dunbarb52d2432009-11-11 06:10:03 +000021class PreprocessorOptions;
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000022class TargetInfo;
23
Daniel Dunbar56749082009-11-11 07:26:12 +000024enum LangKind {
25 langkind_unspecified,
26 langkind_c,
27 langkind_c_cpp,
28 langkind_asm_cpp,
29 langkind_cxx,
30 langkind_cxx_cpp,
31 langkind_objc,
32 langkind_objc_cpp,
33 langkind_objcxx,
34 langkind_objcxx_cpp,
35 langkind_ocl,
36 langkind_ast
37};
38
Daniel Dunbarb52d2432009-11-11 06:10:03 +000039// FIXME: This can be sunk into InitializeCompileOptions now that that happens
40// before language initialization?
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000041void ComputeFeatureMap(TargetInfo &Target, llvm::StringMap<bool> &Features);
42
Daniel Dunbar0db4b762009-11-11 08:13:40 +000043void InitializeDiagnosticOptions(DiagnosticOptions &Opts);
44
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000045void InitializeCompileOptions(CompileOptions &Opts,
46 const llvm::StringMap<bool> &Features);
47
Daniel Dunbarf7973292009-11-11 08:13:32 +000048void InitializeHeaderSearchOptions(HeaderSearchOptions &Opts,
49 llvm::StringRef BuiltinIncludePath,
50 bool Verbose,
51 const LangOptions &Lang);
52
Daniel Dunbar56749082009-11-11 07:26:12 +000053void InitializeLangOptions(LangOptions &Options, LangKind LK,
54 TargetInfo &Target,
55 const CompileOptions &CompileOpts,
56 const llvm::StringMap<bool> &Features);
57
Daniel Dunbarb52d2432009-11-11 06:10:03 +000058void InitializePreprocessorOptions(PreprocessorOptions &Opts);
59
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000060} // end namespace clang
61
62#endif