# core_files list contains the headers shared by all platforms. # Please consider adding new platform specific headers # to platform specific lists below. set(core_files builtins.h float.h inttypes.h iso646.h limits.h module.modulemap stdalign.h stdarg.h __stdarg___gnuc_va_list.h __stdarg___va_copy.h __stdarg_header_macro.h __stdarg_va_arg.h __stdarg_va_copy.h __stdarg_va_list.h stdatomic.h stdbool.h stdckdint.h stddef.h __stddef_header_macro.h __stddef_max_align_t.h __stddef_null.h __stddef_nullptr_t.h __stddef_offsetof.h __stddef_ptrdiff_t.h __stddef_rsize_t.h __stddef_size_t.h __stddef_unreachable.h __stddef_wchar_t.h __stddef_wint_t.h stdint.h stdnoreturn.h tgmath.h unwind.h varargs.h ) set(arm_common_files # Headers shared by Arm and AArch64 arm_acle.h ) set(arm_only_files arm_cmse.h armintr.h ) set(aarch64_only_files arm64intr.h arm_neon_sve_bridge.h ) set(cuda_files __clang_cuda_builtin_vars.h __clang_cuda_math.h __clang_cuda_cmath.h __clang_cuda_complex_builtins.h __clang_cuda_device_functions.h __clang_cuda_intrinsics.h __clang_cuda_texture_intrinsics.h __clang_cuda_libdevice_declares.h __clang_cuda_math_forward_declares.h __clang_cuda_runtime_wrapper.h ) set(hexagon_files hexagon_circ_brev_intrinsics.h hexagon_protos.h hexagon_types.h hvx_hexagon_protos.h ) set(hip_files __clang_hip_libdevice_declares.h __clang_hip_cmath.h __clang_hip_math.h __clang_hip_stdlib.h __clang_hip_runtime_wrapper.h ) set(hlsl_h hlsl.h ) set(hlsl_subdir_files hlsl/hlsl_basic_types.h hlsl/hlsl_intrinsics.h hlsl/hlsl_detail.h ) set(hlsl_files ${hlsl_h} ${hlsl_subdir_files} ) set(loongarch_files larchintrin.h lasxintrin.h lsxintrin.h ) set(mips_msa_files msa.h ) set(opencl_files opencl-c.h opencl-c-base.h ) set(ppc_files altivec.h ) set(ppc_htm_files htmintrin.h htmxlintrin.h ) set(riscv_files riscv_bitmanip.h riscv_corev_alu.h riscv_crypto.h riscv_ntlh.h sifive_vector.h ) set(systemz_files s390intrin.h vecintrin.h ) set(ve_files velintrin.h velintrin_gen.h velintrin_approx.h ) set(webassembly_files wasm_simd128.h ) set(x86_files # Intrinsics adcintrin.h adxintrin.h ammintrin.h amxavx512intrin.h amxbf16transposeintrin.h amxcomplexintrin.h amxcomplextransposeintrin.h amxfp16intrin.h amxfp16transposeintrin.h amxfp8intrin.h amxintrin.h amxmovrsintrin.h amxmovrstransposeintrin.h amxtf32intrin.h amxtf32transposeintrin.h amxtransposeintrin.h avx10_2_512bf16intrin.h avx10_2_512convertintrin.h avx10_2_512minmaxintrin.h avx10_2_512niintrin.h avx10_2_512satcvtdsintrin.h avx10_2_512satcvtintrin.h avx10_2bf16intrin.h avx10_2convertintrin.h avx10_2copyintrin.h avx10_2minmaxintrin.h avx10_2niintrin.h avx10_2satcvtdsintrin.h avx10_2satcvtintrin.h avx2intrin.h avx512bf16intrin.h avx512bitalgintrin.h avx512bwintrin.h avx512cdintrin.h avx512dqintrin.h avx512fintrin.h avx512fp16intrin.h avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmi2intrin.h avx512vbmiintrin.h avx512vbmivlintrin.h avx512vlbf16intrin.h avx512vlbitalgintrin.h avx512vlbwintrin.h avx512vlcdintrin.h avx512vldqintrin.h avx512vlfp16intrin.h avx512vlintrin.h avx512vlvbmi2intrin.h avx512vlvnniintrin.h avx512vlvp2intersectintrin.h avx512vnniintrin.h avx512vp2intersectintrin.h avx512vpopcntdqintrin.h avx512vpopcntdqvlintrin.h avxifmaintrin.h avxintrin.h avxneconvertintrin.h avxvnniint16intrin.h avxvnniint8intrin.h avxvnniintrin.h bmi2intrin.h bmiintrin.h cetintrin.h cldemoteintrin.h clflushoptintrin.h clwbintrin.h clzerointrin.h cmpccxaddintrin.h crc32intrin.h emmintrin.h enqcmdintrin.h f16cintrin.h fma4intrin.h fmaintrin.h fxsrintrin.h gfniintrin.h hresetintrin.h ia32intrin.h immintrin.h invpcidintrin.h keylockerintrin.h lwpintrin.h lzcntintrin.h mm3dnow.h mmintrin.h movdirintrin.h movrs_avx10_2_512intrin.h movrs_avx10_2intrin.h movrsintrin.h mwaitxintrin.h nmmintrin.h pconfigintrin.h pkuintrin.h pmmintrin.h popcntintrin.h prfchiintrin.h prfchwintrin.h ptrauth.h ptwriteintrin.h raointintrin.h rdpruintrin.h rdseedintrin.h rtmintrin.h serializeintrin.h sgxintrin.h sha512intrin.h shaintrin.h sm3intrin.h sm4intrin.h sm4evexintrin.h smmintrin.h tbmintrin.h tmmintrin.h tsxldtrkintrin.h uintrintrin.h usermsrintrin.h vaesintrin.h vpclmulqdqintrin.h waitpkgintrin.h wbnoinvdintrin.h __wmmintrin_aes.h wmmintrin.h __wmmintrin_pclmul.h x86gprintrin.h x86intrin.h xmmintrin.h xopintrin.h xsavecintrin.h xsaveintrin.h xsaveoptintrin.h xsavesintrin.h xtestintrin.h # others cet.h cpuid.h ) set(gpu_files gpuintrin.h nvptxintrin.h amdgpuintrin.h ) set(windows_only_files intrin0.h intrin.h vadefs.h yvals_core.h ) set(utility_files mm_malloc.h ) set(files ${core_files} ${arm_common_files} ${arm_only_files} ${aarch64_only_files} ${cuda_files} ${hexagon_files} ${hip_files} ${loongarch_files} ${mips_msa_files} ${opencl_files} ${ppc_files} ${ppc_htm_files} ${riscv_files} ${systemz_files} ${ve_files} ${x86_files} ${gpu_files} ${webassembly_files} ${windows_only_files} ${utility_files} ) set(cuda_wrapper_files cuda_wrappers/algorithm cuda_wrappers/cmath cuda_wrappers/complex cuda_wrappers/new ) set(cuda_wrapper_bits_files cuda_wrappers/bits/shared_ptr_base.h cuda_wrappers/bits/basic_string.h cuda_wrappers/bits/basic_string.tcc ) set(ppc_wrapper_files ppc_wrappers/mmintrin.h ppc_wrappers/xmmintrin.h ppc_wrappers/mm_malloc.h ppc_wrappers/emmintrin.h ppc_wrappers/pmmintrin.h ppc_wrappers/tmmintrin.h ppc_wrappers/smmintrin.h ppc_wrappers/nmmintrin.h ppc_wrappers/bmiintrin.h ppc_wrappers/bmi2intrin.h ppc_wrappers/immintrin.h ppc_wrappers/x86intrin.h ppc_wrappers/x86gprintrin.h ) set(openmp_wrapper_files openmp_wrappers/math.h openmp_wrappers/cmath # Due to a bug in CMake, `complex` must be before `complex.h` # See: https://gitlab.kitware.com/cmake/cmake/-/issues/26058 openmp_wrappers/complex openmp_wrappers/complex.h openmp_wrappers/__clang_openmp_device_functions.h openmp_wrappers/complex_cmath.h openmp_wrappers/new ) set(llvm_offload_wrapper_files llvm_offload_wrappers/__llvm_offload.h llvm_offload_wrappers/__llvm_offload_host.h llvm_offload_wrappers/__llvm_offload_device.h ) set(llvm_libc_wrapper_files llvm_libc_wrappers/assert.h llvm_libc_wrappers/stdio.h llvm_libc_wrappers/stdlib.h llvm_libc_wrappers/string.h llvm_libc_wrappers/ctype.h llvm_libc_wrappers/inttypes.h llvm_libc_wrappers/time.h ) set(zos_wrapper_files zos_wrappers/builtins.h ) include(GetClangResourceDir) get_clang_resource_dir(output_dir PREFIX ${LLVM_LIBRARY_OUTPUT_INTDIR}/.. SUBDIR include) set(out_files) set(generated_files) set(arm_common_generated_files) set(arm_only_generated_files) set(aarch64_only_generated_files) set(riscv_generated_files) function(copy_header_to_output_dir src_dir file) set(src ${src_dir}/${file}) set(dst ${output_dir}/${file}) add_custom_command(OUTPUT ${dst} DEPENDS ${src} COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst} COMMENT "Copying clang's ${file}...") list(APPEND out_files ${dst}) set(out_files ${out_files} PARENT_SCOPE) endfunction(copy_header_to_output_dir) function(clang_generate_header td_option td_file out_file) clang_tablegen(${out_file} ${td_option} -I ${CLANG_SOURCE_DIR}/include/clang/Basic/ SOURCE ${CLANG_SOURCE_DIR}/include/clang/Basic/${td_file}) copy_header_to_output_dir(${CMAKE_CURRENT_BINARY_DIR} ${out_file}) set(out_files ${out_files} PARENT_SCOPE) list(APPEND generated_files "${CMAKE_CURRENT_BINARY_DIR}/${out_file}") set(generated_files ${generated_files} PARENT_SCOPE) endfunction(clang_generate_header) # Copy header files from the source directory to the build directory foreach( f ${files} ${cuda_wrapper_files} ${cuda_wrapper_bits_files} ${ppc_wrapper_files} ${openmp_wrapper_files} ${zos_wrapper_files} ${hlsl_files} ${llvm_libc_wrapper_files} ${llvm_offload_wrapper_files}) copy_header_to_output_dir(${CMAKE_CURRENT_SOURCE_DIR} ${f}) endforeach( f ) # Generate header files and copy them to the build directory if(ARM IN_LIST LLVM_TARGETS_TO_BUILD OR AArch64 IN_LIST LLVM_TARGETS_TO_BUILD) # Generate arm_neon.h clang_generate_header(-gen-arm-neon arm_neon.td arm_neon.h) # Generate arm_fp16.h clang_generate_header(-gen-arm-fp16 arm_fp16.td arm_fp16.h) # Generate arm_sve.h clang_generate_header(-gen-arm-sve-header arm_sve.td arm_sve.h) # Generate arm_sme.h clang_generate_header(-gen-arm-sme-header arm_sme.td arm_sme.h) # Generate arm_bf16.h clang_generate_header(-gen-arm-bf16 arm_bf16.td arm_bf16.h) # Generate arm_mve.h clang_generate_header(-gen-arm-mve-header arm_mve.td arm_mve.h) # Generate arm_cde.h clang_generate_header(-gen-arm-cde-header arm_cde.td arm_cde.h) # Generate arm_vector_types.h clang_generate_header(-gen-arm-vector-type arm_neon.td arm_vector_types.h) # Add headers to target specific lists list(APPEND arm_common_generated_files "${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h" "${CMAKE_CURRENT_BINARY_DIR}/arm_fp16.h" ) list(APPEND arm_only_generated_files "${CMAKE_CURRENT_BINARY_DIR}/arm_mve.h" "${CMAKE_CURRENT_BINARY_DIR}/arm_cde.h" ) list(APPEND aarch64_only_generated_files "${CMAKE_CURRENT_BINARY_DIR}/arm_sve.h" "${CMAKE_CURRENT_BINARY_DIR}/arm_sme.h" "${CMAKE_CURRENT_BINARY_DIR}/arm_bf16.h" "${CMAKE_CURRENT_BINARY_DIR}/arm_vector_types.h" ) endif() if(RISCV IN_LIST LLVM_TARGETS_TO_BUILD) # Generate riscv_vector.h clang_generate_header(-gen-riscv-vector-header riscv_vector.td riscv_vector.h) list(APPEND riscv_generated_files "${CMAKE_CURRENT_BINARY_DIR}/riscv_vector.h" ) endif() # Check if the generated headers are included in a target specific lists # Currently, all generated headers are target specific. set(all_target_specific_generated_files ${arm_common_generated_files} ${arm_only_generated_files} ${aarch64_only_generated_files} ${riscv_generated_files}) foreach( f ${generated_files} ) if (NOT ${f} IN_LIST all_target_specific_generated_files) message(WARNING "${f} is a generated header but it is not included in any " "target specific header lists! The resource-headers " "distribtion target will be incorrect!") endif() endforeach( f ) function(add_header_target target_name file_list) add_library(${target_name} INTERFACE ${file_list}) set_target_properties(${target_name} PROPERTIES FOLDER "Clang/Resources" RUNTIME_OUTPUT_DIRECTORY "${output_dir}") endfunction() # The catch-all clang-resource-headers target add_library(clang-resource-headers INTERFACE ${out_files}) set_target_properties("clang-resource-headers" PROPERTIES FOLDER "Clang/Resources" RUNTIME_OUTPUT_DIRECTORY "${output_dir}") add_dependencies("clang-resource-headers" "core-resource-headers" "arm-common-resource-headers" "arm-resource-headers" "aarch64-resource-headers" "cuda-resource-headers" "hexagon-resource-headers" "hip-resource-headers" "hlsl-resource-headers" "loongarch-resource-headers" "mips-resource-headers" "ppc-resource-headers" "ppc-htm-resource-headers" "riscv-resource-headers" "systemz-resource-headers" "ve-resource-headers" "webassembly-resource-headers" "x86-resource-headers" "opencl-resource-headers" "openmp-resource-headers" "llvm-libc-resource-headers" "windows-resource-headers" "utility-resource-headers") # Core/common headers add_header_target("core-resource-headers" ${core_files}) add_header_target("arm-common-resource-headers" "${arm_common_files};${arm_common_generated_files}") # Architecture/platform specific targets add_header_target("arm-resource-headers" "${arm_only_files};${arm_only_generated_files}") add_header_target("aarch64-resource-headers" "${aarch64_only_files};${aarch64_only_generated_files}") add_header_target("cuda-resource-headers" "${cuda_files};${cuda_wrapper_files};${cuda_wrapper_bits_files}") add_header_target("hexagon-resource-headers" "${hexagon_files}") add_header_target("hip-resource-headers" "${hip_files}") add_header_target("loongarch-resource-headers" "${loongarch_files}") add_header_target("mips-resource-headers" "${mips_msa_files}") add_header_target("ppc-resource-headers" "${ppc_files};${ppc_wrapper_files}") add_header_target("ppc-htm-resource-headers" "${ppc_htm_files}") add_header_target("riscv-resource-headers" "${riscv_files};${riscv_generated_files}") add_header_target("systemz-resource-headers" "${systemz_files};${zos_wrapper_files}") add_header_target("ve-resource-headers" "${ve_files}") add_header_target("webassembly-resource-headers" "${webassembly_files}") add_header_target("x86-resource-headers" "${x86_files}") add_header_target("gpu-resource-headers" "${gpu_files}") # Other header groupings add_header_target("hlsl-resource-headers" ${hlsl_files}) add_header_target("opencl-resource-headers" ${opencl_files}) add_header_target("llvm-libc-resource-headers" ${llvm_libc_wrapper_files}) add_header_target("openmp-resource-headers" ${openmp_wrapper_files}) add_header_target("llvm-offload-resource-headers" ${llvm_libc_wrapper_files}) add_header_target("windows-resource-headers" ${windows_only_files}) add_header_target("utility-resource-headers" ${utility_files}) get_clang_resource_dir(header_install_dir SUBDIR include) target_include_directories(clang-resource-headers INTERFACE $ $) set_property(GLOBAL APPEND PROPERTY CLANG_EXPORTS clang-resource-headers) ############################################################# # Install rules for the catch-all clang-resource-headers target install( FILES ${files} ${generated_files} DESTINATION ${header_install_dir} COMPONENT clang-resource-headers) install( FILES ${cuda_wrapper_files} DESTINATION ${header_install_dir}/cuda_wrappers COMPONENT clang-resource-headers) install( FILES ${cuda_wrapper_bits_files} DESTINATION ${header_install_dir}/cuda_wrappers/bits COMPONENT clang-resource-headers) install( FILES ${ppc_wrapper_files} DESTINATION ${header_install_dir}/ppc_wrappers COMPONENT clang-resource-headers) install( FILES ${llvm_libc_wrapper_files} DESTINATION ${header_install_dir}/llvm_libc_wrappers COMPONENT clang-resource-headers) install( FILES ${openmp_wrapper_files} DESTINATION ${header_install_dir}/openmp_wrappers COMPONENT clang-resource-headers) install( FILES ${llvm_offload_wrapper_files} DESTINATION ${header_install_dir}/llvm_offload_wrappers COMPONENT clang-resource-headers) install( FILES ${zos_wrapper_files} DESTINATION ${header_install_dir}/zos_wrappers COMPONENT clang-resource-headers) ############################################################# # Install rules for separate header lists install( FILES ${core_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT core-resource-headers) install( FILES ${arm_common_files} ${arm_common_generated_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT arm-common-resource-headers) install( FILES ${arm_only_files} ${arm_only_generated_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT arm-resource-headers) install( FILES ${aarch64_only_files} ${aarch64_only_generated_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT aarch64-resource-headers) install( FILES ${cuda_wrapper_files} DESTINATION ${header_install_dir}/cuda_wrappers EXCLUDE_FROM_ALL COMPONENT cuda-resource-headers) install( FILES ${cuda_wrapper_bits_files} DESTINATION ${header_install_dir}/cuda_wrappers/bits EXCLUDE_FROM_ALL COMPONENT cuda-resource-headers) install( FILES ${cuda_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT cuda-resource-headers) install( FILES ${hexagon_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT hexagon-resource-headers) install( FILES ${hip_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT hip-resource-headers) install( FILES ${loongarch_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT loongarch-resource-headers) install( FILES ${mips_msa_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT mips-resource-headers) install( FILES ${ppc_wrapper_files} DESTINATION ${header_install_dir}/ppc_wrappers EXCLUDE_FROM_ALL COMPONENT ppc-resource-headers) install( FILES ${ppc_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT ppc-resource-headers) install( FILES ${ppc_htm_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT ppc-htm-resource-headers) install( FILES ${riscv_generated_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT riscv-resource-headers) install( FILES ${riscv_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT riscv-resource-headers) install( FILES ${systemz_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT systemz-resource-headers) install( FILES ${zos_wrapper_files} DESTINATION ${header_install_dir}/zos_wrappers EXCLUDE_FROM_ALL COMPONENT systemz-resource-headers) install( FILES ${ve_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT ve-resource-headers) install( FILES ${webassembly_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT webassembly-resource-headers) install( FILES ${x86_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT x86-resource-headers) install( FILES ${gpu_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT gpu-resource-headers) if(NOT CLANG_ENABLE_HLSL) set(EXCLUDE_HLSL EXCLUDE_FROM_ALL) endif() install( FILES ${hlsl_h} DESTINATION ${header_install_dir} ${EXCLUDE_HLSL} COMPONENT hlsl-resource-headers) install( FILES ${hlsl_subdir_files} DESTINATION ${header_install_dir}/hlsl ${EXCLUDE_HLSL} COMPONENT hlsl-resource-headers) install( FILES ${opencl_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT opencl-resource-headers) install( FILES ${openmp_wrapper_files} DESTINATION ${header_install_dir}/openmp_wrappers EXCLUDE_FROM_ALL COMPONENT openmp-resource-headers) install( FILES ${llvm_offload_wrapper_files} DESTINATION ${header_install_dir}/llvm_offload_wrappers EXCLUDE_FROM_ALL COMPONENT openmp-resource-headers) install( FILES ${utility_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT utility-resource-headers) install( FILES ${windows_only_files} DESTINATION ${header_install_dir} EXCLUDE_FROM_ALL COMPONENT windows-resource-headers) ############################################################# if (NOT LLVM_ENABLE_IDE) add_llvm_install_targets(install-clang-resource-headers DEPENDS clang-resource-headers COMPONENT clang-resource-headers) add_llvm_install_targets(install-core-resource-headers DEPENDS core-resource-headers COMPONENT core-resource-headers) add_llvm_install_targets(install-arm-common-resource-headers DEPENDS arm-common-resource-headers COMPONENT arm-common-resource-headers) add_llvm_install_targets(install-arm-resource-headers DEPENDS arm-resource-headers COMPONENT arm-resource-headers) add_llvm_install_targets(install-aarch64-resource-headers DEPENDS aarch64-resource-headers COMPONENT aarch64-resource-headers) add_llvm_install_targets(install-cuda-resource-headers DEPENDS cuda-resource-headers COMPONENT cuda-resource-headers) add_llvm_install_targets(install-hexagon-resource-headers DEPENDS hexagon-resource-headers COMPONENT hexagon-resource-headers) add_llvm_install_targets(install-hip-resource-headers DEPENDS hip-resource-headers COMPONENT hip-resource-headers) add_llvm_install_targets(install-mips-resource-headers DEPENDS mips-resource-headers COMPONENT mips-resource-headers) add_llvm_install_targets(install-ppc-resource-headers DEPENDS ppc-resource-headers COMPONENT ppc-resource-headers) add_llvm_install_targets(install-ppc-htm-resource-headers DEPENDS ppc-htm-resource-headers COMPONENT ppc-htm-resource-headers) add_llvm_install_targets(install-riscv-resource-headers DEPENDS riscv-resource-headers COMPONENT riscv-resource-headers) add_llvm_install_targets(install-systemz-resource-headers DEPENDS systemz-resource-headers COMPONENT systemz-resource-headers) add_llvm_install_targets(install-ve-resource-headers DEPENDS ve-resource-headers COMPONENT ve-resource-headers) add_llvm_install_targets(install-x86-resource-headers DEPENDS x86-resource-headers COMPONENT x86-resource-headers) add_llvm_install_targets(install-webassembly-resource-headers DEPENDS webassembly-resource-headers COMPONENT webassembly-resource-headers) add_llvm_install_targets(install-hlsl-resource-headers DEPENDS hlsl-resource-headers COMPONENT hlsl-resource-headers) add_llvm_install_targets(install-opencl-resource-headers DEPENDS opencl-resource-headers COMPONENT opencl-resource-headers) add_llvm_install_targets(install-openmp-resource-headers DEPENDS openmp-resource-headers COMPONENT openmp-resource-headers) add_llvm_install_targets(install-windows-resource-headers DEPENDS windows-resource-headers COMPONENT windows-resource-headers) add_llvm_install_targets(install-utility-resource-headers DEPENDS utility-resource-headers COMPONENT utility-resource-headers) endif() source_group("Clang Runtime Headers" FILES ${files})