blob: aacf0a3def835a3aadf5d222c2a3beb45725eb7d [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
Daniel Dunbar339c1342009-11-11 08:13:55 +000017class AnalyzerOptions;
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000018class CompileOptions;
Daniel Dunbar0db4b762009-11-11 08:13:40 +000019class DiagnosticOptions;
Daniel Dunbarf7973292009-11-11 08:13:32 +000020class HeaderSearchOptions;
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000021class LangOptions;
Daniel Dunbarb52d2432009-11-11 06:10:03 +000022class PreprocessorOptions;
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000023class TargetInfo;
24
Daniel Dunbar56749082009-11-11 07:26:12 +000025enum LangKind {
26 langkind_unspecified,
27 langkind_c,
28 langkind_c_cpp,
29 langkind_asm_cpp,
30 langkind_cxx,
31 langkind_cxx_cpp,
32 langkind_objc,
33 langkind_objc_cpp,
34 langkind_objcxx,
35 langkind_objcxx_cpp,
36 langkind_ocl,
37 langkind_ast
38};
39
Daniel Dunbar339c1342009-11-11 08:13:55 +000040void InitializeAnalyzerOptions(AnalyzerOptions &Opts);
41
Daniel Dunbarb52d2432009-11-11 06:10:03 +000042// FIXME: This can be sunk into InitializeCompileOptions now that that happens
43// before language initialization?
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000044void ComputeFeatureMap(TargetInfo &Target, llvm::StringMap<bool> &Features);
45
Daniel Dunbar0db4b762009-11-11 08:13:40 +000046void InitializeDiagnosticOptions(DiagnosticOptions &Opts);
47
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000048void InitializeCompileOptions(CompileOptions &Opts,
49 const llvm::StringMap<bool> &Features);
50
Daniel Dunbarf7973292009-11-11 08:13:32 +000051void InitializeHeaderSearchOptions(HeaderSearchOptions &Opts,
52 llvm::StringRef BuiltinIncludePath,
53 bool Verbose,
54 const LangOptions &Lang);
55
Daniel Dunbar56749082009-11-11 07:26:12 +000056void InitializeLangOptions(LangOptions &Options, LangKind LK,
57 TargetInfo &Target,
58 const CompileOptions &CompileOpts,
59 const llvm::StringMap<bool> &Features);
60
Daniel Dunbarb52d2432009-11-11 06:10:03 +000061void InitializePreprocessorOptions(PreprocessorOptions &Opts);
62
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000063} // end namespace clang
64
65#endif