1set(files
2  adxintrin.h
3  altivec.h
4  ammintrin.h
5  arm_acle.h
6  avx2intrin.h
7  avx512bwintrin.h
8  avx512erintrin.h
9  avx512fintrin.h
10  avx512vlbwintrin.h
11  avx512vlintrin.h
12  avxintrin.h
13  bmi2intrin.h
14  bmiintrin.h
15  cpuid.h
16  emmintrin.h
17  f16cintrin.h
18  float.h
19  fma4intrin.h
20  fmaintrin.h
21  ia32intrin.h
22  immintrin.h
23  Intrin.h
24  iso646.h
25  limits.h
26  lzcntintrin.h
27  mm3dnow.h
28  mmintrin.h
29  mm_malloc.h
30  module.modulemap
31  nmmintrin.h
32  pmmintrin.h
33  popcntintrin.h
34  prfchwintrin.h
35  rdseedintrin.h
36  rtmintrin.h
37  shaintrin.h
38  smmintrin.h
39  stdalign.h
40  stdarg.h
41  stdatomic.h
42  stdbool.h
43  stddef.h
44  __stddef_max_align_t.h
45  stdint.h
46  stdnoreturn.h
47  tbmintrin.h
48  tgmath.h
49  tmmintrin.h
50  unwind.h
51  vadefs.h
52  varargs.h
53  __wmmintrin_aes.h
54  wmmintrin.h
55  __wmmintrin_pclmul.h
56  x86intrin.h
57  xmmintrin.h
58  xopintrin.h
59  )
60
61set(output_dir ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}/include)
62
63# Generate arm_neon.h
64clang_tablegen(arm_neon.h -gen-arm-neon
65  SOURCE ${CLANG_SOURCE_DIR}/include/clang/Basic/arm_neon.td)
66
67set(out_files)
68foreach( f ${files} )
69  set( src ${CMAKE_CURRENT_SOURCE_DIR}/${f} )
70  set( dst ${output_dir}/${f} )
71  add_custom_command(OUTPUT ${dst}
72    DEPENDS ${src}
73    COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}
74    COMMENT "Copying clang's ${f}...")
75  list(APPEND out_files ${dst})
76endforeach( f )
77
78add_custom_command(OUTPUT ${output_dir}/arm_neon.h
79  DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h
80  COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h ${output_dir}/arm_neon.h
81  COMMENT "Copying clang's arm_neon.h...")
82list(APPEND out_files ${output_dir}/arm_neon.h)
83
84add_custom_target(clang-headers ALL DEPENDS ${out_files})
85set_target_properties(clang-headers PROPERTIES FOLDER "Misc")
86
87install(
88  FILES ${files} ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h
89  PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
90  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
91