• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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