blob: 88acb4263a5bc7410d244a55b9b1c688c0b9395c [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 Dunbar29cf7462009-11-11 10:07:44 +000023class PreprocessorOutputOptions;
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000024class TargetInfo;
25
Daniel Dunbar56749082009-11-11 07:26:12 +000026enum LangKind {
27 langkind_unspecified,
28 langkind_c,
29 langkind_c_cpp,
30 langkind_asm_cpp,
31 langkind_cxx,
32 langkind_cxx_cpp,
33 langkind_objc,
34 langkind_objc_cpp,
35 langkind_objcxx,
36 langkind_objcxx_cpp,
37 langkind_ocl,
38 langkind_ast
39};
40
Daniel Dunbar339c1342009-11-11 08:13:55 +000041void InitializeAnalyzerOptions(AnalyzerOptions &Opts);
42
Daniel Dunbar0db4b762009-11-11 08:13:40 +000043void InitializeDiagnosticOptions(DiagnosticOptions &Opts);
44
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000045void InitializeCompileOptions(CompileOptions &Opts,
Daniel Dunbar29a790b2009-11-11 09:38:56 +000046 const TargetInfo &Target);
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000047
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,
Daniel Dunbar29a790b2009-11-11 09:38:56 +000055 const CompileOptions &CompileOpts);
Daniel Dunbar56749082009-11-11 07:26:12 +000056
Daniel Dunbarb52d2432009-11-11 06:10:03 +000057void InitializePreprocessorOptions(PreprocessorOptions &Opts);
58
Daniel Dunbar29cf7462009-11-11 10:07:44 +000059void InitializePreprocessorOutputOptions(PreprocessorOutputOptions &Opts);
60
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000061} // end namespace clang
62
63#endif