clang 24.0.0git
DependencyOutputOptions.h
Go to the documentation of this file.
1//===--- DependencyOutputOptions.h ------------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLVM_CLANG_FRONTEND_DEPENDENCYOUTPUTOPTIONS_H
10#define LLVM_CLANG_FRONTEND_DEPENDENCYOUTPUTOPTIONS_H
11
14#include <string>
15#include <vector>
16
17namespace clang {
18
19/// ShowIncludesDestination - Destination for /showIncludes output.
21
22/// ExtraDepKind - The kind of extra dependency file.
29
30/// ModuleFileDepsKind - Whether to include module file dependencies.
32 MFDK_None, ///< Do not include module file dependencies.
33 MFDK_All, ///< Include all module file dependencies.
34 MFDK_Direct, ///< Include only directly imported module file dependencies.
35};
36
37/// DependencyOutputOptions - Options for controlling the compiler dependency
38/// file generation.
40public:
41 LLVM_PREFERRED_TYPE(bool)
42 unsigned IncludeSystemHeaders : 1; ///< Include system header dependencies.
43 LLVM_PREFERRED_TYPE(bool)
44 unsigned ShowHeaderIncludes : 1; ///< Show header inclusions (-H).
45 LLVM_PREFERRED_TYPE(bool)
46 unsigned UsePhonyTargets : 1; ///< Include phony targets for each
47 /// dependency, which can avoid some 'make'
48 /// problems.
49 LLVM_PREFERRED_TYPE(bool)
50 unsigned AddMissingHeaderDeps : 1; ///< Add missing headers to dependency list
51 LLVM_PREFERRED_TYPE(ModuleFileDepsKind)
52 unsigned IncludeModuleFiles : 2; ///< Include module file dependencies.
53 LLVM_PREFERRED_TYPE(bool)
54 unsigned ShowSkippedHeaderIncludes : 1; ///< With ShowHeaderIncludes, show
55 /// also includes that were skipped
56 /// due to the "include guard
57 /// optimization" or #pragma once.
58
59 /// The format of header information.
61
62 /// Determine whether header information should be filtered.
64
65 /// Destination of cl.exe style /showIncludes info.
67
68 /// The format for the dependency file.
70
71 /// The file to write dependency output to.
72 std::string OutputFile;
73
74 /// The file to write header include output to. This is orthogonal to
75 /// ShowHeaderIncludes (-H) and will include headers mentioned in the
76 /// predefines buffer. If the output file is "-", output will be sent to
77 /// stderr.
79
80 /// A list of names to use as the targets in the dependency file; this list
81 /// must contain at least one entry.
82 std::vector<std::string> Targets;
83
84 /// A list of extra dependencies (filename and kind) to be used for every
85 /// target.
86 std::vector<std::pair<std::string, ExtraDepKind>> ExtraDeps;
87
88 /// The file to write GraphViz-formatted header dependencies to.
90
91 /// The directory to copy module dependencies to when collecting them.
93
94public:
100};
101
102} // end namespace clang
103
104#endif
Defines enums used when emitting included header information.
ShowIncludesDestination ShowIncludesDest
Destination of cl.exe style /showIncludes info.
std::string DOTOutputFile
The file to write GraphViz-formatted header dependencies to.
unsigned AddMissingHeaderDeps
Add missing headers to dependency list.
HeaderIncludeFormatKind HeaderIncludeFormat
The format of header information.
std::string ModuleDependencyOutputDir
The directory to copy module dependencies to when collecting them.
DependencyOutputFormat OutputFormat
The format for the dependency file.
std::string OutputFile
The file to write dependency output to.
unsigned UsePhonyTargets
Include phony targets for each dependency, which can avoid some 'make' problems.
HeaderIncludeFilteringKind HeaderIncludeFiltering
Determine whether header information should be filtered.
std::vector< std::string > Targets
A list of names to use as the targets in the dependency file; this list must contain at least one ent...
unsigned ShowSkippedHeaderIncludes
With ShowHeaderIncludes, show also includes that were skipped due to the "include guard optimization...
std::vector< std::pair< std::string, ExtraDepKind > > ExtraDeps
A list of extra dependencies (filename and kind) to be used for every target.
unsigned IncludeModuleFiles
Include module file dependencies.
std::string HeaderIncludeOutputFile
The file to write header include output to.
unsigned IncludeSystemHeaders
Include system header dependencies.
unsigned ShowHeaderIncludes
Show header inclusions (-H).
Top level wrappers for InstallAPI frontend operations.
HeaderIncludeFilteringKind
Whether header information is filtered or not.
ModuleFileDepsKind
ModuleFileDepsKind - Whether to include module file dependencies.
@ MFDK_Direct
Include only directly imported module file dependencies.
@ MFDK_None
Do not include module file dependencies.
@ MFDK_All
Include all module file dependencies.
ExtraDepKind
ExtraDepKind - The kind of extra dependency file.
DependencyOutputFormat
DependencyOutputFormat - Format for the compiler dependency file.
Definition MakeSupport.h:23
@ None
The alignment was not explicit in code.
Definition ASTContext.h:176
HeaderIncludeFormatKind
The format in which header information is emitted.
@ HIFMT_Textual
ShowIncludesDestination
ShowIncludesDestination - Destination for /showIncludes output.