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  htmintrin.h
22  htmxlintrin.h
23  ia32intrin.h
24  immintrin.h
25  Intrin.h
26  iso646.h
27  limits.h
28  lzcntintrin.h
29  mm3dnow.h
30  mmintrin.h
31  mm_malloc.h
32  module.modulemap
33  nmmintrin.h
34  pmmintrin.h
35  popcntintrin.h
36  prfchwintrin.h
37  rdseedintrin.h
38  rtmintrin.h
39  s390intrin.h
40  shaintrin.h
41  smmintrin.h
42  stdalign.h
43  stdarg.h
44  stdatomic.h
45  stdbool.h
46  stddef.h
47  __stddef_max_align_t.h
48  stdint.h
49  stdnoreturn.h
50  tbmintrin.h
51  tgmath.h
52  tmmintrin.h
53  unwind.h
54  vadefs.h
55  varargs.h
56  __wmmintrin_aes.h
57  wmmintrin.h
58  __wmmintrin_pclmul.h
59  x86intrin.h
60  xmmintrin.h
61  xopintrin.h
62  )
63
64set(output_dir ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}/include)
65
66# Generate arm_neon.h
67clang_tablegen(arm_neon.h -gen-arm-neon
68  SOURCE ${CLANG_SOURCE_DIR}/include/clang/Basic/arm_neon.td)
69
70set(out_files)
71foreach( f ${files} )
72  set( src ${CMAKE_CURRENT_SOURCE_DIR}/${f} )
73  set( dst ${output_dir}/${f} )
74  add_custom_command(OUTPUT ${dst}
75    DEPENDS ${src}
76    COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}
77    COMMENT "Copying clang's ${f}...")
78  list(APPEND out_files ${dst})
79endforeach( f )
80
81add_custom_command(OUTPUT ${output_dir}/arm_neon.h
82  DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h
83  COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h ${output_dir}/arm_neon.h
84  COMMENT "Copying clang's arm_neon.h...")
85list(APPEND out_files ${output_dir}/arm_neon.h)
86
87add_custom_target(clang-headers ALL DEPENDS ${out_files})
88set_target_properties(clang-headers PROPERTIES FOLDER "Misc")
89
90install(
91  FILES ${files} ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h
92  PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
93  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
94