blob: f3ac2eaab41596f2d6285828ada75d903a3ba18a [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 Dunbar26266882009-11-12 23:52:32 +000021class FrontendOptions;
Daniel Dunbarf7973292009-11-11 08:13:32 +000022class HeaderSearchOptions;
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000023class LangOptions;
Daniel Dunbarb52d2432009-11-11 06:10:03 +000024class PreprocessorOptions;
Daniel Dunbar29cf7462009-11-11 10:07:44 +000025class PreprocessorOutputOptions;
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000026class TargetInfo;
27
Daniel Dunbar56749082009-11-11 07:26:12 +000028enum LangKind {
29 langkind_unspecified,
30 langkind_c,
31 langkind_c_cpp,
32 langkind_asm_cpp,
33 langkind_cxx,
34 langkind_cxx_cpp,
35 langkind_objc,
36 langkind_objc_cpp,
37 langkind_objcxx,
38 langkind_objcxx_cpp,
39 langkind_ocl,
40 langkind_ast
41};
42
Daniel Dunbar339c1342009-11-11 08:13:55 +000043void InitializeAnalyzerOptions(AnalyzerOptions &Opts);
44
Daniel Dunbar0e0bae82009-11-11 21:43:12 +000045void InitializeDependencyOutputOptions(DependencyOutputOptions &Opts);
46
Daniel Dunbar0db4b762009-11-11 08:13:40 +000047void InitializeDiagnosticOptions(DiagnosticOptions &Opts);
48
Daniel Dunbar26266882009-11-12 23:52:32 +000049void InitializeFrontendOptions(FrontendOptions &Opts);
50
Chandler Carruth2811ccf2009-11-12 17:24:48 +000051void InitializeCodeGenOptions(CodeGenOptions &Opts,
Daniel Dunbar29a790b2009-11-11 09:38:56 +000052 const TargetInfo &Target);
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000053
Daniel Dunbarf7973292009-11-11 08:13:32 +000054void InitializeHeaderSearchOptions(HeaderSearchOptions &Opts,
55 llvm::StringRef BuiltinIncludePath,
56 bool Verbose,
57 const LangOptions &Lang);
58
Daniel Dunbar56749082009-11-11 07:26:12 +000059void InitializeLangOptions(LangOptions &Options, LangKind LK,
60 TargetInfo &Target,
Chandler Carruth2811ccf2009-11-12 17:24:48 +000061 const CodeGenOptions &CodeGenOpts);
Daniel Dunbar56749082009-11-11 07:26:12 +000062
Daniel Dunbarb52d2432009-11-11 06:10:03 +000063void InitializePreprocessorOptions(PreprocessorOptions &Opts);
64
Daniel Dunbar29cf7462009-11-11 10:07:44 +000065void InitializePreprocessorOutputOptions(PreprocessorOutputOptions &Opts);
66
Daniel Dunbar0498cfc2009-11-10 19:51:53 +000067} // end namespace clang
68
69#endif