blob: 6d1447d991f688166e16b6815e486b5614e0fa42 [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
Daniel Dunbar29a790b2009-11-11 09:38:56 +000013#include "llvm/ADT/StringRef.h"
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000014
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 Dunbar0db4b762009-11-11 08:13:40 +000042void InitializeDiagnosticOptions(DiagnosticOptions &Opts);
43
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000044void InitializeCompileOptions(CompileOptions &Opts,
Daniel Dunbar29a790b2009-11-11 09:38:56 +000045 const TargetInfo &Target);
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000046
Daniel Dunbarf7973292009-11-11 08:13:32 +000047void InitializeHeaderSearchOptions(HeaderSearchOptions &Opts,
48 llvm::StringRef BuiltinIncludePath,
49 bool Verbose,
50 const LangOptions &Lang);
51
Daniel Dunbar56749082009-11-11 07:26:12 +000052void InitializeLangOptions(LangOptions &Options, LangKind LK,
53 TargetInfo &Target,
Daniel Dunbar29a790b2009-11-11 09:38:56 +000054 const CompileOptions &CompileOpts);
Daniel Dunbar56749082009-11-11 07:26:12 +000055
Daniel Dunbarb52d2432009-11-11 06:10:03 +000056void InitializePreprocessorOptions(PreprocessorOptions &Opts);
57
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000058} // end namespace clang
59
60#endif