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