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