blob: ae446a7b6344a92c87e1bbf7f86c7a72a8147b1c [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;
Chandler Carruth2811ccf2009-11-12 17:24:48 +000018class CodeGenOptions;
Daniel Dunbar0e0bae82009-11-11 21:43:12 +000019class DependencyOutputOptions;
Daniel Dunbar0db4b762009-11-11 08:13:40 +000020class DiagnosticOptions;
Daniel Dunbarf7973292009-11-11 08:13:32 +000021class HeaderSearchOptions;
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000022class LangOptions;
Daniel Dunbarb52d2432009-11-11 06:10:03 +000023class PreprocessorOptions;
Daniel Dunbar29cf7462009-11-11 10:07:44 +000024class PreprocessorOutputOptions;
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000025class TargetInfo;
26
Daniel Dunbar56749082009-11-11 07:26:12 +000027enum LangKind {
28 langkind_unspecified,
29 langkind_c,
30 langkind_c_cpp,
31 langkind_asm_cpp,
32 langkind_cxx,
33 langkind_cxx_cpp,
34 langkind_objc,
35 langkind_objc_cpp,
36 langkind_objcxx,
37 langkind_objcxx_cpp,
38 langkind_ocl,
39 langkind_ast
40};
41
Daniel Dunbar339c1342009-11-11 08:13:55 +000042void InitializeAnalyzerOptions(AnalyzerOptions &Opts);
43
Daniel Dunbar0e0bae82009-11-11 21:43:12 +000044void InitializeDependencyOutputOptions(DependencyOutputOptions &Opts);
45
Daniel Dunbar0db4b762009-11-11 08:13:40 +000046void InitializeDiagnosticOptions(DiagnosticOptions &Opts);
47
Chandler Carruth2811ccf2009-11-12 17:24:48 +000048void InitializeCodeGenOptions(CodeGenOptions &Opts,
Daniel Dunbar29a790b2009-11-11 09:38:56 +000049 const TargetInfo &Target);
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000050
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,
Chandler Carruth2811ccf2009-11-12 17:24:48 +000058 const CodeGenOptions &CodeGenOpts);
Daniel Dunbar56749082009-11-11 07:26:12 +000059
Daniel Dunbarb52d2432009-11-11 06:10:03 +000060void InitializePreprocessorOptions(PreprocessorOptions &Opts);
61
Daniel Dunbar29cf7462009-11-11 10:07:44 +000062void InitializePreprocessorOutputOptions(PreprocessorOutputOptions &Opts);
63
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000064} // end namespace clang
65
66#endif