902 lines · plain
1# core_files list contains the headers shared by all platforms.2# Please consider adding new platform specific headers3# to platform specific lists below.4set(core_files5 builtins.h6 float.h7 __float_float.h8 __float_header_macro.h9 __float_infinity_nan.h10 inttypes.h11 iso646.h12 limits.h13 module.modulemap14 stdalign.h15 stdarg.h16 __stdarg___gnuc_va_list.h17 __stdarg___va_copy.h18 __stdarg_header_macro.h19 __stdarg_va_arg.h20 __stdarg_va_copy.h21 __stdarg_va_list.h22 stdatomic.h23 stdbool.h24 stdcountof.h25 stdckdint.h26 stddef.h27 __stddef_header_macro.h28 __stddef_max_align_t.h29 __stddef_null.h30 __stddef_nullptr_t.h31 __stddef_offsetof.h32 __stddef_ptrdiff_t.h33 __stddef_rsize_t.h34 __stddef_size_t.h35 __stddef_unreachable.h36 __stddef_wchar_t.h37 __stddef_wint_t.h38 stdint.h39 stdnoreturn.h40 tgmath.h41 unwind.h42 varargs.h43 )44 45set(arm_common_files46 # Headers shared by Arm and AArch6447 arm_acle.h48 )49 50set(arm_only_files51 arm_cmse.h52 armintr.h53 )54 55set(aarch64_only_files56 arm64intr.h57 arm_neon_sve_bridge.h58 )59 60set(cuda_files61 __clang_cuda_builtin_vars.h62 __clang_cuda_math.h63 __clang_cuda_cmath.h64 __clang_cuda_complex_builtins.h65 __clang_cuda_device_functions.h66 __clang_cuda_intrinsics.h67 __clang_cuda_texture_intrinsics.h68 __clang_cuda_libdevice_declares.h69 __clang_cuda_math_forward_declares.h70 __clang_cuda_runtime_wrapper.h71 )72 73set(hexagon_files74 hexagon_circ_brev_intrinsics.h75 hexagon_protos.h76 hexagon_types.h77 hvx_hexagon_protos.h78 )79 80set(hip_files81 __clang_hip_libdevice_declares.h82 __clang_hip_cmath.h83 __clang_hip_math.h84 __clang_hip_stdlib.h85 __clang_hip_runtime_wrapper.h86 )87 88set(hlsl_h89 hlsl.h90 )91set(hlsl_subdir_files92 hlsl/hlsl_basic_types.h93 hlsl/hlsl_alias_intrinsics.h94 hlsl/hlsl_compat_overloads.h95 hlsl/hlsl_intrinsic_helpers.h96 hlsl/hlsl_intrinsics.h97 hlsl/hlsl_detail.h98 hlsl/hlsl_spirv.h99 )100set(hlsl_files101 ${hlsl_h}102 ${hlsl_subdir_files}103 )104 105set(loongarch_files106 larchintrin.h107 lasxintrin.h108 lsxintrin.h109 )110 111set(mips_msa_files112 msa.h113 )114 115set(opencl_files116 opencl-c.h117 opencl-c-base.h118 )119 120set(ppc_files121 altivec.h122 )123 124set(ppc_htm_files125 htmintrin.h126 htmxlintrin.h127 )128 129set(riscv_files130 riscv_bitmanip.h131 riscv_corev_alu.h132 riscv_crypto.h133 riscv_nds.h134 riscv_ntlh.h135 sifive_vector.h136 andes_vector.h137 riscv_mips.h138 )139 140set(spirv_files141 __clang_spirv_builtins.h142 )143 144set(systemz_files145 s390intrin.h146 vecintrin.h147 )148 149set(ve_files150 velintrin.h151 velintrin_gen.h152 velintrin_approx.h153 )154 155set(webassembly_files156 wasm_simd128.h157 )158 159set(x86_files160# Intrinsics161 adcintrin.h162 adxintrin.h163 ammintrin.h164 amxavx512intrin.h165 amxcomplexintrin.h166 amxfp16intrin.h167 amxfp8intrin.h168 amxintrin.h169 amxmovrsintrin.h170 amxtf32intrin.h171 avx10_2_512bf16intrin.h172 avx10_2_512convertintrin.h173 avx10_2_512minmaxintrin.h174 avx10_2_512niintrin.h175 avx10_2_512satcvtdsintrin.h176 avx10_2_512satcvtintrin.h177 avx10_2bf16intrin.h178 avx10_2convertintrin.h179 avx10_2copyintrin.h180 avx10_2minmaxintrin.h181 avx10_2niintrin.h182 avx10_2satcvtdsintrin.h183 avx10_2satcvtintrin.h184 avx2intrin.h185 avx512bf16intrin.h186 avx512bitalgintrin.h187 avx512bwintrin.h188 avx512cdintrin.h189 avx512dqintrin.h190 avx512fintrin.h191 avx512fp16intrin.h192 avx512ifmaintrin.h193 avx512ifmavlintrin.h194 avx512vbmi2intrin.h195 avx512vbmiintrin.h196 avx512vbmivlintrin.h197 avx512vlbf16intrin.h198 avx512vlbitalgintrin.h199 avx512vlbwintrin.h200 avx512vlcdintrin.h201 avx512vldqintrin.h202 avx512vlfp16intrin.h203 avx512vlintrin.h204 avx512vlvbmi2intrin.h205 avx512vlvnniintrin.h206 avx512vlvp2intersectintrin.h207 avx512vnniintrin.h208 avx512vp2intersectintrin.h209 avx512vpopcntdqintrin.h210 avx512vpopcntdqvlintrin.h211 avxifmaintrin.h212 avxintrin.h213 avxneconvertintrin.h214 avxvnniint16intrin.h215 avxvnniint8intrin.h216 avxvnniintrin.h217 bmi2intrin.h218 bmiintrin.h219 cetintrin.h220 cldemoteintrin.h221 clflushoptintrin.h222 clwbintrin.h223 clzerointrin.h224 cmpccxaddintrin.h225 crc32intrin.h226 emmintrin.h227 enqcmdintrin.h228 f16cintrin.h229 fma4intrin.h230 fmaintrin.h231 fxsrintrin.h232 gfniintrin.h233 hresetintrin.h234 ia32intrin.h235 immintrin.h236 invpcidintrin.h237 keylockerintrin.h238 lwpintrin.h239 lzcntintrin.h240 mm3dnow.h241 mmintrin.h242 movdirintrin.h243 movrs_avx10_2_512intrin.h244 movrs_avx10_2intrin.h245 movrsintrin.h246 mwaitxintrin.h247 nmmintrin.h248 pconfigintrin.h249 pkuintrin.h250 pmmintrin.h251 popcntintrin.h252 prfchiintrin.h253 prfchwintrin.h254 ptrauth.h255 ptwriteintrin.h256 raointintrin.h257 rdpruintrin.h258 rdseedintrin.h259 rtmintrin.h260 serializeintrin.h261 sgxintrin.h262 sha512intrin.h263 shaintrin.h264 sm3intrin.h265 sm4intrin.h266 sm4evexintrin.h267 smmintrin.h268 tbmintrin.h269 tmmintrin.h270 tsxldtrkintrin.h271 uintrintrin.h272 usermsrintrin.h273 vaesintrin.h274 vpclmulqdqintrin.h275 waitpkgintrin.h276 wbnoinvdintrin.h277 __wmmintrin_aes.h278 wmmintrin.h279 __wmmintrin_pclmul.h280 x86gprintrin.h281 x86intrin.h282 xmmintrin.h283 xopintrin.h284 xsavecintrin.h285 xsaveintrin.h286 xsaveoptintrin.h287 xsavesintrin.h288 xtestintrin.h289# others290 cet.h291 cpuid.h292 )293 294set(gpu_files295 gpuintrin.h296 nvptxintrin.h297 amdgpuintrin.h298 )299 300set(windows_only_files301 intrin0.h302 intrin.h303 vadefs.h304 yvals_core.h305)306 307set(utility_files308 mm_malloc.h309)310 311set(files312 ${core_files}313 ${arm_common_files}314 ${arm_only_files}315 ${aarch64_only_files}316 ${cuda_files}317 ${hexagon_files}318 ${hip_files}319 ${loongarch_files}320 ${mips_msa_files}321 ${opencl_files}322 ${ppc_files}323 ${ppc_htm_files}324 ${riscv_files}325 ${spirv_files}326 ${systemz_files}327 ${ve_files}328 ${x86_files}329 ${gpu_files}330 ${webassembly_files}331 ${windows_only_files}332 ${utility_files}333 )334 335set(cuda_wrapper_files336 cuda_wrappers/algorithm337 cuda_wrappers/cmath338 cuda_wrappers/complex339 cuda_wrappers/new340)341 342set(cuda_wrapper_bits_files343 cuda_wrappers/bits/c++config.h344 cuda_wrappers/bits/shared_ptr_base.h345 cuda_wrappers/bits/basic_string.h346 cuda_wrappers/bits/basic_string.tcc347)348 349set(cuda_wrapper_utility_files350 cuda_wrappers/__utility/declval.h351)352 353set(ppc_wrapper_files354 ppc_wrappers/mmintrin.h355 ppc_wrappers/xmmintrin.h356 ppc_wrappers/mm_malloc.h357 ppc_wrappers/emmintrin.h358 ppc_wrappers/pmmintrin.h359 ppc_wrappers/tmmintrin.h360 ppc_wrappers/smmintrin.h361 ppc_wrappers/nmmintrin.h362 ppc_wrappers/bmiintrin.h363 ppc_wrappers/bmi2intrin.h364 ppc_wrappers/immintrin.h365 ppc_wrappers/x86intrin.h366 ppc_wrappers/x86gprintrin.h367)368 369set(openmp_wrapper_files370 openmp_wrappers/math.h371 openmp_wrappers/cmath372 # Due to a bug in CMake, `complex` must be before `complex.h`373 # See: https://gitlab.kitware.com/cmake/cmake/-/issues/26058374 openmp_wrappers/complex375 openmp_wrappers/complex.h376 openmp_wrappers/__clang_openmp_device_functions.h377 openmp_wrappers/complex_cmath.h378 openmp_wrappers/new379)380 381set(llvm_offload_wrapper_files382 llvm_offload_wrappers/__llvm_offload.h383 llvm_offload_wrappers/__llvm_offload_host.h384 llvm_offload_wrappers/__llvm_offload_device.h385)386 387set(llvm_libc_wrapper_files388 llvm_libc_wrappers/assert.h389 llvm_libc_wrappers/stdio.h390 llvm_libc_wrappers/stdlib.h391 llvm_libc_wrappers/string.h392 llvm_libc_wrappers/ctype.h393 llvm_libc_wrappers/inttypes.h394 llvm_libc_wrappers/time.h395)396 397set(zos_wrapper_files398 zos_wrappers/builtins.h399)400 401include(GetClangResourceDir)402get_clang_resource_dir(output_dir PREFIX ${LLVM_LIBRARY_OUTPUT_INTDIR}/.. SUBDIR include)403set(out_files)404set(generated_files)405 406set(arm_common_generated_files)407set(arm_only_generated_files)408set(aarch64_only_generated_files)409set(riscv_generated_files)410 411function(copy_header_to_output_dir src_dir file)412 set(src ${src_dir}/${file})413 if("${CMAKE_CFG_INTDIR}" STREQUAL ".")414 set(dst ${output_dir}/${file})415 add_custom_command(OUTPUT ${dst}416 DEPENDS ${src}417 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}418 COMMENT "Copying clang's ${file}...")419 list(APPEND out_files ${dst})420 else()421 foreach(BUILD_MODE ${CMAKE_CONFIGURATION_TYPES})422 # Replace the special string with a per config directory.423 string(REPLACE ${CMAKE_CFG_INTDIR} ${BUILD_MODE} per_conf_output_dir ${output_dir})424 set(dst ${per_conf_output_dir}/${file})425 add_custom_command(OUTPUT ${dst}426 DEPENDS ${src}427 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}428 COMMENT "Copying clang's ${file}...")429 list(APPEND out_files ${dst})430 endforeach()431 endif()432 set(out_files ${out_files} PARENT_SCOPE)433endfunction(copy_header_to_output_dir)434 435function(clang_generate_header td_option td_file out_file)436 clang_tablegen(${out_file} ${td_option}437 -I ${CLANG_SOURCE_DIR}/include/clang/Basic/438 SOURCE ${CLANG_SOURCE_DIR}/include/clang/Basic/${td_file})439 440 copy_header_to_output_dir(${CMAKE_CURRENT_BINARY_DIR} ${out_file})441 set(out_files ${out_files} PARENT_SCOPE)442 list(APPEND generated_files "${CMAKE_CURRENT_BINARY_DIR}/${out_file}")443 set(generated_files ${generated_files} PARENT_SCOPE)444endfunction(clang_generate_header)445 446 447# Copy header files from the source directory to the build directory448foreach( f ${files} ${cuda_wrapper_files} ${cuda_wrapper_bits_files}449 ${cuda_wrapper_utility_files} ${ppc_wrapper_files} ${openmp_wrapper_files}450 ${zos_wrapper_files} ${hlsl_files} ${llvm_libc_wrapper_files}451 ${llvm_offload_wrapper_files})452 copy_header_to_output_dir(${CMAKE_CURRENT_SOURCE_DIR} ${f})453endforeach( f )454 455# Generate header files and copy them to the build directory456if(ARM IN_LIST LLVM_TARGETS_TO_BUILD OR AArch64 IN_LIST LLVM_TARGETS_TO_BUILD)457 # Generate arm_neon.h458 clang_generate_header(-gen-arm-neon arm_neon.td arm_neon.h)459 # Generate arm_fp16.h460 clang_generate_header(-gen-arm-fp16 arm_fp16.td arm_fp16.h)461 # Generate arm_sve.h462 clang_generate_header(-gen-arm-sve-header arm_sve.td arm_sve.h)463 # Generate arm_sme.h464 clang_generate_header(-gen-arm-sme-header arm_sme.td arm_sme.h)465 # Generate arm_bf16.h466 clang_generate_header(-gen-arm-bf16 arm_bf16.td arm_bf16.h)467 # Generate arm_mve.h468 clang_generate_header(-gen-arm-mve-header arm_mve.td arm_mve.h)469 # Generate arm_cde.h470 clang_generate_header(-gen-arm-cde-header arm_cde.td arm_cde.h)471 # Generate arm_vector_types.h472 clang_generate_header(-gen-arm-vector-type arm_neon.td arm_vector_types.h)473 474 # Add headers to target specific lists475 list(APPEND arm_common_generated_files476 "${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h"477 "${CMAKE_CURRENT_BINARY_DIR}/arm_fp16.h"478 )479 480 list(APPEND arm_only_generated_files481 "${CMAKE_CURRENT_BINARY_DIR}/arm_mve.h"482 "${CMAKE_CURRENT_BINARY_DIR}/arm_cde.h"483 )484 485 list(APPEND aarch64_only_generated_files486 "${CMAKE_CURRENT_BINARY_DIR}/arm_sve.h"487 "${CMAKE_CURRENT_BINARY_DIR}/arm_sme.h"488 "${CMAKE_CURRENT_BINARY_DIR}/arm_bf16.h"489 "${CMAKE_CURRENT_BINARY_DIR}/arm_vector_types.h"490 )491endif()492if(RISCV IN_LIST LLVM_TARGETS_TO_BUILD)493 # Generate riscv_vector.h494 clang_generate_header(-gen-riscv-vector-header riscv_vector.td riscv_vector.h)495 list(APPEND riscv_generated_files496 "${CMAKE_CURRENT_BINARY_DIR}/riscv_vector.h"497 )498endif()499 500 501# Check if the generated headers are included in a target specific lists502# Currently, all generated headers are target specific.503set(all_target_specific_generated_files504 ${arm_common_generated_files}505 ${arm_only_generated_files}506 ${aarch64_only_generated_files}507 ${riscv_generated_files})508foreach( f ${generated_files} )509 if (NOT ${f} IN_LIST all_target_specific_generated_files)510 message(WARNING "${f} is a generated header but it is not included in any "511 "target specific header lists! The resource-headers "512 "distribtion target will be incorrect!")513 endif()514endforeach( f )515 516function(add_header_target target_name file_list)517 add_library(${target_name} INTERFACE ${file_list})518 set_target_properties(${target_name} PROPERTIES519 FOLDER "Clang/Resources"520 RUNTIME_OUTPUT_DIRECTORY "${output_dir}")521endfunction()522 523# The catch-all clang-resource-headers target524add_library(clang-resource-headers INTERFACE ${out_files})525set_target_properties("clang-resource-headers" PROPERTIES526 FOLDER "Clang/Resources"527 RUNTIME_OUTPUT_DIRECTORY "${output_dir}")528add_dependencies("clang-resource-headers"529 "core-resource-headers"530 "arm-common-resource-headers"531 "arm-resource-headers"532 "aarch64-resource-headers"533 "cuda-resource-headers"534 "hexagon-resource-headers"535 "hip-resource-headers"536 "hlsl-resource-headers"537 "loongarch-resource-headers"538 "mips-resource-headers"539 "ppc-resource-headers"540 "ppc-htm-resource-headers"541 "riscv-resource-headers"542 "spirv-resource-headers"543 "systemz-resource-headers"544 "ve-resource-headers"545 "webassembly-resource-headers"546 "x86-resource-headers"547 "opencl-resource-headers"548 "openmp-resource-headers"549 "llvm-libc-resource-headers"550 "windows-resource-headers"551 "utility-resource-headers")552 553# Core/common headers554add_header_target("core-resource-headers" ${core_files})555add_header_target("arm-common-resource-headers" "${arm_common_files};${arm_common_generated_files}")556 557# Architecture/platform specific targets558add_header_target("arm-resource-headers" "${arm_only_files};${arm_only_generated_files}")559add_header_target("aarch64-resource-headers" "${aarch64_only_files};${aarch64_only_generated_files}")560add_header_target("cuda-resource-headers" "${cuda_files};${cuda_wrapper_files};${cuda_wrapper_bits_files};${cuda_wrapper_utility_files}")561add_header_target("hexagon-resource-headers" "${hexagon_files}")562add_header_target("hip-resource-headers" "${hip_files}")563add_header_target("loongarch-resource-headers" "${loongarch_files}")564add_header_target("mips-resource-headers" "${mips_msa_files}")565add_header_target("ppc-resource-headers" "${ppc_files};${ppc_wrapper_files}")566add_header_target("ppc-htm-resource-headers" "${ppc_htm_files}")567add_header_target("riscv-resource-headers" "${riscv_files};${riscv_generated_files}")568add_header_target("systemz-resource-headers" "${systemz_files};${zos_wrapper_files}")569add_header_target("ve-resource-headers" "${ve_files}")570add_header_target("webassembly-resource-headers" "${webassembly_files}")571add_header_target("x86-resource-headers" "${x86_files}")572add_header_target("gpu-resource-headers" "${gpu_files}")573 574# Other header groupings575add_header_target("hlsl-resource-headers" ${hlsl_files})576add_header_target("spirv-resource-headers" ${spirv_files})577add_header_target("opencl-resource-headers" ${opencl_files})578add_header_target("llvm-libc-resource-headers" ${llvm_libc_wrapper_files})579add_header_target("openmp-resource-headers" ${openmp_wrapper_files})580add_header_target("llvm-offload-resource-headers" ${llvm_libc_wrapper_files})581add_header_target("windows-resource-headers" ${windows_only_files})582add_header_target("utility-resource-headers" ${utility_files})583 584get_clang_resource_dir(header_install_dir SUBDIR include)585target_include_directories(clang-resource-headers INTERFACE586 $<BUILD_INTERFACE:${output_dir}>587 $<INSTALL_INTERFACE:${header_install_dir}>)588set_property(GLOBAL APPEND PROPERTY CLANG_EXPORTS clang-resource-headers)589 590#############################################################591# Install rules for the catch-all clang-resource-headers target592install(593 FILES ${files} ${generated_files}594 DESTINATION ${header_install_dir}595 COMPONENT clang-resource-headers)596 597install(598 FILES ${cuda_wrapper_files}599 DESTINATION ${header_install_dir}/cuda_wrappers600 COMPONENT clang-resource-headers)601 602install(603 FILES ${cuda_wrapper_bits_files}604 DESTINATION ${header_install_dir}/cuda_wrappers/bits605 COMPONENT clang-resource-headers)606 607install(608 FILES ${cuda_wrapper_utility_files}609 DESTINATION ${header_install_dir}/cuda_wrappers/__utility610 COMPONENT clang-resource-headers)611 612install(613 FILES ${ppc_wrapper_files}614 DESTINATION ${header_install_dir}/ppc_wrappers615 COMPONENT clang-resource-headers)616 617install(618 FILES ${llvm_libc_wrapper_files}619 DESTINATION ${header_install_dir}/llvm_libc_wrappers620 COMPONENT clang-resource-headers)621 622install(623 FILES ${openmp_wrapper_files}624 DESTINATION ${header_install_dir}/openmp_wrappers625 COMPONENT clang-resource-headers)626 627install(628 FILES ${llvm_offload_wrapper_files}629 DESTINATION ${header_install_dir}/llvm_offload_wrappers630 COMPONENT clang-resource-headers)631 632install(633 FILES ${zos_wrapper_files}634 DESTINATION ${header_install_dir}/zos_wrappers635 COMPONENT clang-resource-headers)636 637#############################################################638# Install rules for separate header lists639install(640 FILES ${core_files}641 DESTINATION ${header_install_dir}642 EXCLUDE_FROM_ALL643 COMPONENT core-resource-headers)644 645install(646 FILES ${arm_common_files} ${arm_common_generated_files}647 DESTINATION ${header_install_dir}648 EXCLUDE_FROM_ALL649 COMPONENT arm-common-resource-headers)650 651install(652 FILES ${arm_only_files} ${arm_only_generated_files}653 DESTINATION ${header_install_dir}654 EXCLUDE_FROM_ALL655 COMPONENT arm-resource-headers)656 657install(658 FILES ${aarch64_only_files} ${aarch64_only_generated_files}659 DESTINATION ${header_install_dir}660 EXCLUDE_FROM_ALL661 COMPONENT aarch64-resource-headers)662 663install(664 FILES ${cuda_wrapper_files}665 DESTINATION ${header_install_dir}/cuda_wrappers666 EXCLUDE_FROM_ALL667 COMPONENT cuda-resource-headers)668 669install(670 FILES ${cuda_wrapper_bits_files}671 DESTINATION ${header_install_dir}/cuda_wrappers/bits672 EXCLUDE_FROM_ALL673 COMPONENT cuda-resource-headers)674 675install(676 FILES ${cuda_wrapper_utility_files}677 DESTINATION ${header_install_dir}/cuda_wrappers/__utility678 EXCLUDE_FROM_ALL679 COMPONENT cuda-resource-headers)680 681install(682 FILES ${cuda_files}683 DESTINATION ${header_install_dir}684 EXCLUDE_FROM_ALL685 COMPONENT cuda-resource-headers)686 687install(688 FILES ${hexagon_files}689 DESTINATION ${header_install_dir}690 EXCLUDE_FROM_ALL691 COMPONENT hexagon-resource-headers)692 693install(694 FILES ${hip_files}695 DESTINATION ${header_install_dir}696 EXCLUDE_FROM_ALL697 COMPONENT hip-resource-headers)698 699install(700 FILES ${loongarch_files}701 DESTINATION ${header_install_dir}702 EXCLUDE_FROM_ALL703 COMPONENT loongarch-resource-headers)704 705install(706 FILES ${mips_msa_files}707 DESTINATION ${header_install_dir}708 EXCLUDE_FROM_ALL709 COMPONENT mips-resource-headers)710 711install(712 FILES ${ppc_wrapper_files}713 DESTINATION ${header_install_dir}/ppc_wrappers714 EXCLUDE_FROM_ALL715 COMPONENT ppc-resource-headers)716 717install(718 FILES ${ppc_files}719 DESTINATION ${header_install_dir}720 EXCLUDE_FROM_ALL721 COMPONENT ppc-resource-headers)722 723install(724 FILES ${ppc_htm_files}725 DESTINATION ${header_install_dir}726 EXCLUDE_FROM_ALL727 COMPONENT ppc-htm-resource-headers)728 729install(730 FILES ${riscv_generated_files}731 DESTINATION ${header_install_dir}732 EXCLUDE_FROM_ALL733 COMPONENT riscv-resource-headers)734 735install(736 FILES ${riscv_files}737 DESTINATION ${header_install_dir}738 EXCLUDE_FROM_ALL739 COMPONENT riscv-resource-headers)740 741install(742 FILES ${systemz_files}743 DESTINATION ${header_install_dir}744 EXCLUDE_FROM_ALL745 COMPONENT systemz-resource-headers)746 747install(748 FILES ${zos_wrapper_files}749 DESTINATION ${header_install_dir}/zos_wrappers750 EXCLUDE_FROM_ALL751 COMPONENT systemz-resource-headers)752 753install(754 FILES ${ve_files}755 DESTINATION ${header_install_dir}756 EXCLUDE_FROM_ALL757 COMPONENT ve-resource-headers)758 759install(760 FILES ${webassembly_files}761 DESTINATION ${header_install_dir}762 EXCLUDE_FROM_ALL763 COMPONENT webassembly-resource-headers)764 765install(766 FILES ${x86_files}767 DESTINATION ${header_install_dir}768 EXCLUDE_FROM_ALL769 COMPONENT x86-resource-headers)770 771install(772 FILES ${gpu_files}773 DESTINATION ${header_install_dir}774 EXCLUDE_FROM_ALL775 COMPONENT gpu-resource-headers)776 777if(NOT CLANG_ENABLE_HLSL)778 set(EXCLUDE_HLSL EXCLUDE_FROM_ALL)779endif()780 781install(782 FILES ${hlsl_h}783 DESTINATION ${header_install_dir}784 ${EXCLUDE_HLSL}785 COMPONENT hlsl-resource-headers)786 787install(788 FILES ${hlsl_subdir_files}789 DESTINATION ${header_install_dir}/hlsl790 ${EXCLUDE_HLSL}791 COMPONENT hlsl-resource-headers)792 793install(794 FILES ${spirv_files}795 DESTINATION ${header_install_dir}796 EXCLUDE_FROM_ALL797 COMPONENT spirv-resource-headers)798 799install(800 FILES ${opencl_files}801 DESTINATION ${header_install_dir}802 EXCLUDE_FROM_ALL803 COMPONENT opencl-resource-headers)804 805install(806 FILES ${openmp_wrapper_files}807 DESTINATION ${header_install_dir}/openmp_wrappers808 EXCLUDE_FROM_ALL809 COMPONENT openmp-resource-headers)810 811install(812 FILES ${llvm_offload_wrapper_files}813 DESTINATION ${header_install_dir}/llvm_offload_wrappers814 EXCLUDE_FROM_ALL815 COMPONENT openmp-resource-headers)816 817install(818 FILES ${utility_files}819 DESTINATION ${header_install_dir}820 EXCLUDE_FROM_ALL821 COMPONENT utility-resource-headers)822 823install(824 FILES ${windows_only_files}825 DESTINATION ${header_install_dir}826 EXCLUDE_FROM_ALL827 COMPONENT windows-resource-headers)828#############################################################829 830if (NOT LLVM_ENABLE_IDE)831 add_llvm_install_targets(install-clang-resource-headers832 DEPENDS clang-resource-headers833 COMPONENT clang-resource-headers)834 835 add_llvm_install_targets(install-core-resource-headers836 DEPENDS core-resource-headers837 COMPONENT core-resource-headers)838 add_llvm_install_targets(install-arm-common-resource-headers839 DEPENDS arm-common-resource-headers840 COMPONENT arm-common-resource-headers)841 add_llvm_install_targets(install-arm-resource-headers842 DEPENDS arm-resource-headers843 COMPONENT arm-resource-headers)844 add_llvm_install_targets(install-aarch64-resource-headers845 DEPENDS aarch64-resource-headers846 COMPONENT aarch64-resource-headers)847 add_llvm_install_targets(install-cuda-resource-headers848 DEPENDS cuda-resource-headers849 COMPONENT cuda-resource-headers)850 add_llvm_install_targets(install-hexagon-resource-headers851 DEPENDS hexagon-resource-headers852 COMPONENT hexagon-resource-headers)853 add_llvm_install_targets(install-hip-resource-headers854 DEPENDS hip-resource-headers855 COMPONENT hip-resource-headers)856 add_llvm_install_targets(install-mips-resource-headers857 DEPENDS mips-resource-headers858 COMPONENT mips-resource-headers)859 add_llvm_install_targets(install-ppc-resource-headers860 DEPENDS ppc-resource-headers861 COMPONENT ppc-resource-headers)862 add_llvm_install_targets(install-ppc-htm-resource-headers863 DEPENDS ppc-htm-resource-headers864 COMPONENT ppc-htm-resource-headers)865 add_llvm_install_targets(install-riscv-resource-headers866 DEPENDS riscv-resource-headers867 COMPONENT riscv-resource-headers)868 add_llvm_install_targets(install-spirv-resource-headers869 DEPENDS spirv-resource-headers870 COMPONENT spirv-resource-headers)871 add_llvm_install_targets(install-systemz-resource-headers872 DEPENDS systemz-resource-headers873 COMPONENT systemz-resource-headers)874 add_llvm_install_targets(install-ve-resource-headers875 DEPENDS ve-resource-headers876 COMPONENT ve-resource-headers)877 add_llvm_install_targets(install-x86-resource-headers878 DEPENDS x86-resource-headers879 COMPONENT x86-resource-headers)880 add_llvm_install_targets(install-webassembly-resource-headers881 DEPENDS webassembly-resource-headers882 COMPONENT webassembly-resource-headers)883 884 add_llvm_install_targets(install-hlsl-resource-headers885 DEPENDS hlsl-resource-headers886 COMPONENT hlsl-resource-headers)887 add_llvm_install_targets(install-opencl-resource-headers888 DEPENDS opencl-resource-headers889 COMPONENT opencl-resource-headers)890 add_llvm_install_targets(install-openmp-resource-headers891 DEPENDS openmp-resource-headers892 COMPONENT openmp-resource-headers)893 add_llvm_install_targets(install-windows-resource-headers894 DEPENDS windows-resource-headers895 COMPONENT windows-resource-headers)896 add_llvm_install_targets(install-utility-resource-headers897 DEPENDS utility-resource-headers898 COMPONENT utility-resource-headers)899endif()900 901source_group("Clang Runtime Headers" FILES ${files})902