Home | History | Annotate | Line # | Download | only in include
      1  1.1  joerg set(files
      2  1.1  joerg   __availability
      3  1.1  joerg   __bit_reference
      4  1.1  joerg   __bits
      5  1.1  joerg   __bsd_locale_defaults.h
      6  1.1  joerg   __bsd_locale_fallbacks.h
      7  1.1  joerg   __config
      8  1.1  joerg   __debug
      9  1.1  joerg   __errc
     10  1.1  joerg   __functional_03
     11  1.1  joerg   __functional_base
     12  1.1  joerg   __functional_base_03
     13  1.1  joerg   __hash_table
     14  1.1  joerg   __iterator/concepts.h
     15  1.1  joerg   __iterator/incrementable_traits.h
     16  1.1  joerg   __iterator/iter_move.h
     17  1.1  joerg   __iterator/iterator_traits.h
     18  1.1  joerg   __iterator/readable_traits.h
     19  1.1  joerg   __libcpp_version
     20  1.1  joerg   __locale
     21  1.1  joerg   __memory/addressof.h
     22  1.1  joerg   __memory/allocation_guard.h
     23  1.1  joerg   __memory/allocator.h
     24  1.1  joerg   __memory/allocator_traits.h
     25  1.1  joerg   __memory/auto_ptr.h
     26  1.1  joerg   __memory/compressed_pair.h
     27  1.1  joerg   __memory/construct_at.h
     28  1.1  joerg   __memory/pointer_safety.h
     29  1.1  joerg   __memory/pointer_traits.h
     30  1.1  joerg   __memory/raw_storage_iterator.h
     31  1.1  joerg   __memory/shared_ptr.h
     32  1.1  joerg   __memory/temporary_buffer.h
     33  1.1  joerg   __memory/uninitialized_algorithms.h
     34  1.1  joerg   __memory/unique_ptr.h
     35  1.1  joerg   __mutex_base
     36  1.1  joerg   __node_handle
     37  1.1  joerg   __nullptr
     38  1.1  joerg   __ranges/access.h
     39  1.1  joerg   __ranges/concepts.h
     40  1.1  joerg   __ranges/data.h
     41  1.1  joerg   __ranges/empty.h
     42  1.1  joerg   __ranges/enable_borrowed_range.h
     43  1.1  joerg   __ranges/view.h
     44  1.1  joerg   __ranges/size.h
     45  1.1  joerg   __split_buffer
     46  1.1  joerg   __std_stream
     47  1.1  joerg   __string
     48  1.1  joerg   __threading_support
     49  1.1  joerg   __tree
     50  1.1  joerg   __tuple
     51  1.1  joerg   __undef_macros
     52  1.1  joerg   __utility/to_underlying.h
     53  1.1  joerg   algorithm
     54  1.1  joerg   any
     55  1.1  joerg   array
     56  1.1  joerg   atomic
     57  1.1  joerg   barrier
     58  1.1  joerg   bit
     59  1.1  joerg   bitset
     60  1.1  joerg   cassert
     61  1.1  joerg   ccomplex
     62  1.1  joerg   cctype
     63  1.1  joerg   cerrno
     64  1.1  joerg   cfenv
     65  1.1  joerg   cfloat
     66  1.1  joerg   charconv
     67  1.1  joerg   chrono
     68  1.1  joerg   cinttypes
     69  1.1  joerg   ciso646
     70  1.1  joerg   climits
     71  1.1  joerg   clocale
     72  1.1  joerg   cmath
     73  1.1  joerg   codecvt
     74  1.1  joerg   compare
     75  1.1  joerg   complex
     76  1.1  joerg   complex.h
     77  1.1  joerg   concepts
     78  1.1  joerg   condition_variable
     79  1.1  joerg   csetjmp
     80  1.1  joerg   csignal
     81  1.1  joerg   cstdarg
     82  1.1  joerg   cstdbool
     83  1.1  joerg   cstddef
     84  1.1  joerg   cstdint
     85  1.1  joerg   cstdio
     86  1.1  joerg   cstdlib
     87  1.1  joerg   cstring
     88  1.1  joerg   ctgmath
     89  1.1  joerg   ctime
     90  1.1  joerg   ctype.h
     91  1.1  joerg   cwchar
     92  1.1  joerg   cwctype
     93  1.1  joerg   deque
     94  1.1  joerg   errno.h
     95  1.1  joerg   exception
     96  1.1  joerg   execution
     97  1.1  joerg   experimental/__config
     98  1.1  joerg   experimental/__memory
     99  1.1  joerg   experimental/algorithm
    100  1.1  joerg   experimental/coroutine
    101  1.1  joerg   experimental/deque
    102  1.1  joerg   experimental/filesystem
    103  1.1  joerg   experimental/forward_list
    104  1.1  joerg   experimental/functional
    105  1.1  joerg   experimental/iterator
    106  1.1  joerg   experimental/list
    107  1.1  joerg   experimental/map
    108  1.1  joerg   experimental/memory_resource
    109  1.1  joerg   experimental/propagate_const
    110  1.1  joerg   experimental/regex
    111  1.1  joerg   experimental/set
    112  1.1  joerg   experimental/simd
    113  1.1  joerg   experimental/string
    114  1.1  joerg   experimental/type_traits
    115  1.1  joerg   experimental/unordered_map
    116  1.1  joerg   experimental/unordered_set
    117  1.1  joerg   experimental/utility
    118  1.1  joerg   experimental/vector
    119  1.1  joerg   ext/__hash
    120  1.1  joerg   ext/hash_map
    121  1.1  joerg   ext/hash_set
    122  1.1  joerg   fenv.h
    123  1.1  joerg   filesystem
    124  1.1  joerg   float.h
    125  1.1  joerg   format
    126  1.1  joerg   forward_list
    127  1.1  joerg   fstream
    128  1.1  joerg   functional
    129  1.1  joerg   future
    130  1.1  joerg   initializer_list
    131  1.1  joerg   inttypes.h
    132  1.1  joerg   iomanip
    133  1.1  joerg   ios
    134  1.1  joerg   iosfwd
    135  1.1  joerg   iostream
    136  1.1  joerg   istream
    137  1.1  joerg   iterator
    138  1.1  joerg   latch
    139  1.1  joerg   limits
    140  1.1  joerg   limits.h
    141  1.1  joerg   list
    142  1.1  joerg   locale
    143  1.1  joerg   locale.h
    144  1.1  joerg   map
    145  1.1  joerg   math.h
    146  1.1  joerg   memory
    147  1.1  joerg   module.modulemap
    148  1.1  joerg   mutex
    149  1.1  joerg   new
    150  1.1  joerg   numbers
    151  1.1  joerg   numeric
    152  1.1  joerg   optional
    153  1.1  joerg   ostream
    154  1.1  joerg   queue
    155  1.1  joerg   random
    156  1.1  joerg   ranges
    157  1.1  joerg   ratio
    158  1.1  joerg   ranges
    159  1.1  joerg   regex
    160  1.1  joerg   scoped_allocator
    161  1.1  joerg   semaphore
    162  1.1  joerg   set
    163  1.1  joerg   setjmp.h
    164  1.1  joerg   shared_mutex
    165  1.1  joerg   span
    166  1.1  joerg   sstream
    167  1.1  joerg   stack
    168  1.1  joerg   stdbool.h
    169  1.1  joerg   stddef.h
    170  1.1  joerg   stdexcept
    171  1.1  joerg   stdint.h
    172  1.1  joerg   stdio.h
    173  1.1  joerg   stdlib.h
    174  1.1  joerg   streambuf
    175  1.1  joerg   string
    176  1.1  joerg   string.h
    177  1.1  joerg   string_view
    178  1.1  joerg   strstream
    179  1.1  joerg   __support/android/locale_bionic.h
    180  1.1  joerg   __support/fuchsia/xlocale.h
    181  1.1  joerg   __support/ibm/gettod_zos.h
    182  1.1  joerg   __support/ibm/limits.h
    183  1.1  joerg   __support/ibm/locale_mgmt_aix.h
    184  1.1  joerg   __support/ibm/locale_mgmt_zos.h
    185  1.1  joerg   __support/ibm/nanosleep.h
    186  1.1  joerg   __support/ibm/support.h
    187  1.1  joerg   __support/ibm/xlocale.h
    188  1.1  joerg   __support/musl/xlocale.h
    189  1.1  joerg   __support/newlib/xlocale.h
    190  1.1  joerg   __support/nuttx/xlocale.h
    191  1.1  joerg   __support/openbsd/xlocale.h
    192  1.1  joerg   __support/solaris/floatingpoint.h
    193  1.1  joerg   __support/solaris/wchar.h
    194  1.1  joerg   __support/solaris/xlocale.h
    195  1.1  joerg   __support/win32/limits_msvc_win32.h
    196  1.1  joerg   __support/win32/locale_win32.h
    197  1.1  joerg   __support/xlocale/__nop_locale_mgmt.h
    198  1.1  joerg   __support/xlocale/__posix_l_fallback.h
    199  1.1  joerg   __support/xlocale/__strtonum_fallback.h
    200  1.1  joerg   system_error
    201  1.1  joerg   tgmath.h
    202  1.1  joerg   thread
    203  1.1  joerg   tuple
    204  1.1  joerg   type_traits
    205  1.1  joerg   typeindex
    206  1.1  joerg   typeinfo
    207  1.1  joerg   unordered_map
    208  1.1  joerg   unordered_set
    209  1.1  joerg   utility
    210  1.1  joerg   valarray
    211  1.1  joerg   variant
    212  1.1  joerg   vector
    213  1.1  joerg   version
    214  1.1  joerg   wchar.h
    215  1.1  joerg   wctype.h
    216  1.1  joerg   )
    217  1.1  joerg 
    218  1.1  joerg configure_file("__config_site.in" "${LIBCXX_GENERATED_INCLUDE_TARGET_DIR}/__config_site" @ONLY)
    219  1.1  joerg 
    220  1.1  joerg set(_all_includes "${LIBCXX_GENERATED_INCLUDE_TARGET_DIR}/__config_site")
    221  1.1  joerg foreach(f ${files})
    222  1.1  joerg   set(src "${CMAKE_CURRENT_SOURCE_DIR}/${f}")
    223  1.1  joerg   set(dst "${LIBCXX_GENERATED_INCLUDE_DIR}/${f}")
    224  1.1  joerg   add_custom_command(OUTPUT ${dst}
    225  1.1  joerg     DEPENDS ${src}
    226  1.1  joerg     COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}
    227  1.1  joerg     COMMENT "Copying CXX header ${f}")
    228  1.1  joerg   list(APPEND _all_includes "${dst}")
    229  1.1  joerg endforeach()
    230  1.1  joerg 
    231  1.1  joerg add_custom_target(generate-cxx-headers ALL DEPENDS ${_all_includes})
    232  1.1  joerg 
    233  1.1  joerg add_library(cxx-headers INTERFACE)
    234  1.1  joerg add_dependencies(cxx-headers generate-cxx-headers ${LIBCXX_CXX_ABI_HEADER_TARGET})
    235  1.1  joerg # TODO: Use target_include_directories once we figure out why that breaks the runtimes build
    236  1.1  joerg if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC" OR "${CMAKE_CXX_SIMULATE_ID}" STREQUAL "MSVC")
    237  1.1  joerg   target_compile_options(cxx-headers INTERFACE /I${LIBCXX_GENERATED_INCLUDE_DIR}
    238  1.1  joerg                                      INTERFACE /I${LIBCXX_GENERATED_INCLUDE_TARGET_DIR})
    239  1.1  joerg else()
    240  1.1  joerg   target_compile_options(cxx-headers INTERFACE -I${LIBCXX_GENERATED_INCLUDE_DIR}
    241  1.1  joerg                                      INTERFACE -I${LIBCXX_GENERATED_INCLUDE_TARGET_DIR})
    242  1.1  joerg endif()
    243  1.1  joerg 
    244  1.1  joerg if (LIBCXX_INSTALL_HEADERS)
    245  1.1  joerg   foreach(file ${files})
    246  1.1  joerg     get_filename_component(dir ${file} DIRECTORY)
    247  1.1  joerg     install(FILES ${file}
    248  1.1  joerg       DESTINATION ${LIBCXX_INSTALL_INCLUDE_DIR}/${dir}
    249  1.1  joerg       COMPONENT cxx-headers
    250  1.1  joerg       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
    251  1.1  joerg     )
    252  1.1  joerg   endforeach()
    253  1.1  joerg 
    254  1.1  joerg   # Install the generated __config_site.
    255  1.1  joerg   install(FILES ${LIBCXX_GENERATED_INCLUDE_TARGET_DIR}/__config_site
    256  1.1  joerg     DESTINATION ${LIBCXX_INSTALL_INCLUDE_TARGET_DIR}
    257  1.1  joerg     PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
    258  1.1  joerg     COMPONENT cxx-headers)
    259  1.1  joerg 
    260  1.1  joerg   if (NOT CMAKE_CONFIGURATION_TYPES)
    261  1.1  joerg     add_custom_target(install-cxx-headers
    262  1.1  joerg                       DEPENDS cxx-headers
    263  1.1  joerg                       COMMAND "${CMAKE_COMMAND}"
    264  1.1  joerg                               -DCMAKE_INSTALL_COMPONENT=cxx-headers
    265  1.1  joerg                               -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")
    266  1.1  joerg     # Stripping is a no-op for headers
    267  1.1  joerg     add_custom_target(install-cxx-headers-stripped DEPENDS install-cxx-headers)
    268  1.1  joerg   endif()
    269  1.1  joerg endif()
    270