blob: 760da4675d81e4fcaae9fef60f7f938228e28408 [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 Dunbarf7973292009-11-11 08:13:32 +000018class HeaderSearchOptions;
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000019class LangOptions;
Daniel Dunbarb52d2432009-11-11 06:10:03 +000020class PreprocessorOptions;
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000021class TargetInfo;
22
Daniel Dunbar56749082009-11-11 07:26:12 +000023enum LangKind {
24 langkind_unspecified,
25 langkind_c,
26 langkind_c_cpp,
27 langkind_asm_cpp,
28 langkind_cxx,
29 langkind_cxx_cpp,
30 langkind_objc,
31 langkind_objc_cpp,
32 langkind_objcxx,
33 langkind_objcxx_cpp,
34 langkind_ocl,
35 langkind_ast
36};
37
Daniel Dunbarb52d2432009-11-11 06:10:03 +000038// FIXME: This can be sunk into InitializeCompileOptions now that that happens
39// before language initialization?
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000040void ComputeFeatureMap(TargetInfo &Target, llvm::StringMap<bool> &Features);
41
42void InitializeCompileOptions(CompileOptions &Opts,
43 const llvm::StringMap<bool> &Features);
44
Daniel Dunbarf7973292009-11-11 08:13:32 +000045void InitializeHeaderSearchOptions(HeaderSearchOptions &Opts,
46 llvm::StringRef BuiltinIncludePath,
47 bool Verbose,
48 const LangOptions &Lang);
49
Daniel Dunbar56749082009-11-11 07:26:12 +000050void InitializeLangOptions(LangOptions &Options, LangKind LK,
51 TargetInfo &Target,
52 const CompileOptions &CompileOpts,
53 const llvm::StringMap<bool> &Features);
54
Daniel Dunbarb52d2432009-11-11 06:10:03 +000055void InitializePreprocessorOptions(PreprocessorOptions &Opts);
56
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000057} // end namespace clang
58
59#endif