annotate libcxx/include/CMakeLists.txt @ 173:0572611fdcc8 llvm10 llvm12

reorgnization done
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 11:55:54 +0900
parents 1d019706d866
children 2e18cbf3894f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 set(files
anatofuz
parents:
diff changeset
2 __bit_reference
anatofuz
parents:
diff changeset
3 __bsd_locale_defaults.h
anatofuz
parents:
diff changeset
4 __bsd_locale_fallbacks.h
anatofuz
parents:
diff changeset
5 __errc
anatofuz
parents:
diff changeset
6 __debug
anatofuz
parents:
diff changeset
7 __functional_03
anatofuz
parents:
diff changeset
8 __functional_base
anatofuz
parents:
diff changeset
9 __functional_base_03
anatofuz
parents:
diff changeset
10 __hash_table
anatofuz
parents:
diff changeset
11 __libcpp_version
anatofuz
parents:
diff changeset
12 __locale
anatofuz
parents:
diff changeset
13 __mutex_base
anatofuz
parents:
diff changeset
14 __node_handle
anatofuz
parents:
diff changeset
15 __nullptr
anatofuz
parents:
diff changeset
16 __split_buffer
anatofuz
parents:
diff changeset
17 __sso_allocator
anatofuz
parents:
diff changeset
18 __std_stream
anatofuz
parents:
diff changeset
19 __string
anatofuz
parents:
diff changeset
20 __threading_support
anatofuz
parents:
diff changeset
21 __tree
anatofuz
parents:
diff changeset
22 __tuple
anatofuz
parents:
diff changeset
23 __undef_macros
anatofuz
parents:
diff changeset
24 algorithm
anatofuz
parents:
diff changeset
25 any
anatofuz
parents:
diff changeset
26 array
anatofuz
parents:
diff changeset
27 atomic
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
28 barrier
150
anatofuz
parents:
diff changeset
29 bit
anatofuz
parents:
diff changeset
30 bitset
anatofuz
parents:
diff changeset
31 cassert
anatofuz
parents:
diff changeset
32 ccomplex
anatofuz
parents:
diff changeset
33 cctype
anatofuz
parents:
diff changeset
34 cerrno
anatofuz
parents:
diff changeset
35 cfenv
anatofuz
parents:
diff changeset
36 cfloat
anatofuz
parents:
diff changeset
37 charconv
anatofuz
parents:
diff changeset
38 chrono
anatofuz
parents:
diff changeset
39 cinttypes
anatofuz
parents:
diff changeset
40 ciso646
anatofuz
parents:
diff changeset
41 climits
anatofuz
parents:
diff changeset
42 clocale
anatofuz
parents:
diff changeset
43 cmath
anatofuz
parents:
diff changeset
44 codecvt
anatofuz
parents:
diff changeset
45 compare
anatofuz
parents:
diff changeset
46 complex
anatofuz
parents:
diff changeset
47 complex.h
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
48 concepts
150
anatofuz
parents:
diff changeset
49 condition_variable
anatofuz
parents:
diff changeset
50 csetjmp
anatofuz
parents:
diff changeset
51 csignal
anatofuz
parents:
diff changeset
52 cstdarg
anatofuz
parents:
diff changeset
53 cstdbool
anatofuz
parents:
diff changeset
54 cstddef
anatofuz
parents:
diff changeset
55 cstdint
anatofuz
parents:
diff changeset
56 cstdio
anatofuz
parents:
diff changeset
57 cstdlib
anatofuz
parents:
diff changeset
58 cstring
anatofuz
parents:
diff changeset
59 ctgmath
anatofuz
parents:
diff changeset
60 ctime
anatofuz
parents:
diff changeset
61 ctype.h
anatofuz
parents:
diff changeset
62 cwchar
anatofuz
parents:
diff changeset
63 cwctype
anatofuz
parents:
diff changeset
64 deque
anatofuz
parents:
diff changeset
65 errno.h
anatofuz
parents:
diff changeset
66 exception
anatofuz
parents:
diff changeset
67 execution
anatofuz
parents:
diff changeset
68 experimental/__config
anatofuz
parents:
diff changeset
69 experimental/__memory
anatofuz
parents:
diff changeset
70 experimental/algorithm
anatofuz
parents:
diff changeset
71 experimental/coroutine
anatofuz
parents:
diff changeset
72 experimental/deque
anatofuz
parents:
diff changeset
73 experimental/filesystem
anatofuz
parents:
diff changeset
74 experimental/forward_list
anatofuz
parents:
diff changeset
75 experimental/functional
anatofuz
parents:
diff changeset
76 experimental/iterator
anatofuz
parents:
diff changeset
77 experimental/list
anatofuz
parents:
diff changeset
78 experimental/map
anatofuz
parents:
diff changeset
79 experimental/memory_resource
anatofuz
parents:
diff changeset
80 experimental/propagate_const
anatofuz
parents:
diff changeset
81 experimental/regex
anatofuz
parents:
diff changeset
82 experimental/set
anatofuz
parents:
diff changeset
83 experimental/simd
anatofuz
parents:
diff changeset
84 experimental/string
anatofuz
parents:
diff changeset
85 experimental/type_traits
anatofuz
parents:
diff changeset
86 experimental/unordered_map
anatofuz
parents:
diff changeset
87 experimental/unordered_set
anatofuz
parents:
diff changeset
88 experimental/utility
anatofuz
parents:
diff changeset
89 experimental/vector
anatofuz
parents:
diff changeset
90 ext/__hash
anatofuz
parents:
diff changeset
91 ext/hash_map
anatofuz
parents:
diff changeset
92 ext/hash_set
anatofuz
parents:
diff changeset
93 fenv.h
anatofuz
parents:
diff changeset
94 filesystem
anatofuz
parents:
diff changeset
95 float.h
anatofuz
parents:
diff changeset
96 forward_list
anatofuz
parents:
diff changeset
97 fstream
anatofuz
parents:
diff changeset
98 functional
anatofuz
parents:
diff changeset
99 future
anatofuz
parents:
diff changeset
100 initializer_list
anatofuz
parents:
diff changeset
101 inttypes.h
anatofuz
parents:
diff changeset
102 iomanip
anatofuz
parents:
diff changeset
103 ios
anatofuz
parents:
diff changeset
104 iosfwd
anatofuz
parents:
diff changeset
105 iostream
anatofuz
parents:
diff changeset
106 istream
anatofuz
parents:
diff changeset
107 iterator
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
108 latch
150
anatofuz
parents:
diff changeset
109 limits
anatofuz
parents:
diff changeset
110 limits.h
anatofuz
parents:
diff changeset
111 list
anatofuz
parents:
diff changeset
112 locale
anatofuz
parents:
diff changeset
113 locale.h
anatofuz
parents:
diff changeset
114 map
anatofuz
parents:
diff changeset
115 math.h
anatofuz
parents:
diff changeset
116 memory
anatofuz
parents:
diff changeset
117 module.modulemap
anatofuz
parents:
diff changeset
118 mutex
anatofuz
parents:
diff changeset
119 new
anatofuz
parents:
diff changeset
120 numeric
anatofuz
parents:
diff changeset
121 optional
anatofuz
parents:
diff changeset
122 ostream
anatofuz
parents:
diff changeset
123 queue
anatofuz
parents:
diff changeset
124 random
anatofuz
parents:
diff changeset
125 ratio
anatofuz
parents:
diff changeset
126 regex
anatofuz
parents:
diff changeset
127 scoped_allocator
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
128 semaphore
150
anatofuz
parents:
diff changeset
129 set
anatofuz
parents:
diff changeset
130 setjmp.h
anatofuz
parents:
diff changeset
131 shared_mutex
anatofuz
parents:
diff changeset
132 span
anatofuz
parents:
diff changeset
133 sstream
anatofuz
parents:
diff changeset
134 stack
anatofuz
parents:
diff changeset
135 stdbool.h
anatofuz
parents:
diff changeset
136 stddef.h
anatofuz
parents:
diff changeset
137 stdexcept
anatofuz
parents:
diff changeset
138 stdint.h
anatofuz
parents:
diff changeset
139 stdio.h
anatofuz
parents:
diff changeset
140 stdlib.h
anatofuz
parents:
diff changeset
141 streambuf
anatofuz
parents:
diff changeset
142 string
anatofuz
parents:
diff changeset
143 string.h
anatofuz
parents:
diff changeset
144 string_view
anatofuz
parents:
diff changeset
145 strstream
anatofuz
parents:
diff changeset
146 system_error
anatofuz
parents:
diff changeset
147 tgmath.h
anatofuz
parents:
diff changeset
148 thread
anatofuz
parents:
diff changeset
149 tuple
anatofuz
parents:
diff changeset
150 type_traits
anatofuz
parents:
diff changeset
151 typeindex
anatofuz
parents:
diff changeset
152 typeinfo
anatofuz
parents:
diff changeset
153 unordered_map
anatofuz
parents:
diff changeset
154 unordered_set
anatofuz
parents:
diff changeset
155 utility
anatofuz
parents:
diff changeset
156 valarray
anatofuz
parents:
diff changeset
157 variant
anatofuz
parents:
diff changeset
158 vector
anatofuz
parents:
diff changeset
159 version
anatofuz
parents:
diff changeset
160 wchar.h
anatofuz
parents:
diff changeset
161 wctype.h
anatofuz
parents:
diff changeset
162 )
anatofuz
parents:
diff changeset
163
anatofuz
parents:
diff changeset
164 if(LIBCXX_INSTALL_SUPPORT_HEADERS)
anatofuz
parents:
diff changeset
165 set(files
anatofuz
parents:
diff changeset
166 ${files}
anatofuz
parents:
diff changeset
167 support/android/locale_bionic.h
anatofuz
parents:
diff changeset
168 support/fuchsia/xlocale.h
anatofuz
parents:
diff changeset
169 support/ibm/limits.h
anatofuz
parents:
diff changeset
170 support/ibm/locale_mgmt_aix.h
anatofuz
parents:
diff changeset
171 support/ibm/support.h
anatofuz
parents:
diff changeset
172 support/ibm/xlocale.h
anatofuz
parents:
diff changeset
173 support/musl/xlocale.h
anatofuz
parents:
diff changeset
174 support/newlib/xlocale.h
anatofuz
parents:
diff changeset
175 support/solaris/floatingpoint.h
anatofuz
parents:
diff changeset
176 support/solaris/wchar.h
anatofuz
parents:
diff changeset
177 support/solaris/xlocale.h
anatofuz
parents:
diff changeset
178 support/win32/limits_msvc_win32.h
anatofuz
parents:
diff changeset
179 support/win32/locale_win32.h
anatofuz
parents:
diff changeset
180 support/xlocale/__nop_locale_mgmt.h
anatofuz
parents:
diff changeset
181 support/xlocale/__posix_l_fallback.h
anatofuz
parents:
diff changeset
182 support/xlocale/__strtonum_fallback.h
anatofuz
parents:
diff changeset
183 )
anatofuz
parents:
diff changeset
184 endif()
anatofuz
parents:
diff changeset
185
anatofuz
parents:
diff changeset
186 if (LIBCXX_NEEDS_SITE_CONFIG)
anatofuz
parents:
diff changeset
187 # Generate a custom __config header. The new header is created
anatofuz
parents:
diff changeset
188 # by prepending __config_site to the current __config header.
anatofuz
parents:
diff changeset
189 add_custom_command(OUTPUT ${LIBCXX_BINARY_DIR}/__generated_config
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
190 COMMAND ${Python3_EXECUTABLE} ${LIBCXX_SOURCE_DIR}/utils/cat_files.py
150
anatofuz
parents:
diff changeset
191 ${LIBCXX_BINARY_DIR}/__config_site
anatofuz
parents:
diff changeset
192 ${LIBCXX_SOURCE_DIR}/include/__config
anatofuz
parents:
diff changeset
193 -o ${LIBCXX_BINARY_DIR}/__generated_config
anatofuz
parents:
diff changeset
194 DEPENDS ${LIBCXX_SOURCE_DIR}/include/__config
anatofuz
parents:
diff changeset
195 ${LIBCXX_BINARY_DIR}/__config_site
anatofuz
parents:
diff changeset
196 )
anatofuz
parents:
diff changeset
197 # Add a target that executes the generation commands.
anatofuz
parents:
diff changeset
198 add_custom_target(cxx-generated-config ALL
anatofuz
parents:
diff changeset
199 DEPENDS ${LIBCXX_BINARY_DIR}/__generated_config)
anatofuz
parents:
diff changeset
200 set(generated_config_deps cxx-generated-config)
anatofuz
parents:
diff changeset
201 else()
anatofuz
parents:
diff changeset
202 set(files
anatofuz
parents:
diff changeset
203 ${files}
anatofuz
parents:
diff changeset
204 __config
anatofuz
parents:
diff changeset
205 )
anatofuz
parents:
diff changeset
206 endif()
anatofuz
parents:
diff changeset
207
anatofuz
parents:
diff changeset
208 # In some build configurations (like bootstrapping clang), we need to be able to
anatofuz
parents:
diff changeset
209 # install the libcxx headers before the CMake configuration for libcxx runs. Making
anatofuz
parents:
diff changeset
210 # the name of this target configurable allows LLVM/runtimes/CMakeLists.txt to
anatofuz
parents:
diff changeset
211 # add this subdirectory to the LLVM build to put libcxx's headers in place
anatofuz
parents:
diff changeset
212 # before libcxx's build configuration is run.
anatofuz
parents:
diff changeset
213 if (NOT CXX_HEADER_TARGET)
anatofuz
parents:
diff changeset
214 set(CXX_HEADER_TARGET cxx-headers)
anatofuz
parents:
diff changeset
215 endif()
anatofuz
parents:
diff changeset
216 if(NOT LIBCXX_USING_INSTALLED_LLVM AND LIBCXX_HEADER_DIR)
anatofuz
parents:
diff changeset
217 set(output_dir ${LIBCXX_HEADER_DIR}/include/c++/v1)
anatofuz
parents:
diff changeset
218
anatofuz
parents:
diff changeset
219 set(out_files)
anatofuz
parents:
diff changeset
220 foreach(f ${files})
anatofuz
parents:
diff changeset
221 set(src ${CMAKE_CURRENT_SOURCE_DIR}/${f})
anatofuz
parents:
diff changeset
222 set(dst ${output_dir}/${f})
anatofuz
parents:
diff changeset
223 add_custom_command(OUTPUT ${dst}
anatofuz
parents:
diff changeset
224 DEPENDS ${src}
anatofuz
parents:
diff changeset
225 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}
anatofuz
parents:
diff changeset
226 COMMENT "Copying CXX header ${f}")
anatofuz
parents:
diff changeset
227 list(APPEND out_files ${dst})
anatofuz
parents:
diff changeset
228 endforeach()
anatofuz
parents:
diff changeset
229
anatofuz
parents:
diff changeset
230 if (LIBCXX_NEEDS_SITE_CONFIG)
anatofuz
parents:
diff changeset
231 # Copy the generated header as __config into build directory.
anatofuz
parents:
diff changeset
232 set(src ${LIBCXX_BINARY_DIR}/__generated_config)
anatofuz
parents:
diff changeset
233 set(dst ${output_dir}/__config)
anatofuz
parents:
diff changeset
234 add_custom_command(OUTPUT ${dst}
anatofuz
parents:
diff changeset
235 DEPENDS ${src} ${generated_config_deps}
anatofuz
parents:
diff changeset
236 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}
anatofuz
parents:
diff changeset
237 COMMENT "Copying CXX __config")
anatofuz
parents:
diff changeset
238 list(APPEND out_files ${dst})
anatofuz
parents:
diff changeset
239 endif()
anatofuz
parents:
diff changeset
240
anatofuz
parents:
diff changeset
241 add_custom_target(${CXX_HEADER_TARGET} ALL DEPENDS ${out_files} ${LIBCXX_CXX_ABI_HEADER_TARGET})
anatofuz
parents:
diff changeset
242 else()
anatofuz
parents:
diff changeset
243 add_custom_target(${CXX_HEADER_TARGET})
anatofuz
parents:
diff changeset
244 endif()
anatofuz
parents:
diff changeset
245 set_target_properties(${CXX_HEADER_TARGET} PROPERTIES FOLDER "Misc")
anatofuz
parents:
diff changeset
246
anatofuz
parents:
diff changeset
247 if (LIBCXX_INSTALL_HEADERS)
anatofuz
parents:
diff changeset
248 foreach(file ${files})
anatofuz
parents:
diff changeset
249 get_filename_component(dir ${file} DIRECTORY)
anatofuz
parents:
diff changeset
250 install(FILES ${file}
anatofuz
parents:
diff changeset
251 DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dir}
anatofuz
parents:
diff changeset
252 COMPONENT ${CXX_HEADER_TARGET}
anatofuz
parents:
diff changeset
253 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
anatofuz
parents:
diff changeset
254 )
anatofuz
parents:
diff changeset
255 endforeach()
anatofuz
parents:
diff changeset
256
anatofuz
parents:
diff changeset
257 if (LIBCXX_NEEDS_SITE_CONFIG)
anatofuz
parents:
diff changeset
258 # Install the generated header as __config.
anatofuz
parents:
diff changeset
259 install(FILES ${LIBCXX_BINARY_DIR}/__generated_config
anatofuz
parents:
diff changeset
260 DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1
anatofuz
parents:
diff changeset
261 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
anatofuz
parents:
diff changeset
262 RENAME __config
anatofuz
parents:
diff changeset
263 COMPONENT ${CXX_HEADER_TARGET})
anatofuz
parents:
diff changeset
264 endif()
anatofuz
parents:
diff changeset
265
anatofuz
parents:
diff changeset
266 if (NOT CMAKE_CONFIGURATION_TYPES)
anatofuz
parents:
diff changeset
267 add_custom_target(install-${CXX_HEADER_TARGET}
anatofuz
parents:
diff changeset
268 DEPENDS ${CXX_HEADER_TARGET} ${generated_config_deps}
anatofuz
parents:
diff changeset
269 COMMAND "${CMAKE_COMMAND}"
anatofuz
parents:
diff changeset
270 -DCMAKE_INSTALL_COMPONENT=${CXX_HEADER_TARGET}
anatofuz
parents:
diff changeset
271 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")
anatofuz
parents:
diff changeset
272 # Stripping is a no-op for headers
anatofuz
parents:
diff changeset
273 add_custom_target(install-${CXX_HEADER_TARGET}-stripped DEPENDS install-${CXX_HEADER_TARGET})
anatofuz
parents:
diff changeset
274 endif()
anatofuz
parents:
diff changeset
275 endif()