1set(files 2 adxintrin.h 3 altivec.h 4 ammintrin.h 5 arm_acle.h 6 avx2intrin.h 7 avx512bwintrin.h 8 avx512cdintrin.h 9 avx512dqintrin.h 10 avx512erintrin.h 11 avx512fintrin.h 12 avx512ifmaintrin.h 13 avx512ifmavlintrin.h 14 avx512pfintrin.h 15 avx512vbmiintrin.h 16 avx512vbmivlintrin.h 17 avx512vlbwintrin.h 18 avx512vlcdintrin.h 19 avx512vldqintrin.h 20 avx512vlintrin.h 21 avxintrin.h 22 bmi2intrin.h 23 bmiintrin.h 24 __clang_cuda_cmath.h 25 __clang_cuda_intrinsics.h 26 __clang_cuda_math_forward_declares.h 27 __clang_cuda_runtime_wrapper.h 28 cpuid.h 29 cuda_builtin_vars.h 30 clflushoptintrin.h 31 emmintrin.h 32 f16cintrin.h 33 float.h 34 fma4intrin.h 35 fmaintrin.h 36 fxsrintrin.h 37 htmintrin.h 38 htmxlintrin.h 39 ia32intrin.h 40 immintrin.h 41 intrin.h 42 inttypes.h 43 iso646.h 44 limits.h 45 lzcntintrin.h 46 mm3dnow.h 47 mmintrin.h 48 mm_malloc.h 49 module.modulemap 50 mwaitxintrin.h 51 nmmintrin.h 52 opencl-c.h 53 pkuintrin.h 54 pmmintrin.h 55 popcntintrin.h 56 prfchwintrin.h 57 rdseedintrin.h 58 rtmintrin.h 59 s390intrin.h 60 shaintrin.h 61 smmintrin.h 62 stdalign.h 63 stdarg.h 64 stdatomic.h 65 stdbool.h 66 stddef.h 67 __stddef_max_align_t.h 68 stdint.h 69 stdnoreturn.h 70 tbmintrin.h 71 tgmath.h 72 tmmintrin.h 73 unwind.h 74 vadefs.h 75 varargs.h 76 vecintrin.h 77 wmmintrin.h 78 __wmmintrin_aes.h 79 __wmmintrin_pclmul.h 80 x86intrin.h 81 xmmintrin.h 82 xopintrin.h 83 xsavecintrin.h 84 xsaveintrin.h 85 xsaveoptintrin.h 86 xsavesintrin.h 87 xtestintrin.h 88 ) 89 90set(output_dir ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}/include) 91 92# Generate arm_neon.h 93clang_tablegen(arm_neon.h -gen-arm-neon 94 SOURCE ${CLANG_SOURCE_DIR}/include/clang/Basic/arm_neon.td) 95 96set(out_files) 97foreach( f ${files} ) 98 set( src ${CMAKE_CURRENT_SOURCE_DIR}/${f} ) 99 set( dst ${output_dir}/${f} ) 100 add_custom_command(OUTPUT ${dst} 101 DEPENDS ${src} 102 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst} 103 COMMENT "Copying clang's ${f}...") 104 list(APPEND out_files ${dst}) 105endforeach( f ) 106 107add_custom_command(OUTPUT ${output_dir}/arm_neon.h 108 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h 109 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h ${output_dir}/arm_neon.h 110 COMMENT "Copying clang's arm_neon.h...") 111list(APPEND out_files ${output_dir}/arm_neon.h) 112 113add_custom_target(clang-headers ALL DEPENDS ${out_files}) 114set_target_properties(clang-headers PROPERTIES FOLDER "Misc") 115 116install( 117 FILES ${files} ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h 118 COMPONENT clang-headers 119 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ 120 DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include) 121 122if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDE's. 123 add_custom_target(install-clang-headers 124 DEPENDS clang-headers 125 COMMAND "${CMAKE_COMMAND}" 126 -DCMAKE_INSTALL_COMPONENT=clang-headers 127 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake") 128endif() 129