• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("//cc/toolchains:feature_set.bzl", "cc_feature_set")
2load("//cc/toolchains/impl:external_feature.bzl", "cc_external_feature")
3
4package(default_visibility = ["//visibility:public"])
5
6# See https://bazel.build/docs/cc-toolchain-config-reference#wellknown-features.
7
8cc_external_feature(
9    name = "legacy_compile_flags",
10    feature_name = "legacy_compile_flags",
11    overridable = True,
12)
13
14cc_external_feature(
15    name = "default_compile_flags",
16    feature_name = "default_compile_flags",
17    overridable = True,
18)
19
20cc_external_feature(
21    name = "dependency_file",
22    feature_name = "dependency_file",
23    overridable = True,
24)
25
26cc_external_feature(
27    name = "pic",
28    feature_name = "pic",
29    overridable = True,
30)
31
32cc_external_feature(
33    name = "preprocessor_defines",
34    feature_name = "preprocessor_defines",
35    overridable = True,
36)
37
38cc_external_feature(
39    name = "includes",
40    feature_name = "includes",
41    overridable = True,
42)
43
44cc_external_feature(
45    name = "include_paths",
46    feature_name = "include_paths",
47    overridable = True,
48)
49
50cc_external_feature(
51    name = "fdo_instrument",
52    feature_name = "fdo_instrument",
53    overridable = True,
54)
55
56cc_external_feature(
57    name = "fdo_optimize",
58    feature_name = "fdo_optimize",
59    overridable = True,
60)
61
62cc_external_feature(
63    name = "cs_fdo_instrument",
64    feature_name = "cs_fdo_instrument",
65    overridable = True,
66)
67
68cc_external_feature(
69    name = "cs_fdo_optimize",
70    feature_name = "cs_fdo_optimize",
71    overridable = True,
72)
73
74cc_external_feature(
75    name = "fdo_prefetch_hints",
76    feature_name = "fdo_prefetch_hints",
77    overridable = True,
78)
79
80cc_external_feature(
81    name = "autofdo",
82    feature_name = "autofdo",
83    overridable = True,
84)
85
86cc_external_feature(
87    name = "build_interface_libraries",
88    feature_name = "build_interface_libraries",
89    overridable = True,
90)
91
92cc_external_feature(
93    name = "dynamic_library_linker_tool",
94    feature_name = "dynamic_library_linker_tool",
95    overridable = True,
96)
97
98cc_external_feature(
99    name = "shared_flag",
100    deprecation = "Use //cc/toolchains/args/shared_flag instead",
101    feature_name = "shared_flag",
102    overridable = True,
103)
104
105cc_external_feature(
106    name = "linkstamps",
107    feature_name = "linkstamps",
108    overridable = True,
109)
110
111cc_external_feature(
112    name = "output_execpath_flags",
113    feature_name = "output_execpath_flags",
114    overridable = True,
115)
116
117cc_external_feature(
118    name = "runtime_library_search_directories",
119    deprecation = "Use //cc/toolchains/args/runtime_library_search_directories instead",
120    feature_name = "runtime_library_search_directories",
121    overridable = True,
122)
123
124cc_external_feature(
125    name = "library_search_directories",
126    feature_name = "library_search_directories",
127    overridable = True,
128)
129
130cc_external_feature(
131    name = "archiver_flags",
132    deprecation = "Use //cc/toolchains/args/archiver_flags instead",
133    feature_name = "archiver_flags",
134    overridable = True,
135)
136
137cc_external_feature(
138    name = "libraries_to_link",
139    deprecation = "Use //cc/toolchains/args/libraries_to_link instead",
140    feature_name = "libraries_to_link",
141    overridable = True,
142)
143
144cc_external_feature(
145    name = "force_pic_flags",
146    deprecation = "Use //cc/toolchains/args/force_pic_flags instead",
147    feature_name = "force_pic_flags",
148    overridable = True,
149)
150
151cc_external_feature(
152    name = "user_link_flags",
153    feature_name = "user_link_flags",
154    overridable = True,
155)
156
157cc_external_feature(
158    name = "legacy_link_flags",
159    feature_name = "legacy_link_flags",
160    overridable = True,
161)
162
163cc_external_feature(
164    name = "static_libgcc",
165    feature_name = "static_libgcc",
166    overridable = True,
167)
168
169cc_external_feature(
170    name = "fission_support",
171    feature_name = "fission_support",
172    overridable = True,
173)
174
175cc_external_feature(
176    name = "strip_debug_symbols",
177    feature_name = "strip_debug_symbols",
178    overridable = True,
179)
180
181cc_external_feature(
182    name = "coverage",
183    feature_name = "coverage",
184    overridable = True,
185)
186
187cc_external_feature(
188    name = "llvm_coverage_map_format",
189    feature_name = "llvm_coverage_map_format",
190    overridable = True,
191)
192
193cc_external_feature(
194    name = "gcc_coverage_map_format",
195    feature_name = "gcc_coverage_map_format",
196    overridable = True,
197)
198
199cc_external_feature(
200    name = "fully_static_link",
201    feature_name = "fully_static_link",
202    overridable = True,
203)
204
205cc_external_feature(
206    name = "user_compile_flags",
207    feature_name = "user_compile_flags",
208    overridable = True,
209)
210
211# Instead of the "sysroot" legacy flag, use the cc_sysroot macro in
212# //cc/toolchains/args:sysroot.bzl
213
214cc_external_feature(
215    name = "unfiltered_compile_flags",
216    feature_name = "unfiltered_compile_flags",
217    overridable = True,
218)
219
220cc_external_feature(
221    name = "linker_param_file",
222    deprecation = "Use //cc/toolchains/args/linker_param_file instead",
223    feature_name = "linker_param_file",
224    overridable = True,
225)
226
227cc_external_feature(
228    name = "compiler_input_flags",
229    feature_name = "compiler_input_flags",
230    overridable = True,
231)
232
233cc_external_feature(
234    name = "compiler_output_flags",
235    feature_name = "compiler_output_flags",
236    overridable = True,
237)
238
239cc_feature_set(
240    name = "all_legacy_builtin_features",
241    all_of = [
242        ":legacy_compile_flags",
243        ":default_compile_flags",
244        ":dependency_file",
245        ":pic",
246        ":preprocessor_defines",
247        ":includes",
248        ":include_paths",
249        ":fdo_instrument",
250        ":fdo_optimize",
251        ":cs_fdo_instrument",
252        ":cs_fdo_optimize",
253        ":fdo_prefetch_hints",
254        ":autofdo",
255        ":build_interface_libraries",
256        ":dynamic_library_linker_tool",
257        ":shared_flag",
258        ":linkstamps",
259        ":output_execpath_flags",
260        ":runtime_library_search_directories",
261        ":library_search_directories",
262        ":archiver_flags",
263        ":libraries_to_link",
264        ":force_pic_flags",
265        ":user_link_flags",
266        ":legacy_link_flags",
267        ":static_libgcc",
268        ":fission_support",
269        ":strip_debug_symbols",
270        ":coverage",
271        ":llvm_coverage_map_format",
272        ":gcc_coverage_map_format",
273        ":fully_static_link",
274        ":user_compile_flags",
275        ":unfiltered_compile_flags",
276        ":linker_param_file",
277        ":compiler_input_flags",
278        ":compiler_output_flags",
279    ],
280    visibility = ["//cc/toolchains/features:__pkg__"],
281)
282