blob: df002fecaf33b58d8588f12f27b5486161de4b0f [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
Oscar Fuentes64015232011-02-27 13:33:31 +00006 emmintrin.h
7 float.h
Benjamin Kramer65b9f7b2010-08-20 18:04:07 +00008 immintrin.h
Oscar Fuentes64015232011-02-27 13:33:31 +00009 iso646.h
10 limits.h
NAKAMURA Takumidceeeb82011-12-25 12:47:46 +000011 lzcntintrin.h
Michael J. Spencer1737c9e2011-04-15 15:11:21 +000012 mm3dnow.h
Oscar Fuentes64015232011-02-27 13:33:31 +000013 mmintrin.h
14 mm_malloc.h
15 nmmintrin.h
16 pmmintrin.h
Chris Lattner1b55b752010-08-20 17:24:02 +000017 smmintrin.h
Peter Collingbourne2f3cf4b2011-09-29 18:04:28 +000018 stdalign.h
Oscar Fuentes64015232011-02-27 13:33:31 +000019 stdarg.h
20 stdbool.h
21 stddef.h
22 stdint.h
Douglas Gregore1839932009-06-07 07:09:23 +000023 tgmath.h
24 tmmintrin.h
Oscar Fuentes64015232011-02-27 13:33:31 +000025 varargs.h
26 wmmintrin.h
27 x86intrin.h
28 xmmintrin.h
Rafael Espindola488ea472011-12-06 15:46:47 +000029 cpuid.h
Rafael Espindola18c79202011-12-08 05:01:39 +000030 unwind.h
Oscar Fuentes64015232011-02-27 13:33:31 +000031 )
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000032
Douglas Gregorc4a82182010-10-19 18:06:10 +000033set(output_dir ${LLVM_BINARY_DIR}/lib/clang/${CLANG_VERSION}/include)
Douglas Gregorbd829982010-10-11 23:17:59 +000034
35# If we are in an IDE that has a configuration directory, we need to
36# create a second copy of the headers so that 'clang' can find them if
37# it's run from the build directory.
38if(MSVC_IDE OR XCODE)
39 set(other_output_dir ${LLVM_BINARY_DIR}/bin/lib/clang/${CLANG_VERSION}/include)
40endif()
Douglas Gregor274a6b42009-06-16 20:13:51 +000041
Douglas Gregor1f1be082010-05-28 04:22:06 +000042# Generate arm_neon.h
Oscar Fuentes6f725402011-02-20 22:06:32 +000043clang_tablegen(arm_neon.h.inc -gen-arm-neon
44 SOURCE ${CLANG_SOURCE_DIR}/include/clang/Basic/arm_neon.td)
Douglas Gregor1f1be082010-05-28 04:22:06 +000045
Douglas Gregorbd829982010-10-11 23:17:59 +000046set(out_files)
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000047foreach( f ${files} )
48 set( src ${CMAKE_CURRENT_SOURCE_DIR}/${f} )
49 set( dst ${output_dir}/${f} )
50 add_custom_command(OUTPUT ${dst}
51 DEPENDS ${src}
52 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}
53 COMMENT "Copying clang's ${f}...")
Douglas Gregorbd829982010-10-11 23:17:59 +000054 list(APPEND out_files ${dst})
55
56 if(other_output_dir)
57 set(other_dst ${other_output_dir}/${f})
58 add_custom_command(OUTPUT ${other_dst}
59 DEPENDS ${src}
60 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${other_dst}
61 COMMENT "Copying clang's ${f}...")
62 list(APPEND out_files ${other_dst})
63 endif()
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000064endforeach( f )
65
Douglas Gregorbd829982010-10-11 23:17:59 +000066add_custom_command(OUTPUT ${output_dir}/arm_neon.h
67 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h.inc
68 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h.inc ${output_dir}/arm_neon.h
69 COMMENT "Copying clang's arm_neon.h...")
70list(APPEND out_files ${output_dir}/arm_neon.h)
71
72if (other_output_dir)
73 set(other_dst ${other_output_dir}/arm_neon.h)
74 add_custom_command(OUTPUT ${other_dst}
75 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h.inc
76 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h.inc ${other_dst}
77 COMMENT "Copying clang's arm_neon.h...")
78 list(APPEND out_files ${other_dst})
79endif ()
80
81add_custom_target(clang-headers ALL DEPENDS ${out_files})
Oscar Fuentes15fe1902011-02-20 22:06:44 +000082set_target_properties(clang-headers PROPERTIES FOLDER "Misc")
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000083
Douglas Gregor1f1be082010-05-28 04:22:06 +000084install(FILES ${files} ${output_dir}/arm_neon.h
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000085 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
Oscar Fuentes843c8282009-10-27 21:15:21 +000086 DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)