• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1set(files
2  altivec.h
3  ammintrin.h
4  avxintrin.h
5  avx2intrin.h
6  bmiintrin.h
7  bmi2intrin.h
8  emmintrin.h
9  float.h
10  fma4intrin.h
11  fmaintrin.h
12  immintrin.h
13  iso646.h
14  limits.h
15  lzcntintrin.h
16  mm3dnow.h
17  mmintrin.h
18  mm_malloc.h
19  nmmintrin.h
20  pmmintrin.h
21  popcntintrin.h
22  smmintrin.h
23  stdalign.h
24  stdarg.h
25  stdbool.h
26  stddef.h
27  stdint.h
28  tgmath.h
29  tmmintrin.h
30  varargs.h
31  wmmintrin.h
32  x86intrin.h
33  xmmintrin.h
34  xopintrin.h
35  cpuid.h
36  unwind.h
37  module.map
38  )
39
40set(output_dir ${LLVM_BINARY_DIR}/lib/clang/${CLANG_VERSION}/include)
41
42# If we are in an IDE that has a configuration directory, we need to
43# create a second copy of the headers so that 'clang' can find them if
44# it's run from the build directory.
45if(MSVC_IDE OR XCODE)
46   set(other_output_dir ${LLVM_BINARY_DIR}/bin/lib/clang/${CLANG_VERSION}/include)
47endif()
48
49# Generate arm_neon.h
50clang_tablegen(arm_neon.h.inc -gen-arm-neon
51  SOURCE ${CLANG_SOURCE_DIR}/include/clang/Basic/arm_neon.td)
52
53set(out_files)
54foreach( f ${files} )
55  set( src ${CMAKE_CURRENT_SOURCE_DIR}/${f} )
56  set( dst ${output_dir}/${f} )
57  add_custom_command(OUTPUT ${dst}
58    DEPENDS ${src}
59    COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}
60    COMMENT "Copying clang's ${f}...")
61  list(APPEND out_files ${dst})
62
63  if(other_output_dir)
64   set(other_dst ${other_output_dir}/${f})
65    add_custom_command(OUTPUT ${other_dst}
66      DEPENDS ${src}
67      COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${other_dst}
68      COMMENT "Copying clang's ${f}...")
69    list(APPEND out_files ${other_dst})
70  endif()
71endforeach( f )
72
73add_custom_command(OUTPUT ${output_dir}/arm_neon.h
74  DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h.inc
75  COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h.inc ${output_dir}/arm_neon.h
76  COMMENT "Copying clang's arm_neon.h...")
77list(APPEND out_files ${output_dir}/arm_neon.h)
78
79if (other_output_dir)
80    set(other_dst ${other_output_dir}/arm_neon.h)
81    add_custom_command(OUTPUT ${other_dst}
82      DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h.inc
83      COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h.inc ${other_dst}
84      COMMENT "Copying clang's arm_neon.h...")
85    list(APPEND out_files ${other_dst})
86endif ()
87
88add_custom_target(clang-headers ALL DEPENDS ${out_files})
89set_target_properties(clang-headers PROPERTIES FOLDER "Misc")
90
91install(FILES ${files} ${output_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