xref: /openbsd-src/gnu/llvm/clang/lib/Headers/CMakeLists.txt (revision 12c855180aad702bbcca06e0398d774beeafb155)
1*12c85518Srobert# core_files list contains the headers shared by all platforms.
2*12c85518Srobert# Please consider adding new platform specific headers
3*12c85518Srobert# to platform specific lists below.
4*12c85518Srobertset(core_files
5a9ac8606Spatrick  builtins.h
6e5dd7070Spatrick  float.h
7e5dd7070Spatrick  inttypes.h
8e5dd7070Spatrick  iso646.h
9e5dd7070Spatrick  limits.h
10e5dd7070Spatrick  module.modulemap
11e5dd7070Spatrick  stdalign.h
12e5dd7070Spatrick  stdarg.h
13e5dd7070Spatrick  stdatomic.h
14e5dd7070Spatrick  stdbool.h
15e5dd7070Spatrick  stddef.h
16e5dd7070Spatrick  __stddef_max_align_t.h
17e5dd7070Spatrick  stdint.h
18e5dd7070Spatrick  stdnoreturn.h
19e5dd7070Spatrick  tgmath.h
20*12c85518Srobert  unwind.h
21*12c85518Srobert  varargs.h
22*12c85518Srobert  )
23*12c85518Srobert
24*12c85518Srobertset(arm_common_files
25*12c85518Srobert  # Headers shared by Arm and AArch64
26*12c85518Srobert  arm_acle.h
27*12c85518Srobert  )
28*12c85518Srobert
29*12c85518Srobertset(arm_only_files
30*12c85518Srobert  arm_cmse.h
31*12c85518Srobert  armintr.h
32*12c85518Srobert  )
33*12c85518Srobert
34*12c85518Srobertset(aarch64_only_files
35*12c85518Srobert  arm64intr.h
36*12c85518Srobert  arm_neon_sve_bridge.h
37*12c85518Srobert  )
38*12c85518Srobert
39*12c85518Srobertset(cuda_files
40*12c85518Srobert  __clang_cuda_builtin_vars.h
41*12c85518Srobert  __clang_cuda_math.h
42*12c85518Srobert  __clang_cuda_cmath.h
43*12c85518Srobert  __clang_cuda_complex_builtins.h
44*12c85518Srobert  __clang_cuda_device_functions.h
45*12c85518Srobert  __clang_cuda_intrinsics.h
46*12c85518Srobert  __clang_cuda_texture_intrinsics.h
47*12c85518Srobert  __clang_cuda_libdevice_declares.h
48*12c85518Srobert  __clang_cuda_math_forward_declares.h
49*12c85518Srobert  __clang_cuda_runtime_wrapper.h
50*12c85518Srobert  )
51*12c85518Srobert
52*12c85518Srobertset(hexagon_files
53*12c85518Srobert  hexagon_circ_brev_intrinsics.h
54*12c85518Srobert  hexagon_protos.h
55*12c85518Srobert  hexagon_types.h
56*12c85518Srobert  hvx_hexagon_protos.h
57*12c85518Srobert  )
58*12c85518Srobert
59*12c85518Srobertset(hip_files
60*12c85518Srobert  __clang_hip_libdevice_declares.h
61*12c85518Srobert  __clang_hip_cmath.h
62*12c85518Srobert  __clang_hip_math.h
63*12c85518Srobert  __clang_hip_stdlib.h
64*12c85518Srobert  __clang_hip_runtime_wrapper.h
65*12c85518Srobert  )
66*12c85518Srobert
67*12c85518Srobertset(hlsl_h
68*12c85518Srobert  hlsl.h
69*12c85518Srobert  )
70*12c85518Srobertset(hlsl_subdir_files
71*12c85518Srobert  hlsl/hlsl_basic_types.h
72*12c85518Srobert  hlsl/hlsl_intrinsics.h
73*12c85518Srobert  )
74*12c85518Srobertset(hlsl_files
75*12c85518Srobert  ${hlsl_h}
76*12c85518Srobert  ${hlsl_subdir_files}
77*12c85518Srobert  )
78*12c85518Srobert
79*12c85518Srobertset(loongarch_files
80*12c85518Srobert  larchintrin.h
81*12c85518Srobert  )
82*12c85518Srobert
83*12c85518Srobertset(mips_msa_files
84*12c85518Srobert  msa.h
85*12c85518Srobert  )
86*12c85518Srobert
87*12c85518Srobertset(opencl_files
88*12c85518Srobert  opencl-c.h
89*12c85518Srobert  opencl-c-base.h
90*12c85518Srobert  )
91*12c85518Srobert
92*12c85518Srobertset(ppc_files
93*12c85518Srobert  altivec.h
94*12c85518Srobert  )
95*12c85518Srobert
96*12c85518Srobertset(ppc_htm_files
97*12c85518Srobert  htmintrin.h
98*12c85518Srobert  htmxlintrin.h
99*12c85518Srobert  )
100*12c85518Srobert
101*12c85518Srobertset(systemz_files
102*12c85518Srobert  s390intrin.h
103*12c85518Srobert  vecintrin.h
104*12c85518Srobert  )
105*12c85518Srobert
106*12c85518Srobertset(ve_files
107*12c85518Srobert  velintrin.h
108*12c85518Srobert  velintrin_gen.h
109*12c85518Srobert  velintrin_approx.h
110*12c85518Srobert  )
111*12c85518Srobert
112*12c85518Srobertset(webassembly_files
113*12c85518Srobert  wasm_simd128.h
114*12c85518Srobert  )
115*12c85518Srobert
116*12c85518Srobertset(x86_files
117*12c85518Srobert# Intrinsics
118*12c85518Srobert  adxintrin.h
119*12c85518Srobert  ammintrin.h
120*12c85518Srobert  amxfp16intrin.h
121*12c85518Srobert  amxintrin.h
122*12c85518Srobert  avx2intrin.h
123*12c85518Srobert  avx512bf16intrin.h
124*12c85518Srobert  avx512bitalgintrin.h
125*12c85518Srobert  avx512bwintrin.h
126*12c85518Srobert  avx512cdintrin.h
127*12c85518Srobert  avx512dqintrin.h
128*12c85518Srobert  avx512erintrin.h
129*12c85518Srobert  avx512fintrin.h
130*12c85518Srobert  avx512fp16intrin.h
131*12c85518Srobert  avx512ifmaintrin.h
132*12c85518Srobert  avx512ifmavlintrin.h
133*12c85518Srobert  avx512pfintrin.h
134*12c85518Srobert  avx512vbmi2intrin.h
135*12c85518Srobert  avx512vbmiintrin.h
136*12c85518Srobert  avx512vbmivlintrin.h
137*12c85518Srobert  avx512vlbf16intrin.h
138*12c85518Srobert  avx512vlbitalgintrin.h
139*12c85518Srobert  avx512vlbwintrin.h
140*12c85518Srobert  avx512vlcdintrin.h
141*12c85518Srobert  avx512vldqintrin.h
142*12c85518Srobert  avx512vlfp16intrin.h
143*12c85518Srobert  avx512vlintrin.h
144*12c85518Srobert  avx512vlvbmi2intrin.h
145*12c85518Srobert  avx512vlvnniintrin.h
146*12c85518Srobert  avx512vlvp2intersectintrin.h
147*12c85518Srobert  avx512vnniintrin.h
148*12c85518Srobert  avx512vp2intersectintrin.h
149*12c85518Srobert  avx512vpopcntdqintrin.h
150*12c85518Srobert  avx512vpopcntdqvlintrin.h
151*12c85518Srobert  avxifmaintrin.h
152*12c85518Srobert  avxintrin.h
153*12c85518Srobert  avxneconvertintrin.h
154*12c85518Srobert  avxvnniint8intrin.h
155*12c85518Srobert  avxvnniintrin.h
156*12c85518Srobert  bmi2intrin.h
157*12c85518Srobert  bmiintrin.h
158*12c85518Srobert  cetintrin.h
159*12c85518Srobert  cldemoteintrin.h
160*12c85518Srobert  clflushoptintrin.h
161*12c85518Srobert  clwbintrin.h
162*12c85518Srobert  clzerointrin.h
163*12c85518Srobert  cmpccxaddintrin.h
164*12c85518Srobert  crc32intrin.h
165*12c85518Srobert  emmintrin.h
166*12c85518Srobert  enqcmdintrin.h
167*12c85518Srobert  f16cintrin.h
168*12c85518Srobert  fma4intrin.h
169*12c85518Srobert  fmaintrin.h
170*12c85518Srobert  fxsrintrin.h
171*12c85518Srobert  gfniintrin.h
172*12c85518Srobert  hresetintrin.h
173*12c85518Srobert  ia32intrin.h
174*12c85518Srobert  immintrin.h
175*12c85518Srobert  invpcidintrin.h
176*12c85518Srobert  keylockerintrin.h
177*12c85518Srobert  lwpintrin.h
178*12c85518Srobert  lzcntintrin.h
179*12c85518Srobert  mm3dnow.h
180*12c85518Srobert  mmintrin.h
181*12c85518Srobert  movdirintrin.h
182*12c85518Srobert  mwaitxintrin.h
183*12c85518Srobert  nmmintrin.h
184*12c85518Srobert  pconfigintrin.h
185*12c85518Srobert  pkuintrin.h
186*12c85518Srobert  pmmintrin.h
187*12c85518Srobert  popcntintrin.h
188*12c85518Srobert  prfchiintrin.h
189*12c85518Srobert  prfchwintrin.h
190*12c85518Srobert  ptwriteintrin.h
191*12c85518Srobert  raointintrin.h
192*12c85518Srobert  rdpruintrin.h
193*12c85518Srobert  rdseedintrin.h
194*12c85518Srobert  rtmintrin.h
195*12c85518Srobert  serializeintrin.h
196*12c85518Srobert  sgxintrin.h
197*12c85518Srobert  shaintrin.h
198*12c85518Srobert  smmintrin.h
199*12c85518Srobert  tbmintrin.h
200e5dd7070Spatrick  tmmintrin.h
201ec727ea7Spatrick  tsxldtrkintrin.h
202a9ac8606Spatrick  uintrintrin.h
203e5dd7070Spatrick  vaesintrin.h
204e5dd7070Spatrick  vpclmulqdqintrin.h
205e5dd7070Spatrick  waitpkgintrin.h
206e5dd7070Spatrick  wbnoinvdintrin.h
207e5dd7070Spatrick  __wmmintrin_aes.h
208*12c85518Srobert  wmmintrin.h
209e5dd7070Spatrick  __wmmintrin_pclmul.h
210a9ac8606Spatrick  x86gprintrin.h
211e5dd7070Spatrick  x86intrin.h
212e5dd7070Spatrick  xmmintrin.h
213e5dd7070Spatrick  xopintrin.h
214e5dd7070Spatrick  xsavecintrin.h
215e5dd7070Spatrick  xsaveintrin.h
216e5dd7070Spatrick  xsaveoptintrin.h
217e5dd7070Spatrick  xsavesintrin.h
218e5dd7070Spatrick  xtestintrin.h
219*12c85518Srobert# others
220*12c85518Srobert  cet.h
221*12c85518Srobert  cpuid.h
222*12c85518Srobert  )
223*12c85518Srobert
224*12c85518Srobertset(windows_only_files
225*12c85518Srobert  intrin.h
226*12c85518Srobert  vadefs.h
227*12c85518Srobert)
228*12c85518Srobert
229*12c85518Srobertset(utility_files
230*12c85518Srobert  mm_malloc.h
231*12c85518Srobert)
232*12c85518Srobert
233*12c85518Srobertset(files
234*12c85518Srobert  ${core_files}
235*12c85518Srobert  ${arm_common_files}
236*12c85518Srobert  ${arm_only_files}
237*12c85518Srobert  ${aarch64_only_files}
238*12c85518Srobert  ${cuda_files}
239*12c85518Srobert  ${hexagon_files}
240*12c85518Srobert  ${hip_files}
241*12c85518Srobert  ${loongarch_files}
242*12c85518Srobert  ${mips_msa_files}
243*12c85518Srobert  ${opencl_files}
244*12c85518Srobert  ${ppc_files}
245*12c85518Srobert  ${ppc_htm_files}
246*12c85518Srobert  ${systemz_files}
247*12c85518Srobert  ${ve_files}
248*12c85518Srobert  ${x86_files}
249*12c85518Srobert  ${webassembly_files}
250*12c85518Srobert  ${windows_only_files}
251*12c85518Srobert  ${utility_files}
252e5dd7070Spatrick  )
253e5dd7070Spatrick
254e5dd7070Spatrickset(cuda_wrapper_files
255e5dd7070Spatrick  cuda_wrappers/algorithm
256*12c85518Srobert  cuda_wrappers/cmath
257e5dd7070Spatrick  cuda_wrappers/complex
258e5dd7070Spatrick  cuda_wrappers/new
259e5dd7070Spatrick)
260e5dd7070Spatrick
261e5dd7070Spatrickset(ppc_wrapper_files
262e5dd7070Spatrick  ppc_wrappers/mmintrin.h
263e5dd7070Spatrick  ppc_wrappers/xmmintrin.h
264e5dd7070Spatrick  ppc_wrappers/mm_malloc.h
265e5dd7070Spatrick  ppc_wrappers/emmintrin.h
266e5dd7070Spatrick  ppc_wrappers/pmmintrin.h
267e5dd7070Spatrick  ppc_wrappers/tmmintrin.h
268e5dd7070Spatrick  ppc_wrappers/smmintrin.h
269*12c85518Srobert  ppc_wrappers/bmiintrin.h
270*12c85518Srobert  ppc_wrappers/bmi2intrin.h
271*12c85518Srobert  ppc_wrappers/immintrin.h
272*12c85518Srobert  ppc_wrappers/x86intrin.h
273*12c85518Srobert  ppc_wrappers/x86gprintrin.h
274e5dd7070Spatrick)
275e5dd7070Spatrick
276e5dd7070Spatrickset(openmp_wrapper_files
277e5dd7070Spatrick  openmp_wrappers/math.h
278e5dd7070Spatrick  openmp_wrappers/cmath
279ec727ea7Spatrick  openmp_wrappers/complex.h
280ec727ea7Spatrick  openmp_wrappers/complex
281ec727ea7Spatrick  openmp_wrappers/__clang_openmp_device_functions.h
282a9ac8606Spatrick  openmp_wrappers/complex_cmath.h
283ec727ea7Spatrick  openmp_wrappers/new
284e5dd7070Spatrick)
285e5dd7070Spatrick
286*12c85518Srobertset(output_dir ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION_MAJOR}/include)
287e5dd7070Spatrickset(out_files)
288e5dd7070Spatrickset(generated_files)
289e5dd7070Spatrick
290*12c85518Srobertset(arm_common_generated_files)
291*12c85518Srobertset(arm_only_generated_files)
292*12c85518Srobertset(aarch64_only_generated_files)
293*12c85518Srobertset(riscv_generated_files)
294*12c85518Srobert
295e5dd7070Spatrickfunction(copy_header_to_output_dir src_dir file)
296e5dd7070Spatrick  set(src ${src_dir}/${file})
297e5dd7070Spatrick  set(dst ${output_dir}/${file})
298e5dd7070Spatrick  add_custom_command(OUTPUT ${dst}
299e5dd7070Spatrick    DEPENDS ${src}
300e5dd7070Spatrick    COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}
301e5dd7070Spatrick    COMMENT "Copying clang's ${file}...")
302e5dd7070Spatrick  list(APPEND out_files ${dst})
303e5dd7070Spatrick  set(out_files ${out_files} PARENT_SCOPE)
304e5dd7070Spatrickendfunction(copy_header_to_output_dir)
305e5dd7070Spatrick
306e5dd7070Spatrickfunction(clang_generate_header td_option td_file out_file)
307e5dd7070Spatrick  clang_tablegen(${out_file} ${td_option}
308e5dd7070Spatrick  -I ${CLANG_SOURCE_DIR}/include/clang/Basic/
309e5dd7070Spatrick  SOURCE ${CLANG_SOURCE_DIR}/include/clang/Basic/${td_file})
310e5dd7070Spatrick
311e5dd7070Spatrick  copy_header_to_output_dir(${CMAKE_CURRENT_BINARY_DIR} ${out_file})
312e5dd7070Spatrick  set(out_files ${out_files} PARENT_SCOPE)
313e5dd7070Spatrick  list(APPEND generated_files "${CMAKE_CURRENT_BINARY_DIR}/${out_file}")
314e5dd7070Spatrick  set(generated_files ${generated_files} PARENT_SCOPE)
315e5dd7070Spatrickendfunction(clang_generate_header)
316e5dd7070Spatrick
317e5dd7070Spatrick
318e5dd7070Spatrick# Copy header files from the source directory to the build directory
319*12c85518Srobertforeach( f ${files} ${cuda_wrapper_files} ${ppc_wrapper_files} ${openmp_wrapper_files} ${hlsl_files})
320e5dd7070Spatrick  copy_header_to_output_dir(${CMAKE_CURRENT_SOURCE_DIR} ${f})
321e5dd7070Spatrickendforeach( f )
322e5dd7070Spatrick
323e5dd7070Spatrick# Generate header files and copy them to the build directory
324*12c85518Srobertif(ARM IN_LIST LLVM_TARGETS_TO_BUILD OR AArch64 IN_LIST LLVM_TARGETS_TO_BUILD)
325e5dd7070Spatrick  # Generate arm_neon.h
326e5dd7070Spatrick  clang_generate_header(-gen-arm-neon arm_neon.td arm_neon.h)
327e5dd7070Spatrick  # Generate arm_fp16.h
328e5dd7070Spatrick  clang_generate_header(-gen-arm-fp16 arm_fp16.td arm_fp16.h)
329ec727ea7Spatrick  # Generate arm_sve.h
330ec727ea7Spatrick  clang_generate_header(-gen-arm-sve-header arm_sve.td arm_sve.h)
331ec727ea7Spatrick  # Generate arm_bf16.h
332ec727ea7Spatrick  clang_generate_header(-gen-arm-bf16 arm_bf16.td arm_bf16.h)
333e5dd7070Spatrick  # Generate arm_mve.h
334e5dd7070Spatrick  clang_generate_header(-gen-arm-mve-header arm_mve.td arm_mve.h)
335ec727ea7Spatrick  # Generate arm_cde.h
336ec727ea7Spatrick  clang_generate_header(-gen-arm-cde-header arm_cde.td arm_cde.h)
337*12c85518Srobert
338*12c85518Srobert  # Add headers to target specific lists
339*12c85518Srobert  list(APPEND arm_common_generated_files
340*12c85518Srobert    "${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h"
341*12c85518Srobert    "${CMAKE_CURRENT_BINARY_DIR}/arm_fp16.h"
342*12c85518Srobert    )
343*12c85518Srobert
344*12c85518Srobert  list(APPEND arm_only_generated_files
345*12c85518Srobert    "${CMAKE_CURRENT_BINARY_DIR}/arm_mve.h"
346*12c85518Srobert    "${CMAKE_CURRENT_BINARY_DIR}/arm_cde.h"
347*12c85518Srobert    )
348*12c85518Srobert
349*12c85518Srobert  list(APPEND aarch64_only_generated_files
350*12c85518Srobert    "${CMAKE_CURRENT_BINARY_DIR}/arm_sve.h"
351*12c85518Srobert    "${CMAKE_CURRENT_BINARY_DIR}/arm_bf16.h"
352*12c85518Srobert    )
353*12c85518Srobertendif()
354*12c85518Srobertif(RISCV IN_LIST LLVM_TARGETS_TO_BUILD)
355a9ac8606Spatrick  # Generate riscv_vector.h
356a9ac8606Spatrick  clang_generate_header(-gen-riscv-vector-header riscv_vector.td riscv_vector.h)
357*12c85518Srobert  list(APPEND riscv_generated_files
358*12c85518Srobert    "${CMAKE_CURRENT_BINARY_DIR}/riscv_vector.h"
359*12c85518Srobert    )
360*12c85518Srobertendif()
361e5dd7070Spatrick
362*12c85518Srobert
363*12c85518Srobert# Check if the generated headers are included in a target specific lists
364*12c85518Srobert# Currently, all generated headers are target specific.
365*12c85518Srobertset(all_target_specific_generated_files
366*12c85518Srobert  ${arm_common_generated_files}
367*12c85518Srobert  ${arm_only_generated_files}
368*12c85518Srobert  ${aarch64_only_generated_files}
369*12c85518Srobert  ${riscv_generated_files})
370*12c85518Srobertforeach( f ${generated_files} )
371*12c85518Srobert  if (NOT ${f} IN_LIST all_target_specific_generated_files)
372*12c85518Srobert    message(WARNING "${f} is a generated header but it is not included in any "
373*12c85518Srobert                    "target specific header lists! The resource-headers "
374*12c85518Srobert                    "distribtion target will be incorrect!")
375*12c85518Srobert  endif()
376*12c85518Srobertendforeach( f )
377*12c85518Srobert
378*12c85518Srobertfunction(add_header_target target_name file_list)
379*12c85518Srobert  add_custom_target(${target_name} DEPENDS ${file_list})
380*12c85518Srobert  set_target_properties(${target_name} PROPERTIES
381e5dd7070Spatrick    FOLDER "Misc"
382e5dd7070Spatrick    RUNTIME_OUTPUT_DIRECTORY "${output_dir}")
383*12c85518Srobertendfunction()
384e5dd7070Spatrick
385*12c85518Srobert# The catch-all clang-resource-headers target
386*12c85518Srobertadd_custom_target("clang-resource-headers" ALL DEPENDS ${out_files})
387*12c85518Srobertset_target_properties("clang-resource-headers" PROPERTIES
388*12c85518Srobert  FOLDER "Misc"
389*12c85518Srobert  RUNTIME_OUTPUT_DIRECTORY "${output_dir}")
390*12c85518Srobertadd_dependencies("clang-resource-headers"
391*12c85518Srobert                 "core-resource-headers"
392*12c85518Srobert                 "arm-common-resource-headers"
393*12c85518Srobert                 "arm-resource-headers"
394*12c85518Srobert                 "aarch64-resource-headers"
395*12c85518Srobert                 "cuda-resource-headers"
396*12c85518Srobert                 "hexagon-resource-headers"
397*12c85518Srobert                 "hip-resource-headers"
398*12c85518Srobert                 "hlsl-resource-headers"
399*12c85518Srobert                 "loongarch-resource-headers"
400*12c85518Srobert                 "mips-resource-headers"
401*12c85518Srobert                 "ppc-resource-headers"
402*12c85518Srobert                 "ppc-htm-resource-headers"
403*12c85518Srobert                 "riscv-resource-headers"
404*12c85518Srobert                 "systemz-resource-headers"
405*12c85518Srobert                 "ve-resource-headers"
406*12c85518Srobert                 "webassembly-resource-headers"
407*12c85518Srobert                 "x86-resource-headers"
408*12c85518Srobert                 "opencl-resource-headers"
409*12c85518Srobert                 "openmp-resource-headers"
410*12c85518Srobert                 "windows-resource-headers"
411*12c85518Srobert                 "utility-resource-headers")
412e5dd7070Spatrick
413*12c85518Srobert# Core/common headers
414*12c85518Srobertadd_header_target("core-resource-headers" ${core_files})
415*12c85518Srobertadd_header_target("arm-common-resource-headers" "${arm_common_files};${arm_common_generated_files}")
416*12c85518Srobert
417*12c85518Srobert# Architecture/platform specific targets
418*12c85518Srobertadd_header_target("arm-resource-headers" "${arm_only_files};${arm_only_generated_files}")
419*12c85518Srobertadd_header_target("aarch64-resource-headers" "${aarch64_only_files};${aarch64_only_generated_files}")
420*12c85518Srobertadd_header_target("cuda-resource-headers" "${cuda_files};${cuda_wrapper_files}")
421*12c85518Srobertadd_header_target("hexagon-resource-headers" "${hexagon_files}")
422*12c85518Srobertadd_header_target("hip-resource-headers" "${hip_files}")
423*12c85518Srobertadd_header_target("loongarch-resource-headers" "${loongarch_files}")
424*12c85518Srobertadd_header_target("mips-resource-headers" "${mips_msa_files}")
425*12c85518Srobertadd_header_target("ppc-resource-headers" "${ppc_files};${ppc_wrapper_files}")
426*12c85518Srobertadd_header_target("ppc-htm-resource-headers" "${ppc_htm_files}")
427*12c85518Srobertadd_header_target("riscv-resource-headers" "${riscv_generated_files}")
428*12c85518Srobertadd_header_target("systemz-resource-headers" "${systemz_files}")
429*12c85518Srobertadd_header_target("ve-resource-headers" "${ve_files}")
430*12c85518Srobertadd_header_target("webassembly-resource-headers" "${webassembly_files}")
431*12c85518Srobertadd_header_target("x86-resource-headers" "${x86_files}")
432*12c85518Srobert
433*12c85518Srobert# Other header groupings
434*12c85518Srobertadd_header_target("hlsl-resource-headers" ${hlsl_files})
435*12c85518Srobertadd_header_target("opencl-resource-headers" ${opencl_files})
436*12c85518Srobertadd_header_target("openmp-resource-headers" ${openmp_wrapper_files})
437*12c85518Srobertadd_header_target("windows-resource-headers" ${windows_only_files})
438*12c85518Srobertadd_header_target("utility-resource-headers" ${utility_files})
439*12c85518Srobert
440*12c85518Srobertset(header_install_dir lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION_MAJOR}/include)
441*12c85518Srobert
442*12c85518Srobert#############################################################
443*12c85518Srobert# Install rules for the catch-all clang-resource-headers target
444e5dd7070Spatrickinstall(
445e5dd7070Spatrick  FILES ${files} ${generated_files}
446e5dd7070Spatrick  DESTINATION ${header_install_dir}
447e5dd7070Spatrick  COMPONENT clang-resource-headers)
448e5dd7070Spatrick
449e5dd7070Spatrickinstall(
450e5dd7070Spatrick  FILES ${cuda_wrapper_files}
451e5dd7070Spatrick  DESTINATION ${header_install_dir}/cuda_wrappers
452e5dd7070Spatrick  COMPONENT clang-resource-headers)
453e5dd7070Spatrick
454e5dd7070Spatrickinstall(
455e5dd7070Spatrick  FILES ${ppc_wrapper_files}
456e5dd7070Spatrick  DESTINATION ${header_install_dir}/ppc_wrappers
457e5dd7070Spatrick  COMPONENT clang-resource-headers)
458e5dd7070Spatrick
459e5dd7070Spatrickinstall(
460e5dd7070Spatrick  FILES ${openmp_wrapper_files}
461e5dd7070Spatrick  DESTINATION ${header_install_dir}/openmp_wrappers
462e5dd7070Spatrick  COMPONENT clang-resource-headers)
463e5dd7070Spatrick
464*12c85518Srobert#############################################################
465*12c85518Srobert# Install rules for separate header lists
466*12c85518Srobertinstall(
467*12c85518Srobert  FILES ${core_files}
468*12c85518Srobert  DESTINATION ${header_install_dir}
469*12c85518Srobert  EXCLUDE_FROM_ALL
470*12c85518Srobert  COMPONENT core-resource-headers)
471*12c85518Srobert
472*12c85518Srobertinstall(
473*12c85518Srobert  FILES ${arm_common_files} ${arm_common_generated_files}
474*12c85518Srobert  DESTINATION ${header_install_dir}
475*12c85518Srobert  EXCLUDE_FROM_ALL
476*12c85518Srobert  COMPONENT arm-common-resource-headers)
477*12c85518Srobert
478*12c85518Srobertinstall(
479*12c85518Srobert  FILES ${arm_only_files} ${arm_only_generated_files}
480*12c85518Srobert  DESTINATION ${header_install_dir}
481*12c85518Srobert  EXCLUDE_FROM_ALL
482*12c85518Srobert  COMPONENT arm-resource-headers)
483*12c85518Srobert
484*12c85518Srobertinstall(
485*12c85518Srobert  FILES ${aarch64_only_files} ${aarch64_only_generated_files}
486*12c85518Srobert  DESTINATION ${header_install_dir}
487*12c85518Srobert  EXCLUDE_FROM_ALL
488*12c85518Srobert  COMPONENT aarch64-resource-headers)
489*12c85518Srobert
490*12c85518Srobertinstall(
491*12c85518Srobert  FILES ${cuda_wrapper_files}
492*12c85518Srobert  DESTINATION ${header_install_dir}/cuda_wrappers
493*12c85518Srobert  EXCLUDE_FROM_ALL
494*12c85518Srobert  COMPONENT cuda-resource-headers)
495*12c85518Srobert
496*12c85518Srobertinstall(
497*12c85518Srobert  FILES ${cuda_files}
498*12c85518Srobert  DESTINATION ${header_install_dir}
499*12c85518Srobert  EXCLUDE_FROM_ALL
500*12c85518Srobert  COMPONENT cuda-resource-headers)
501*12c85518Srobert
502*12c85518Srobertinstall(
503*12c85518Srobert  FILES ${hexagon_files}
504*12c85518Srobert  DESTINATION ${header_install_dir}
505*12c85518Srobert  EXCLUDE_FROM_ALL
506*12c85518Srobert  COMPONENT hexagon-resource-headers)
507*12c85518Srobert
508*12c85518Srobertinstall(
509*12c85518Srobert  FILES ${hip_files}
510*12c85518Srobert  DESTINATION ${header_install_dir}
511*12c85518Srobert  EXCLUDE_FROM_ALL
512*12c85518Srobert  COMPONENT hip-resource-headers)
513*12c85518Srobert
514*12c85518Srobertinstall(
515*12c85518Srobert  FILES ${loongarch_files}
516*12c85518Srobert  DESTINATION ${header_install_dir}
517*12c85518Srobert  EXCLUDE_FROM_ALL
518*12c85518Srobert  COMPONENT loongarch-resource-headers)
519*12c85518Srobert
520*12c85518Srobertinstall(
521*12c85518Srobert  FILES ${mips_msa_files}
522*12c85518Srobert  DESTINATION ${header_install_dir}
523*12c85518Srobert  EXCLUDE_FROM_ALL
524*12c85518Srobert  COMPONENT mips-resource-headers)
525*12c85518Srobert
526*12c85518Srobertinstall(
527*12c85518Srobert  FILES ${ppc_wrapper_files}
528*12c85518Srobert  DESTINATION ${header_install_dir}/ppc_wrappers
529*12c85518Srobert  EXCLUDE_FROM_ALL
530*12c85518Srobert  COMPONENT ppc-resource-headers)
531*12c85518Srobert
532*12c85518Srobertinstall(
533*12c85518Srobert  FILES ${ppc_files}
534*12c85518Srobert  DESTINATION ${header_install_dir}
535*12c85518Srobert  EXCLUDE_FROM_ALL
536*12c85518Srobert  COMPONENT ppc-resource-headers)
537*12c85518Srobert
538*12c85518Srobertinstall(
539*12c85518Srobert  FILES ${ppc_htm_files}
540*12c85518Srobert  DESTINATION ${header_install_dir}
541*12c85518Srobert  EXCLUDE_FROM_ALL
542*12c85518Srobert  COMPONENT ppc-htm-resource-headers)
543*12c85518Srobert
544*12c85518Srobertinstall(
545*12c85518Srobert  FILES ${riscv_generated_files}
546*12c85518Srobert  DESTINATION ${header_install_dir}
547*12c85518Srobert  EXCLUDE_FROM_ALL
548*12c85518Srobert  COMPONENT riscv-resource-headers)
549*12c85518Srobert
550*12c85518Srobertinstall(
551*12c85518Srobert  FILES ${systemz_files}
552*12c85518Srobert  DESTINATION ${header_install_dir}
553*12c85518Srobert  EXCLUDE_FROM_ALL
554*12c85518Srobert  COMPONENT systemz-resource-headers)
555*12c85518Srobert
556*12c85518Srobertinstall(
557*12c85518Srobert  FILES ${ve_files}
558*12c85518Srobert  DESTINATION ${header_install_dir}
559*12c85518Srobert  EXCLUDE_FROM_ALL
560*12c85518Srobert  COMPONENT ve-resource-headers)
561*12c85518Srobert
562*12c85518Srobertinstall(
563*12c85518Srobert  FILES ${webassembly_files}
564*12c85518Srobert  DESTINATION ${header_install_dir}
565*12c85518Srobert  EXCLUDE_FROM_ALL
566*12c85518Srobert  COMPONENT webassembly-resource-headers)
567*12c85518Srobert
568*12c85518Srobertinstall(
569*12c85518Srobert  FILES ${x86_files}
570*12c85518Srobert  DESTINATION ${header_install_dir}
571*12c85518Srobert  EXCLUDE_FROM_ALL
572*12c85518Srobert  COMPONENT x86-resource-headers)
573*12c85518Srobert
574*12c85518Srobertif(NOT CLANG_ENABLE_HLSL)
575*12c85518Srobert  set(EXCLUDE_HLSL EXCLUDE_FROM_ALL)
576*12c85518Srobertendif()
577*12c85518Srobert
578*12c85518Srobertinstall(
579*12c85518Srobert  FILES ${hlsl_h}
580*12c85518Srobert  DESTINATION ${header_install_dir}
581*12c85518Srobert  ${EXCLUDE_HLSL}
582*12c85518Srobert  COMPONENT hlsl-resource-headers)
583*12c85518Srobert
584*12c85518Srobertinstall(
585*12c85518Srobert  FILES ${hlsl_subdir_files}
586*12c85518Srobert  DESTINATION ${header_install_dir}/hlsl
587*12c85518Srobert  ${EXCLUDE_HLSL}
588*12c85518Srobert  COMPONENT hlsl-resource-headers)
589*12c85518Srobert
590*12c85518Srobertinstall(
591*12c85518Srobert  FILES ${opencl_files}
592*12c85518Srobert  DESTINATION ${header_install_dir}
593*12c85518Srobert  EXCLUDE_FROM_ALL
594*12c85518Srobert  COMPONENT opencl-resource-headers)
595*12c85518Srobert
596*12c85518Srobertinstall(
597*12c85518Srobert  FILES ${openmp_wrapper_files}
598*12c85518Srobert  DESTINATION ${header_install_dir}/openmp_wrappers
599*12c85518Srobert  EXCLUDE_FROM_ALL
600*12c85518Srobert  COMPONENT openmp-resource-headers)
601*12c85518Srobert
602*12c85518Srobertinstall(
603*12c85518Srobert  FILES ${utility_files}
604*12c85518Srobert  DESTINATION ${header_install_dir}
605*12c85518Srobert  EXCLUDE_FROM_ALL
606*12c85518Srobert  COMPONENT utility-resource-headers)
607*12c85518Srobert
608*12c85518Srobertinstall(
609*12c85518Srobert  FILES ${windows_only_files}
610*12c85518Srobert  DESTINATION ${header_install_dir}
611*12c85518Srobert  EXCLUDE_FROM_ALL
612*12c85518Srobert  COMPONENT windows-resource-headers)
613*12c85518Srobert#############################################################
614*12c85518Srobert
615e5dd7070Spatrickif (NOT LLVM_ENABLE_IDE)
616e5dd7070Spatrick  add_llvm_install_targets(install-clang-resource-headers
617e5dd7070Spatrick                           DEPENDS clang-resource-headers
618e5dd7070Spatrick                           COMPONENT clang-resource-headers)
619*12c85518Srobert
620*12c85518Srobert  add_llvm_install_targets(install-core-resource-headers
621*12c85518Srobert                           DEPENDS core-resource-headers
622*12c85518Srobert                           COMPONENT core-resource-headers)
623*12c85518Srobert  add_llvm_install_targets(install-arm-common-resource-headers
624*12c85518Srobert                           DEPENDS arm-common-resource-headers
625*12c85518Srobert                           COMPONENT arm-common-resource-headers)
626*12c85518Srobert  add_llvm_install_targets(install-arm-resource-headers
627*12c85518Srobert                           DEPENDS arm-resource-headers
628*12c85518Srobert                           COMPONENT arm-resource-headers)
629*12c85518Srobert  add_llvm_install_targets(install-aarch64-resource-headers
630*12c85518Srobert                           DEPENDS aarch64-resource-headers
631*12c85518Srobert                           COMPONENT aarch64-resource-headers)
632*12c85518Srobert  add_llvm_install_targets(install-cuda-resource-headers
633*12c85518Srobert                           DEPENDS cuda-resource-headers
634*12c85518Srobert                           COMPONENT cuda-resource-headers)
635*12c85518Srobert  add_llvm_install_targets(install-hexagon-resource-headers
636*12c85518Srobert                           DEPENDS hexagon-resource-headers
637*12c85518Srobert                           COMPONENT hexagon-resource-headers)
638*12c85518Srobert  add_llvm_install_targets(install-hip-resource-headers
639*12c85518Srobert                           DEPENDS hip-resource-headers
640*12c85518Srobert                           COMPONENT hip-resource-headers)
641*12c85518Srobert  add_llvm_install_targets(install-mips-resource-headers
642*12c85518Srobert                           DEPENDS mips-resource-headers
643*12c85518Srobert                           COMPONENT mips-resource-headers)
644*12c85518Srobert  add_llvm_install_targets(install-ppc-resource-headers
645*12c85518Srobert                           DEPENDS ppc-resource-headers
646*12c85518Srobert                           COMPONENT ppc-resource-headers)
647*12c85518Srobert  add_llvm_install_targets(install-ppc-htm-resource-headers
648*12c85518Srobert                           DEPENDS ppc-htm-resource-headers
649*12c85518Srobert                           COMPONENT ppc-htm-resource-headers)
650*12c85518Srobert  add_llvm_install_targets(install-riscv-resource-headers
651*12c85518Srobert                           DEPENDS riscv-resource-headers
652*12c85518Srobert                           COMPONENT riscv-resource-headers)
653*12c85518Srobert  add_llvm_install_targets(install-systemz-resource-headers
654*12c85518Srobert                           DEPENDS systemz-resource-headers
655*12c85518Srobert                           COMPONENT systemz-resource-headers)
656*12c85518Srobert  add_llvm_install_targets(install-ve-resource-headers
657*12c85518Srobert                           DEPENDS ve-resource-headers
658*12c85518Srobert                           COMPONENT ve-resource-headers)
659*12c85518Srobert  add_llvm_install_targets(install-x86-resource-headers
660*12c85518Srobert                           DEPENDS x86-resource-headers
661*12c85518Srobert                           COMPONENT x86-resource-headers)
662*12c85518Srobert  add_llvm_install_targets(install-webassembly-resource-headers
663*12c85518Srobert                           DEPENDS webassembly-resource-headers
664*12c85518Srobert                           COMPONENT webassembly-resource-headers)
665*12c85518Srobert
666*12c85518Srobert  add_llvm_install_targets(install-hlsl-resource-headers
667*12c85518Srobert                           DEPENDS hlsl-resource-headers
668*12c85518Srobert                           COMPONENT hlsl-resource-headers)
669*12c85518Srobert  add_llvm_install_targets(install-opencl-resource-headers
670*12c85518Srobert                           DEPENDS opencl-resource-headers
671*12c85518Srobert                           COMPONENT opencl-resource-headers)
672*12c85518Srobert  add_llvm_install_targets(install-openmp-resource-headers
673*12c85518Srobert                           DEPENDS openmp-resource-headers
674*12c85518Srobert                           COMPONENT openmp-resource-headers)
675*12c85518Srobert  add_llvm_install_targets(install-windows-resource-headers
676*12c85518Srobert                           DEPENDS windows-resource-headers
677*12c85518Srobert                           COMPONENT windows-resource-headers)
678*12c85518Srobert  add_llvm_install_targets(install-utility-resource-headers
679*12c85518Srobert                           DEPENDS utility-resource-headers
680*12c85518Srobert                           COMPONENT utility-resource-headers)
681e5dd7070Spatrickendif()
682*12c85518Srobert
683*12c85518Srobertsource_group("Clang Runtime Headers" FILES ${files})
684