blob: 22f2281f921983b20dd4bbc5ec184b60d365b769 [file] [log] [blame]
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +00001set(files
Chris Lattnerdad40622010-04-14 03:54:58 +00002 altivec.h
Bruno Cardoso Lopes7c4b5132010-08-04 22:03:36 +00003 avxintrin.h
Craig Topperdec792e2011-12-19 05:04:33 +00004 avx2intrin.h
NAKAMURA Takumidceeeb82011-12-25 12:47:46 +00005 bmiintrin.h
NAKAMURA Takumi9a3f2992011-12-26 03:20:06 +00006 bmi2intrin.h
Oscar Fuentes64015232011-02-27 13:33:31 +00007 emmintrin.h
8 float.h
Benjamin Kramer65b9f7b2010-08-20 18:04:07 +00009 immintrin.h
Oscar Fuentes64015232011-02-27 13:33:31 +000010 iso646.h
11 limits.h
NAKAMURA Takumidceeeb82011-12-25 12:47:46 +000012 lzcntintrin.h
Michael J. Spencer1737c9e2011-04-15 15:11:21 +000013 mm3dnow.h
Oscar Fuentes64015232011-02-27 13:33:31 +000014 mmintrin.h
15 mm_malloc.h
16 nmmintrin.h
17 pmmintrin.h
Richard Smith6b751dc2011-12-29 21:42:29 +000018 popcntintrin.h
Chris Lattner1b55b752010-08-20 17:24:02 +000019 smmintrin.h
Peter Collingbourne2f3cf4b2011-09-29 18:04:28 +000020 stdalign.h
Oscar Fuentes64015232011-02-27 13:33:31 +000021 stdarg.h
22 stdbool.h
23 stddef.h
24 stdint.h
Douglas Gregore1839932009-06-07 07:09:23 +000025 tgmath.h
26 tmmintrin.h
Oscar Fuentes64015232011-02-27 13:33:31 +000027 varargs.h
28 wmmintrin.h
29 x86intrin.h
30 xmmintrin.h
Rafael Espindola488ea472011-12-06 15:46:47 +000031 cpuid.h
Rafael Espindola18c79202011-12-08 05:01:39 +000032 unwind.h
Oscar Fuentes64015232011-02-27 13:33:31 +000033 )
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000034
Douglas Gregorc4a82182010-10-19 18:06:10 +000035set(output_dir ${LLVM_BINARY_DIR}/lib/clang/${CLANG_VERSION}/include)
Douglas Gregorbd829982010-10-11 23:17:59 +000036
37# If we are in an IDE that has a configuration directory, we need to
38# create a second copy of the headers so that 'clang' can find them if
39# it's run from the build directory.
40if(MSVC_IDE OR XCODE)
41 set(other_output_dir ${LLVM_BINARY_DIR}/bin/lib/clang/${CLANG_VERSION}/include)
42endif()
Douglas Gregor274a6b42009-06-16 20:13:51 +000043
Douglas Gregor1f1be082010-05-28 04:22:06 +000044# Generate arm_neon.h
Oscar Fuentes6f725402011-02-20 22:06:32 +000045clang_tablegen(arm_neon.h.inc -gen-arm-neon
46 SOURCE ${CLANG_SOURCE_DIR}/include/clang/Basic/arm_neon.td)
Douglas Gregor1f1be082010-05-28 04:22:06 +000047
Douglas Gregorbd829982010-10-11 23:17:59 +000048set(out_files)
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000049foreach( f ${files} )
50 set( src ${CMAKE_CURRENT_SOURCE_DIR}/${f} )
51 set( dst ${output_dir}/${f} )
52 add_custom_command(OUTPUT ${dst}
53 DEPENDS ${src}
54 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}
55 COMMENT "Copying clang's ${f}...")
Douglas Gregorbd829982010-10-11 23:17:59 +000056 list(APPEND out_files ${dst})
57
58 if(other_output_dir)
59 set(other_dst ${other_output_dir}/${f})
60 add_custom_command(OUTPUT ${other_dst}
61 DEPENDS ${src}
62 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${other_dst}
63 COMMENT "Copying clang's ${f}...")
64 list(APPEND out_files ${other_dst})
65 endif()
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000066endforeach( f )
67
Douglas Gregorbd829982010-10-11 23:17:59 +000068add_custom_command(OUTPUT ${output_dir}/arm_neon.h
69 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h.inc
70 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h.inc ${output_dir}/arm_neon.h
71 COMMENT "Copying clang's arm_neon.h...")
72list(APPEND out_files ${output_dir}/arm_neon.h)
73
74if (other_output_dir)
75 set(other_dst ${other_output_dir}/arm_neon.h)
76 add_custom_command(OUTPUT ${other_dst}
77 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h.inc
78 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h.inc ${other_dst}
79 COMMENT "Copying clang's arm_neon.h...")
80 list(APPEND out_files ${other_dst})
81endif ()
82
83add_custom_target(clang-headers ALL DEPENDS ${out_files})
Oscar Fuentes15fe1902011-02-20 22:06:44 +000084set_target_properties(clang-headers PROPERTIES FOLDER "Misc")
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000085
Douglas Gregor1f1be082010-05-28 04:22:06 +000086install(FILES ${files} ${output_dir}/arm_neon.h
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000087 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
Oscar Fuentes843c8282009-10-27 21:15:21 +000088 DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)