1set(files 2 __algorithm/adjacent_find.h 3 __algorithm/all_of.h 4 __algorithm/any_of.h 5 __algorithm/binary_search.h 6 __algorithm/clamp.h 7 __algorithm/comp_ref_type.h 8 __algorithm/comp.h 9 __algorithm/copy_backward.h 10 __algorithm/copy_if.h 11 __algorithm/copy_n.h 12 __algorithm/copy.h 13 __algorithm/count_if.h 14 __algorithm/count.h 15 __algorithm/equal_range.h 16 __algorithm/equal.h 17 __algorithm/fill_n.h 18 __algorithm/fill.h 19 __algorithm/find_end.h 20 __algorithm/find_first_of.h 21 __algorithm/find_if_not.h 22 __algorithm/find_if.h 23 __algorithm/find.h 24 __algorithm/for_each_n.h 25 __algorithm/for_each.h 26 __algorithm/generate_n.h 27 __algorithm/generate.h 28 __algorithm/half_positive.h 29 __algorithm/includes.h 30 __algorithm/inplace_merge.h 31 __algorithm/is_heap_until.h 32 __algorithm/is_heap.h 33 __algorithm/is_partitioned.h 34 __algorithm/is_permutation.h 35 __algorithm/is_sorted_until.h 36 __algorithm/is_sorted.h 37 __algorithm/iter_swap.h 38 __algorithm/lexicographical_compare.h 39 __algorithm/lower_bound.h 40 __algorithm/make_heap.h 41 __algorithm/max_element.h 42 __algorithm/max.h 43 __algorithm/merge.h 44 __algorithm/min_element.h 45 __algorithm/min.h 46 __algorithm/minmax_element.h 47 __algorithm/minmax.h 48 __algorithm/mismatch.h 49 __algorithm/move_backward.h 50 __algorithm/move.h 51 __algorithm/next_permutation.h 52 __algorithm/none_of.h 53 __algorithm/nth_element.h 54 __algorithm/partial_sort_copy.h 55 __algorithm/partial_sort.h 56 __algorithm/partition_copy.h 57 __algorithm/partition_point.h 58 __algorithm/partition.h 59 __algorithm/pop_heap.h 60 __algorithm/prev_permutation.h 61 __algorithm/push_heap.h 62 __algorithm/remove_copy_if.h 63 __algorithm/remove_copy.h 64 __algorithm/remove_if.h 65 __algorithm/remove.h 66 __algorithm/replace_copy_if.h 67 __algorithm/replace_copy.h 68 __algorithm/replace_if.h 69 __algorithm/replace.h 70 __algorithm/reverse_copy.h 71 __algorithm/reverse.h 72 __algorithm/rotate_copy.h 73 __algorithm/rotate.h 74 __algorithm/sample.h 75 __algorithm/search_n.h 76 __algorithm/search.h 77 __algorithm/set_difference.h 78 __algorithm/set_intersection.h 79 __algorithm/set_symmetric_difference.h 80 __algorithm/set_union.h 81 __algorithm/shift_left.h 82 __algorithm/shift_right.h 83 __algorithm/shuffle.h 84 __algorithm/sift_down.h 85 __algorithm/sort_heap.h 86 __algorithm/sort.h 87 __algorithm/stable_partition.h 88 __algorithm/stable_sort.h 89 __algorithm/swap_ranges.h 90 __algorithm/transform.h 91 __algorithm/unique_copy.h 92 __algorithm/unique.h 93 __algorithm/unwrap_iter.h 94 __algorithm/upper_bound.h 95 __availability 96 __bit_reference 97 __bits 98 __bsd_locale_defaults.h 99 __bsd_locale_fallbacks.h 100 __config 101 __debug 102 __errc 103 __format/format_error.h 104 __format/format_parse_context.h 105 __function_like.h 106 __functional_base 107 __functional/binary_function.h 108 __functional/binary_negate.h 109 __functional/bind_front.h 110 __functional/bind.h 111 __functional/binder1st.h 112 __functional/binder2nd.h 113 __functional/default_searcher.h 114 __functional/function.h 115 __functional/hash.h 116 __functional/identity.h 117 __functional/invoke.h 118 __functional/is_transparent.h 119 __functional/mem_fn.h 120 __functional/mem_fun_ref.h 121 __functional/not_fn.h 122 __functional/operations.h 123 __functional/perfect_forward.h 124 __functional/pointer_to_binary_function.h 125 __functional/pointer_to_unary_function.h 126 __functional/ranges_operations.h 127 __functional/reference_wrapper.h 128 __functional/unary_function.h 129 __functional/unary_negate.h 130 __functional/unwrap_ref.h 131 __functional/weak_result_type.h 132 __hash_table 133 __iterator/access.h 134 __iterator/advance.h 135 __iterator/back_insert_iterator.h 136 __iterator/common_iterator.h 137 __iterator/concepts.h 138 __iterator/counted_iterator.h 139 __iterator/data.h 140 __iterator/default_sentinel.h 141 __iterator/distance.h 142 __iterator/empty.h 143 __iterator/erase_if_container.h 144 __iterator/front_insert_iterator.h 145 __iterator/incrementable_traits.h 146 __iterator/insert_iterator.h 147 __iterator/istream_iterator.h 148 __iterator/istreambuf_iterator.h 149 __iterator/iter_move.h 150 __iterator/iter_swap.h 151 __iterator/iterator_traits.h 152 __iterator/iterator.h 153 __iterator/move_iterator.h 154 __iterator/next.h 155 __iterator/ostream_iterator.h 156 __iterator/ostreambuf_iterator.h 157 __iterator/prev.h 158 __iterator/projected.h 159 __iterator/readable_traits.h 160 __iterator/reverse_access.h 161 __iterator/reverse_iterator.h 162 __iterator/size.h 163 __iterator/wrap_iter.h 164 __libcpp_version 165 __locale 166 __memory/addressof.h 167 __memory/allocation_guard.h 168 __memory/allocator_arg_t.h 169 __memory/allocator_traits.h 170 __memory/allocator.h 171 __memory/auto_ptr.h 172 __memory/compressed_pair.h 173 __memory/construct_at.h 174 __memory/pointer_safety.h 175 __memory/pointer_traits.h 176 __memory/raw_storage_iterator.h 177 __memory/shared_ptr.h 178 __memory/temporary_buffer.h 179 __memory/uninitialized_algorithms.h 180 __memory/unique_ptr.h 181 __memory/uses_allocator.h 182 __mutex_base 183 __node_handle 184 __nullptr 185 __random/uniform_int_distribution.h 186 __ranges/access.h 187 __ranges/all.h 188 __ranges/common_view.h 189 __ranges/concepts.h 190 __ranges/copyable_box.h 191 __ranges/dangling.h 192 __ranges/data.h 193 __ranges/drop_view.h 194 __ranges/empty_view.h 195 __ranges/empty.h 196 __ranges/enable_borrowed_range.h 197 __ranges/enable_view.h 198 __ranges/non_propagating_cache.h 199 __ranges/ref_view.h 200 __ranges/size.h 201 __ranges/subrange.h 202 __ranges/transform_view.h 203 __ranges/view_interface.h 204 __split_buffer 205 __std_stream 206 __string 207 __support/android/locale_bionic.h 208 __support/fuchsia/xlocale.h 209 __support/ibm/gettod_zos.h 210 __support/ibm/limits.h 211 __support/ibm/locale_mgmt_aix.h 212 __support/ibm/locale_mgmt_zos.h 213 __support/ibm/nanosleep.h 214 __support/ibm/support.h 215 __support/ibm/xlocale.h 216 __support/musl/xlocale.h 217 __support/newlib/xlocale.h 218 __support/nuttx/xlocale.h 219 __support/openbsd/xlocale.h 220 __support/solaris/floatingpoint.h 221 __support/solaris/wchar.h 222 __support/solaris/xlocale.h 223 __support/win32/limits_msvc_win32.h 224 __support/win32/locale_win32.h 225 __support/xlocale/__nop_locale_mgmt.h 226 __support/xlocale/__posix_l_fallback.h 227 __support/xlocale/__strtonum_fallback.h 228 __threading_support 229 __tree 230 __tuple 231 __undef_macros 232 __utility/__decay_copy.h 233 __utility/as_const.h 234 __utility/cmp.h 235 __utility/declval.h 236 __utility/exchange.h 237 __utility/forward.h 238 __utility/in_place.h 239 __utility/integer_sequence.h 240 __utility/move.h 241 __utility/pair.h 242 __utility/piecewise_construct.h 243 __utility/rel_ops.h 244 __utility/swap.h 245 __utility/to_underlying.h 246 __variant/monostate.h 247 algorithm 248 any 249 array 250 atomic 251 barrier 252 bit 253 bitset 254 cassert 255 ccomplex 256 cctype 257 cerrno 258 cfenv 259 cfloat 260 charconv 261 chrono 262 cinttypes 263 ciso646 264 climits 265 clocale 266 cmath 267 codecvt 268 compare 269 complex 270 complex.h 271 concepts 272 condition_variable 273 csetjmp 274 csignal 275 cstdarg 276 cstdbool 277 cstddef 278 cstdint 279 cstdio 280 cstdlib 281 cstring 282 ctgmath 283 ctime 284 ctype.h 285 cwchar 286 cwctype 287 deque 288 errno.h 289 exception 290 execution 291 experimental/__config 292 experimental/__memory 293 experimental/algorithm 294 experimental/coroutine 295 experimental/deque 296 experimental/filesystem 297 experimental/forward_list 298 experimental/functional 299 experimental/iterator 300 experimental/list 301 experimental/map 302 experimental/memory_resource 303 experimental/propagate_const 304 experimental/regex 305 experimental/set 306 experimental/simd 307 experimental/string 308 experimental/type_traits 309 experimental/unordered_map 310 experimental/unordered_set 311 experimental/utility 312 experimental/vector 313 ext/__hash 314 ext/hash_map 315 ext/hash_set 316 fenv.h 317 filesystem 318 float.h 319 format 320 forward_list 321 fstream 322 functional 323 future 324 initializer_list 325 inttypes.h 326 iomanip 327 ios 328 iosfwd 329 iostream 330 istream 331 iterator 332 latch 333 limits 334 limits.h 335 list 336 locale 337 locale.h 338 map 339 math.h 340 memory 341 module.modulemap 342 mutex 343 new 344 numbers 345 numeric 346 optional 347 ostream 348 queue 349 random 350 ranges 351 ranges 352 ratio 353 regex 354 scoped_allocator 355 semaphore 356 set 357 setjmp.h 358 shared_mutex 359 span 360 sstream 361 stack 362 stdbool.h 363 stddef.h 364 stdexcept 365 stdint.h 366 stdio.h 367 stdlib.h 368 streambuf 369 string 370 string_view 371 string.h 372 strstream 373 system_error 374 tgmath.h 375 thread 376 tuple 377 type_traits 378 typeindex 379 typeinfo 380 unordered_map 381 unordered_set 382 utility 383 valarray 384 variant 385 vector 386 version 387 wchar.h 388 wctype.h 389 ) 390 391configure_file("__config_site.in" "${LIBCXX_GENERATED_INCLUDE_TARGET_DIR}/__config_site" @ONLY) 392 393set(_all_includes "${LIBCXX_GENERATED_INCLUDE_TARGET_DIR}/__config_site") 394foreach(f ${files}) 395 set(src "${CMAKE_CURRENT_SOURCE_DIR}/${f}") 396 set(dst "${LIBCXX_GENERATED_INCLUDE_DIR}/${f}") 397 add_custom_command(OUTPUT ${dst} 398 DEPENDS ${src} 399 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst} 400 COMMENT "Copying CXX header ${f}") 401 list(APPEND _all_includes "${dst}") 402endforeach() 403 404add_custom_target(generate-cxx-headers ALL DEPENDS ${_all_includes}) 405 406add_library(cxx-headers INTERFACE) 407add_dependencies(cxx-headers generate-cxx-headers ${LIBCXX_CXX_ABI_HEADER_TARGET}) 408# TODO: Use target_include_directories once we figure out why that breaks the runtimes build 409if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC" OR "${CMAKE_CXX_SIMULATE_ID}" STREQUAL "MSVC") 410 target_compile_options(cxx-headers INTERFACE /I${LIBCXX_GENERATED_INCLUDE_DIR} 411 INTERFACE /I${LIBCXX_GENERATED_INCLUDE_TARGET_DIR}) 412else() 413 target_compile_options(cxx-headers INTERFACE -I${LIBCXX_GENERATED_INCLUDE_DIR} 414 INTERFACE -I${LIBCXX_GENERATED_INCLUDE_TARGET_DIR}) 415endif() 416 417if (LIBCXX_INSTALL_HEADERS) 418 foreach(file ${files}) 419 get_filename_component(dir ${file} DIRECTORY) 420 install(FILES ${file} 421 DESTINATION ${LIBCXX_INSTALL_INCLUDE_DIR}/${dir} 422 COMPONENT cxx-headers 423 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ 424 ) 425 endforeach() 426 427 # Install the generated __config_site. 428 install(FILES ${LIBCXX_GENERATED_INCLUDE_TARGET_DIR}/__config_site 429 DESTINATION ${LIBCXX_INSTALL_INCLUDE_TARGET_DIR} 430 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ 431 COMPONENT cxx-headers) 432 433 if (NOT CMAKE_CONFIGURATION_TYPES) 434 add_custom_target(install-cxx-headers 435 DEPENDS cxx-headers 436 COMMAND "${CMAKE_COMMAND}" 437 -DCMAKE_INSTALL_COMPONENT=cxx-headers 438 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake") 439 # Stripping is a no-op for headers 440 add_custom_target(install-cxx-headers-stripped DEPENDS install-cxx-headers) 441 endif() 442endif() 443