blob: ce9ec4920b9d2652c8746f075ee734123a8f051f [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
Chris Lattner1b55b752010-08-20 17:24:02 +000018 smmintrin.h
Peter Collingbourne2f3cf4b2011-09-29 18:04:28 +000019 stdalign.h
Oscar Fuentes64015232011-02-27 13:33:31 +000020 stdarg.h
21 stdbool.h
22 stddef.h
23 stdint.h
Douglas Gregore1839932009-06-07 07:09:23 +000024 tgmath.h
25 tmmintrin.h
Oscar Fuentes64015232011-02-27 13:33:31 +000026 varargs.h
27 wmmintrin.h
28 x86intrin.h
29 xmmintrin.h
Rafael Espindola488ea472011-12-06 15:46:47 +000030 cpuid.h
Rafael Espindola18c79202011-12-08 05:01:39 +000031 unwind.h
Oscar Fuentes64015232011-02-27 13:33:31 +000032 )
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000033
Douglas Gregorc4a82182010-10-19 18:06:10 +000034set(output_dir ${LLVM_BINARY_DIR}/lib/clang/${CLANG_VERSION}/include)
Douglas Gregorbd829982010-10-11 23:17:59 +000035
36# If we are in an IDE that has a configuration directory, we need to
37# create a second copy of the headers so that 'clang' can find them if
38# it's run from the build directory.
39if(MSVC_IDE OR XCODE)
40 set(other_output_dir ${LLVM_BINARY_DIR}/bin/lib/clang/${CLANG_VERSION}/include)
41endif()
Douglas Gregor274a6b42009-06-16 20:13:51 +000042
Douglas Gregor1f1be082010-05-28 04:22:06 +000043# Generate arm_neon.h
Oscar Fuentes6f725402011-02-20 22:06:32 +000044clang_tablegen(arm_neon.h.inc -gen-arm-neon
45 SOURCE ${CLANG_SOURCE_DIR}/include/clang/Basic/arm_neon.td)
Douglas Gregor1f1be082010-05-28 04:22:06 +000046
Douglas Gregorbd829982010-10-11 23:17:59 +000047set(out_files)
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000048foreach( f ${files} )
49 set( src ${CMAKE_CURRENT_SOURCE_DIR}/${f} )
50 set( dst ${output_dir}/${f} )
51 add_custom_command(OUTPUT ${dst}
52 DEPENDS ${src}
53 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}
54 COMMENT "Copying clang's ${f}...")
Douglas Gregorbd829982010-10-11 23:17:59 +000055 list(APPEND out_files ${dst})
56
57 if(other_output_dir)
58 set(other_dst ${other_output_dir}/${f})
59 add_custom_command(OUTPUT ${other_dst}
60 DEPENDS ${src}
61 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${other_dst}
62 COMMENT "Copying clang's ${f}...")
63 list(APPEND out_files ${other_dst})
64 endif()
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000065endforeach( f )
66
Douglas Gregorbd829982010-10-11 23:17:59 +000067add_custom_command(OUTPUT ${output_dir}/arm_neon.h
68 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h.inc
69 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h.inc ${output_dir}/arm_neon.h
70 COMMENT "Copying clang's arm_neon.h...")
71list(APPEND out_files ${output_dir}/arm_neon.h)
72
73if (other_output_dir)
74 set(other_dst ${other_output_dir}/arm_neon.h)
75 add_custom_command(OUTPUT ${other_dst}
76 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h.inc
77 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h.inc ${other_dst}
78 COMMENT "Copying clang's arm_neon.h...")
79 list(APPEND out_files ${other_dst})
80endif ()
81
82add_custom_target(clang-headers ALL DEPENDS ${out_files})
Oscar Fuentes15fe1902011-02-20 22:06:44 +000083set_target_properties(clang-headers PROPERTIES FOLDER "Misc")
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000084
Douglas Gregor1f1be082010-05-28 04:22:06 +000085install(FILES ${files} ${output_dir}/arm_neon.h
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000086 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
Oscar Fuentes843c8282009-10-27 21:15:21 +000087 DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)