blob: cb9d9d53e9085d7fb2a12c1d61d8830b482d7233 [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;
18class LangOptions;
Daniel Dunbarb52d2432009-11-11 06:10:03 +000019class PreprocessorOptions;
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000020class TargetInfo;
21
Daniel Dunbar56749082009-11-11 07:26:12 +000022enum LangKind {
23 langkind_unspecified,
24 langkind_c,
25 langkind_c_cpp,
26 langkind_asm_cpp,
27 langkind_cxx,
28 langkind_cxx_cpp,
29 langkind_objc,
30 langkind_objc_cpp,
31 langkind_objcxx,
32 langkind_objcxx_cpp,
33 langkind_ocl,
34 langkind_ast
35};
36
Daniel Dunbarb52d2432009-11-11 06:10:03 +000037// FIXME: This can be sunk into InitializeCompileOptions now that that happens
38// before language initialization?
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000039void ComputeFeatureMap(TargetInfo &Target, llvm::StringMap<bool> &Features);
40
41void InitializeCompileOptions(CompileOptions &Opts,
42 const llvm::StringMap<bool> &Features);
43
Daniel Dunbar56749082009-11-11 07:26:12 +000044void InitializeLangOptions(LangOptions &Options, LangKind LK,
45 TargetInfo &Target,
46 const CompileOptions &CompileOpts,
47 const llvm::StringMap<bool> &Features);
48
Daniel Dunbarb52d2432009-11-11 06:10:03 +000049void InitializePreprocessorOptions(PreprocessorOptions &Opts);
50
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000051} // end namespace clang
52
53#endif