| import("//clang/resource_dir.gni") |
| import("//libcxx/config.gni") |
| import("//llvm/utils/gn/build/write_cmake_config.gni") |
| |
| declare_args() { |
| # Install libc++ support headers. |
| libcxx_install_support_headers = true |
| } |
| |
| libcxx_needs_site_config = |
| libcxx_abi_version != 1 || libcxx_abi_namespace != "" || libcxx_abi_unstable |
| |
| if (libcxx_needs_site_config) { |
| write_cmake_config("write_config") { |
| input = "__config_site.in" |
| output = "$target_gen_dir/__config_site" |
| |
| values = [] |
| if (libcxx_abi_version != 1) { |
| values += [ "_LIBCPP_ABI_VERSION=$libcxx_abi_version" ] |
| } |
| if (libcxx_abi_namespace != "") { |
| values += [ "_LIBCPP_ABI_NAMESPACE=$libcxx_abi_namespace" ] |
| } |
| if (libcxx_abi_unstable) { |
| values += [ "_LIBCPP_ABI_UNSTABLE=" ] |
| } |
| } |
| |
| # Generate a custom __config header. The new header is created |
| # by prepending __config_site to the current __config header. |
| action("concat_config") { |
| script = "//libcxx/utils/cat_files.py" |
| inputs = [ |
| "$target_gen_dir/__config_site", |
| "__config", |
| ] |
| outputs = [ |
| "$target_gen_dir/__config", |
| ] |
| args = [ |
| "$target_gen_dir/__config_site", |
| "__config", |
| "-o", |
| "$target_gen_dir/__config", |
| ] |
| deps = [ |
| ":write_config", |
| ] |
| } |
| |
| copy("copy_config") { |
| sources = [ |
| "$target_gen_dir/__config", |
| ] |
| outputs = [ |
| "$clang_resource_dir/include/c++/v1/{{source_file_part}}", |
| ] |
| deps = [ |
| ":concat_config", |
| ] |
| } |
| } |
| |
| copy("include") { |
| sources = [ |
| "__bit_reference", |
| "__bsd_locale_defaults.h", |
| "__bsd_locale_fallbacks.h", |
| "__debug", |
| "__errc", |
| "__functional_03", |
| "__functional_base", |
| "__functional_base_03", |
| "__hash_table", |
| "__libcpp_version", |
| "__locale", |
| "__mutex_base", |
| "__node_handle", |
| "__nullptr", |
| "__split_buffer", |
| "__sso_allocator", |
| "__std_stream", |
| "__string", |
| "__threading_support", |
| "__tree", |
| "__tuple", |
| "__undef_macros", |
| "algorithm", |
| "any", |
| "array", |
| "atomic", |
| "bit", |
| "bitset", |
| "cassert", |
| "ccomplex", |
| "cctype", |
| "cerrno", |
| "cfenv", |
| "cfloat", |
| "charconv", |
| "chrono", |
| "cinttypes", |
| "ciso646", |
| "climits", |
| "clocale", |
| "cmath", |
| "codecvt", |
| "compare", |
| "complex", |
| "complex.h", |
| "condition_variable", |
| "csetjmp", |
| "csignal", |
| "cstdarg", |
| "cstdbool", |
| "cstddef", |
| "cstdint", |
| "cstdio", |
| "cstdlib", |
| "cstring", |
| "ctgmath", |
| "ctime", |
| "ctype.h", |
| "cwchar", |
| "cwctype", |
| "deque", |
| "errno.h", |
| "exception", |
| "experimental/__config", |
| "experimental/__memory", |
| "experimental/algorithm", |
| "experimental/coroutine", |
| "experimental/deque", |
| "experimental/filesystem", |
| "experimental/forward_list", |
| "experimental/functional", |
| "experimental/iterator", |
| "experimental/list", |
| "experimental/map", |
| "experimental/memory_resource", |
| "experimental/propagate_const", |
| "experimental/regex", |
| "experimental/set", |
| "experimental/simd", |
| "experimental/string", |
| "experimental/type_traits", |
| "experimental/unordered_map", |
| "experimental/unordered_set", |
| "experimental/utility", |
| "experimental/vector", |
| "ext/__hash", |
| "ext/hash_map", |
| "ext/hash_set", |
| "fenv.h", |
| "filesystem", |
| "float.h", |
| "forward_list", |
| "fstream", |
| "functional", |
| "future", |
| "initializer_list", |
| "inttypes.h", |
| "iomanip", |
| "ios", |
| "iosfwd", |
| "iostream", |
| "istream", |
| "iterator", |
| "limits", |
| "limits.h", |
| "list", |
| "locale", |
| "locale.h", |
| "map", |
| "math.h", |
| "memory", |
| "module.modulemap", |
| "mutex", |
| "new", |
| "numeric", |
| "optional", |
| "ostream", |
| "queue", |
| "random", |
| "ratio", |
| "regex", |
| "scoped_allocator", |
| "set", |
| "setjmp.h", |
| "shared_mutex", |
| "span", |
| "sstream", |
| "stack", |
| "stdbool.h", |
| "stddef.h", |
| "stdexcept", |
| "stdint.h", |
| "stdio.h", |
| "stdlib.h", |
| "streambuf", |
| "string", |
| "string.h", |
| "string_view", |
| "strstream", |
| "system_error", |
| "tgmath.h", |
| "thread", |
| "tuple", |
| "type_traits", |
| "typeindex", |
| "typeinfo", |
| "unordered_map", |
| "unordered_set", |
| "utility", |
| "valarray", |
| "variant", |
| "vector", |
| "version", |
| "wchar.h", |
| "wctype.h", |
| ] |
| deps = [ |
| "//libcxxabi/include", |
| ] |
| if (!libcxx_needs_site_config) { |
| sources += [ "__config" ] |
| } else { |
| deps += [ ":copy_config" ] |
| } |
| if (libcxx_install_support_headers) { |
| sources += [ |
| "support/android/locale_bionic.h", |
| "support/fuchsia/xlocale.h", |
| "support/ibm/limits.h", |
| "support/ibm/locale_mgmt_aix.h", |
| "support/ibm/support.h", |
| "support/ibm/xlocale.h", |
| "support/musl/xlocale.h", |
| "support/newlib/xlocale.h", |
| "support/solaris/floatingpoint.h", |
| "support/solaris/wchar.h", |
| "support/solaris/xlocale.h", |
| "support/xlocale/__nop_locale_mgmt.h", |
| "support/xlocale/__posix_l_fallback.h", |
| "support/xlocale/__strtonum_fallback.h", |
| ] |
| if (target_os == "win") { |
| sources += [ |
| "support/win32/limits_msvc_win32.h", |
| "support/win32/locale_win32.h", |
| ] |
| } |
| } |
| outputs = [ |
| "$root_build_dir/include/c++/v1/{{source_target_relative}}", |
| ] |
| } |