]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - lib/Headers/CMakeLists.txt
Vendor import of clang trunk r351319 (just before the release_80 branch
[FreeBSD/FreeBSD.git] / lib / Headers / CMakeLists.txt
1 set(files
2   adxintrin.h
3   altivec.h
4   ammintrin.h
5   arm_acle.h
6   armintr.h
7   arm64intr.h
8   avx2intrin.h
9   avx512bwintrin.h
10   avx512bitalgintrin.h
11   avx512vlbitalgintrin.h
12   avx512cdintrin.h
13   avx512vpopcntdqintrin.h
14   avx512dqintrin.h
15   avx512erintrin.h
16   avx512fintrin.h
17   avx512ifmaintrin.h
18   avx512ifmavlintrin.h
19   avx512pfintrin.h
20   avx512vbmiintrin.h
21   avx512vbmivlintrin.h
22   avx512vbmi2intrin.h
23   avx512vlvbmi2intrin.h
24   avx512vlbwintrin.h
25   avx512vlcdintrin.h
26   avx512vldqintrin.h
27   avx512vlintrin.h
28   avx512vpopcntdqvlintrin.h
29   avx512vnniintrin.h
30   avx512vlvnniintrin.h
31   avxintrin.h
32   bmi2intrin.h
33   bmiintrin.h
34   __clang_cuda_builtin_vars.h
35   __clang_cuda_cmath.h
36   __clang_cuda_complex_builtins.h
37   __clang_cuda_device_functions.h
38   __clang_cuda_intrinsics.h
39   __clang_cuda_libdevice_declares.h
40   __clang_cuda_math_forward_declares.h
41   __clang_cuda_runtime_wrapper.h
42   cetintrin.h
43   cldemoteintrin.h
44   clzerointrin.h
45   cpuid.h
46   clflushoptintrin.h
47   clwbintrin.h
48   emmintrin.h
49   f16cintrin.h
50   float.h
51   fma4intrin.h
52   fmaintrin.h
53   fxsrintrin.h
54   gfniintrin.h
55   htmintrin.h
56   htmxlintrin.h
57   ia32intrin.h
58   immintrin.h
59   intrin.h
60   inttypes.h
61   invpcidintrin.h
62   iso646.h
63   limits.h
64   lwpintrin.h
65   lzcntintrin.h
66   mm3dnow.h
67   mmintrin.h
68   mm_malloc.h
69   module.modulemap
70   movdirintrin.h
71   msa.h
72   mwaitxintrin.h
73   nmmintrin.h
74   opencl-c.h
75   pkuintrin.h
76   pmmintrin.h
77   pconfigintrin.h
78   popcntintrin.h
79   prfchwintrin.h
80   ptwriteintrin.h
81   rdseedintrin.h
82   rtmintrin.h
83   sgxintrin.h
84   s390intrin.h
85   shaintrin.h
86   smmintrin.h
87   stdalign.h
88   stdarg.h
89   stdatomic.h
90   stdbool.h
91   stddef.h
92   __stddef_max_align_t.h
93   stdint.h
94   stdnoreturn.h
95   tbmintrin.h
96   tgmath.h
97   tmmintrin.h
98   unwind.h
99   vadefs.h
100   vaesintrin.h
101   varargs.h
102   vecintrin.h
103   vpclmulqdqintrin.h
104   waitpkgintrin.h
105   wbnoinvdintrin.h
106   wmmintrin.h
107   __wmmintrin_aes.h
108   __wmmintrin_pclmul.h
109   x86intrin.h
110   xmmintrin.h
111   xopintrin.h
112   xsavecintrin.h
113   xsaveintrin.h
114   xsaveoptintrin.h
115   xsavesintrin.h
116   xtestintrin.h
117   )
118
119 set(cuda_wrapper_files
120   cuda_wrappers/algorithm
121   cuda_wrappers/complex
122   cuda_wrappers/new
123 )
124
125 set(output_dir ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}/include)
126
127 # Generate arm_neon.h
128 clang_tablegen(arm_neon.h -gen-arm-neon
129   -I ${CLANG_SOURCE_DIR}/include/clang/Basic/
130   SOURCE ${CLANG_SOURCE_DIR}/include/clang/Basic/arm_neon.td)
131 # Generate arm_fp16.h
132 clang_tablegen(arm_fp16.h -gen-arm-fp16
133   -I ${CLANG_SOURCE_DIR}/include/clang/Basic/
134   SOURCE ${CLANG_SOURCE_DIR}/include/clang/Basic/arm_fp16.td)
135
136 set(out_files)
137 foreach( f ${files} ${cuda_wrapper_files} )
138   set( src ${CMAKE_CURRENT_SOURCE_DIR}/${f} )
139   set( dst ${output_dir}/${f} )
140   add_custom_command(OUTPUT ${dst}
141     DEPENDS ${src}
142     COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}
143     COMMENT "Copying clang's ${f}...")
144   list(APPEND out_files ${dst})
145 endforeach( f )
146
147 add_custom_command(OUTPUT ${output_dir}/arm_neon.h
148   DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h
149   COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h ${output_dir}/arm_neon.h
150   COMMENT "Copying clang's arm_neon.h...")
151 list(APPEND out_files ${output_dir}/arm_neon.h)
152 add_custom_command(OUTPUT ${output_dir}/arm_fp16.h
153   DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/arm_fp16.h
154   COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/arm_fp16.h ${output_dir}/arm_fp16.h
155   COMMENT "Copying clang's arm_fp16.h...")
156 list(APPEND out_files ${output_dir}/arm_fp16.h)
157
158 add_custom_target(clang-headers ALL DEPENDS ${out_files})
159 set_target_properties(clang-headers PROPERTIES
160   FOLDER "Misc"
161   RUNTIME_OUTPUT_DIRECTORY "${output_dir}")
162
163 install(
164   FILES ${files} ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h
165   COMPONENT clang-headers
166   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
167   DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
168
169 install(
170   FILES ${files} ${CMAKE_CURRENT_BINARY_DIR}/arm_fp16.h
171   COMPONENT clang-headers
172   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
173   DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
174
175 install(
176   FILES ${cuda_wrapper_files}
177   COMPONENT clang-headers
178   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
179   DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include/cuda_wrappers)
180
181 if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDE's.
182   add_llvm_install_targets(install-clang-headers
183                            DEPENDS clang-headers
184                            COMPONENT clang-headers)
185 endif()