xref: /llvm-project/llvm/utils/gn/secondary/clang/lib/Headers/BUILD.gn (revision 0192ae5ce047424caf4ff51c8ce813a8cdf298ed)
1import("//clang/resource_dir.gni")
2import("//clang/utils/TableGen/clang_tablegen.gni")
3
4# Generate arm_neon.h
5clang_tablegen("arm_neon") {
6  args = [ "-gen-arm-neon" ]
7  td_file = "//clang/include/clang/Basic/arm_neon.td"
8  output_name = "arm_neon.h"
9}
10
11# Generate arm_fp16.h
12clang_tablegen("arm_fp16") {
13  args = [ "-gen-arm-fp16" ]
14  td_file = "//clang/include/clang/Basic/arm_fp16.td"
15  output_name = "arm_fp16.h"
16}
17
18# Generate arm_sve.h
19clang_tablegen("arm_sve") {
20  args = [ "-gen-arm-sve-header" ]
21  td_file = "//clang/include/clang/Basic/arm_sve.td"
22  output_name = "arm_sve.h"
23}
24
25# Generate arm_sme.h
26clang_tablegen("arm_sme") {
27  args = [ "-gen-arm-sme-header" ]
28  td_file = "//clang/include/clang/Basic/arm_sme.td"
29  output_name = "arm_sme.h"
30}
31
32# Generate arm_bf16.h
33clang_tablegen("arm_bf16") {
34  args = [ "-gen-arm-bf16" ]
35  td_file = "//clang/include/clang/Basic/arm_bf16.td"
36  output_name = "arm_bf16.h"
37}
38
39# Generate arm_mve.h
40clang_tablegen("arm_mve") {
41  args = [ "-gen-arm-mve-header" ]
42  td_file = "//clang/include/clang/Basic/arm_mve.td"
43  output_name = "arm_mve.h"
44}
45
46# Generate arm_cde.h
47clang_tablegen("arm_cde") {
48  args = [ "-gen-arm-cde-header" ]
49  td_file = "//clang/include/clang/Basic/arm_cde.td"
50  output_name = "arm_cde.h"
51}
52
53# Generate arm__vector_types.h
54clang_tablegen("arm_vector_types") {
55  args = [ "-gen-arm-vector-type" ]
56  td_file = "//clang/include/clang/Basic/arm_neon.td"
57  output_name = "arm_vector_types.h"
58}
59
60# Generate riscv_vector.h
61clang_tablegen("riscv_vector") {
62  args = [ "-gen-riscv-vector-header" ]
63  td_file = "//clang/include/clang/Basic/riscv_vector.td"
64  output_name = "riscv_vector.h"
65}
66
67copy("tablegen_headers") {
68  visibility = [ ":Headers" ]
69  deps = [
70    ":arm_bf16",
71    ":arm_cde",
72    ":arm_fp16",
73    ":arm_mve",
74    ":arm_neon",
75    ":arm_sme",
76    ":arm_sve",
77    ":arm_vector_types",
78    ":riscv_vector",
79  ]
80  sources = []
81  foreach(dep, deps) {
82    sources += get_target_outputs(dep)
83  }
84  outputs = [ "$clang_resource_dir/include/{{source_file_part}}" ]
85}
86
87copy("Headers") {
88  deps = [ ":tablegen_headers" ]
89
90  sources = [
91    "__clang_cuda_builtin_vars.h",
92    "__clang_cuda_cmath.h",
93    "__clang_cuda_complex_builtins.h",
94    "__clang_cuda_device_functions.h",
95    "__clang_cuda_intrinsics.h",
96    "__clang_cuda_libdevice_declares.h",
97    "__clang_cuda_math.h",
98    "__clang_cuda_math_forward_declares.h",
99    "__clang_cuda_runtime_wrapper.h",
100    "__clang_cuda_texture_intrinsics.h",
101    "__clang_hip_cmath.h",
102    "__clang_hip_libdevice_declares.h",
103    "__clang_hip_math.h",
104    "__clang_hip_runtime_wrapper.h",
105    "__clang_hip_stdlib.h",
106    "__stdarg___gnuc_va_list.h",
107    "__stdarg___va_copy.h",
108    "__stdarg_header_macro.h",
109    "__stdarg_va_arg.h",
110    "__stdarg_va_copy.h",
111    "__stdarg_va_list.h",
112    "__stddef_header_macro.h",
113    "__stddef_max_align_t.h",
114    "__stddef_null.h",
115    "__stddef_nullptr_t.h",
116    "__stddef_offsetof.h",
117    "__stddef_ptrdiff_t.h",
118    "__stddef_rsize_t.h",
119    "__stddef_size_t.h",
120    "__stddef_unreachable.h",
121    "__stddef_wchar_t.h",
122    "__stddef_wint_t.h",
123    "__wmmintrin_aes.h",
124    "__wmmintrin_pclmul.h",
125    "adcintrin.h",
126    "adxintrin.h",
127    "altivec.h",
128    "amdgpuintrin.h",
129    "ammintrin.h",
130    "amxavx512intrin.h",
131    "amxbf16transposeintrin.h",
132    "amxcomplexintrin.h",
133    "amxcomplextransposeintrin.h",
134    "amxfp16intrin.h",
135    "amxfp16transposeintrin.h",
136    "amxfp8intrin.h",
137    "amxintrin.h",
138    "amxmovrsintrin.h",
139    "amxmovrstransposeintrin.h",
140    "amxtf32intrin.h",
141    "amxtf32transposeintrin.h",
142    "amxtransposeintrin.h",
143    "arm64intr.h",
144    "arm_acle.h",
145    "arm_cmse.h",
146    "arm_neon_sve_bridge.h",
147    "armintr.h",
148    "avx10_2_512bf16intrin.h",
149    "avx10_2_512convertintrin.h",
150    "avx10_2_512minmaxintrin.h",
151    "avx10_2_512niintrin.h",
152    "avx10_2_512satcvtdsintrin.h",
153    "avx10_2_512satcvtintrin.h",
154    "avx10_2bf16intrin.h",
155    "avx10_2convertintrin.h",
156    "avx10_2copyintrin.h",
157    "avx10_2minmaxintrin.h",
158    "avx10_2niintrin.h",
159    "avx10_2satcvtdsintrin.h",
160    "avx10_2satcvtintrin.h",
161    "avx2intrin.h",
162    "avx512bf16intrin.h",
163    "avx512bitalgintrin.h",
164    "avx512bwintrin.h",
165    "avx512cdintrin.h",
166    "avx512dqintrin.h",
167    "avx512fintrin.h",
168    "avx512fp16intrin.h",
169    "avx512ifmaintrin.h",
170    "avx512ifmavlintrin.h",
171    "avx512vbmi2intrin.h",
172    "avx512vbmiintrin.h",
173    "avx512vbmivlintrin.h",
174    "avx512vlbf16intrin.h",
175    "avx512vlbitalgintrin.h",
176    "avx512vlbwintrin.h",
177    "avx512vlcdintrin.h",
178    "avx512vldqintrin.h",
179    "avx512vlfp16intrin.h",
180    "avx512vlintrin.h",
181    "avx512vlvbmi2intrin.h",
182    "avx512vlvnniintrin.h",
183    "avx512vlvp2intersectintrin.h",
184    "avx512vnniintrin.h",
185    "avx512vp2intersectintrin.h",
186    "avx512vpopcntdqintrin.h",
187    "avx512vpopcntdqvlintrin.h",
188    "avxifmaintrin.h",
189    "avxintrin.h",
190    "avxneconvertintrin.h",
191    "avxvnniint16intrin.h",
192    "avxvnniint8intrin.h",
193    "avxvnniintrin.h",
194    "bmi2intrin.h",
195    "bmiintrin.h",
196    "builtins.h",
197    "cet.h",
198    "cetintrin.h",
199    "cldemoteintrin.h",
200    "clflushoptintrin.h",
201    "clwbintrin.h",
202    "clzerointrin.h",
203    "cmpccxaddintrin.h",
204    "cpuid.h",
205    "crc32intrin.h",
206    "cuda_wrappers/algorithm",
207    "cuda_wrappers/bits/basic_string.h",
208    "cuda_wrappers/bits/shared_ptr_base.h",
209    "cuda_wrappers/complex",
210    "cuda_wrappers/new",
211    "emmintrin.h",
212    "enqcmdintrin.h",
213    "f16cintrin.h",
214    "float.h",
215    "fma4intrin.h",
216    "fmaintrin.h",
217    "fxsrintrin.h",
218    "gfniintrin.h",
219    "gpuintrin.h",
220    "hexagon_circ_brev_intrinsics.h",
221    "hexagon_protos.h",
222    "hexagon_types.h",
223    "hlsl.h",
224    "hlsl/hlsl_basic_types.h",
225    "hlsl/hlsl_detail.h",
226    "hlsl/hlsl_intrinsics.h",
227    "hresetintrin.h",
228    "htmintrin.h",
229    "htmxlintrin.h",
230    "hvx_hexagon_protos.h",
231    "ia32intrin.h",
232    "immintrin.h",
233    "intrin.h",
234    "intrin0.h",
235    "inttypes.h",
236    "invpcidintrin.h",
237    "iso646.h",
238    "keylockerintrin.h",
239    "larchintrin.h",
240    "lasxintrin.h",
241    "limits.h",
242    "llvm_libc_wrappers/assert.h",
243    "llvm_libc_wrappers/ctype.h",
244    "llvm_libc_wrappers/inttypes.h",
245    "llvm_libc_wrappers/stdio.h",
246    "llvm_libc_wrappers/stdlib.h",
247    "llvm_libc_wrappers/string.h",
248    "llvm_libc_wrappers/time.h",
249    "llvm_offload_wrappers/__llvm_offload.h",
250    "llvm_offload_wrappers/__llvm_offload_device.h",
251    "llvm_offload_wrappers/__llvm_offload_host.h",
252    "lsxintrin.h",
253    "lwpintrin.h",
254    "lzcntintrin.h",
255    "mm3dnow.h",
256    "mm_malloc.h",
257    "mmintrin.h",
258    "module.modulemap",
259    "movdirintrin.h",
260    "movrs_avx10_2_512intrin.h",
261    "movrs_avx10_2intrin.h",
262    "movrsintrin.h",
263    "msa.h",
264    "mwaitxintrin.h",
265    "nmmintrin.h",
266    "nvptxintrin.h",
267    "opencl-c-base.h",
268    "opencl-c.h",
269    "openmp_wrappers/__clang_openmp_device_functions.h",
270    "openmp_wrappers/cmath",
271    "openmp_wrappers/complex.h",
272    "openmp_wrappers/complex_cmath.h",
273    "openmp_wrappers/math.h",
274    "pconfigintrin.h",
275    "pkuintrin.h",
276    "pmmintrin.h",
277    "popcntintrin.h",
278    "ppc_wrappers/bmi2intrin.h",
279    "ppc_wrappers/bmiintrin.h",
280    "ppc_wrappers/emmintrin.h",
281    "ppc_wrappers/immintrin.h",
282    "ppc_wrappers/mm_malloc.h",
283    "ppc_wrappers/mmintrin.h",
284    "ppc_wrappers/nmmintrin.h",
285    "ppc_wrappers/pmmintrin.h",
286    "ppc_wrappers/smmintrin.h",
287    "ppc_wrappers/tmmintrin.h",
288    "ppc_wrappers/x86gprintrin.h",
289    "ppc_wrappers/x86intrin.h",
290    "ppc_wrappers/xmmintrin.h",
291    "prfchiintrin.h",
292    "prfchwintrin.h",
293    "ptrauth.h",
294    "ptwriteintrin.h",
295    "raointintrin.h",
296    "rdpruintrin.h",
297    "rdseedintrin.h",
298    "riscv_bitmanip.h",
299    "riscv_corev_alu.h",
300    "riscv_crypto.h",
301    "riscv_ntlh.h",
302    "rtmintrin.h",
303    "s390intrin.h",
304    "serializeintrin.h",
305    "sgxintrin.h",
306    "sha512intrin.h",
307    "shaintrin.h",
308    "sifive_vector.h",
309    "sm3intrin.h",
310    "sm4evexintrin.h",
311    "sm4intrin.h",
312    "smmintrin.h",
313    "stdalign.h",
314    "stdarg.h",
315    "stdatomic.h",
316    "stdbool.h",
317    "stdckdint.h",
318    "stddef.h",
319    "stdint.h",
320    "stdnoreturn.h",
321    "tbmintrin.h",
322    "tgmath.h",
323    "tmmintrin.h",
324    "tsxldtrkintrin.h",
325    "uintrintrin.h",
326    "unwind.h",
327    "usermsrintrin.h",
328    "vadefs.h",
329    "vaesintrin.h",
330    "varargs.h",
331    "vecintrin.h",
332    "velintrin.h",
333    "velintrin_approx.h",
334    "velintrin_gen.h",
335    "vpclmulqdqintrin.h",
336    "waitpkgintrin.h",
337    "wasm_simd128.h",
338    "wbnoinvdintrin.h",
339    "wmmintrin.h",
340    "x86gprintrin.h",
341    "x86intrin.h",
342    "xmmintrin.h",
343    "xopintrin.h",
344    "xsavecintrin.h",
345    "xsaveintrin.h",
346    "xsaveoptintrin.h",
347    "xsavesintrin.h",
348    "xtestintrin.h",
349    "yvals_core.h",
350    "zos_wrappers/builtins.h",
351  ]
352  outputs = [ "$clang_resource_dir/include/{{source_target_relative}}" ]
353}
354