Merge branch 'upstream/master'
Change-Id: Ifca8b7f13839b643fefe0c9258a11fab75623f2a
diff --git a/BUILD.gn b/BUILD.gn
new file mode 100644
index 0000000..dc7cec5
--- /dev/null
+++ b/BUILD.gn
@@ -0,0 +1,48 @@
+# Copyright 2018 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Please do not add more entries to this list. We plan to remove
+# abseil-cpp from the Fuchsia platform source tree once cobalt
+# moves out-of-tree.
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/grpc:*",
+ "//third_party/tink/*",
+]
+
+group("abseil-cpp") {
+ public_deps = [ "absl" ]
+}
+
+group("absl") {
+ public_deps = [ "absl" ]
+}
+
+config("abseil_config") {
+ include_dirs = [ "//third_party/abseil-cpp" ]
+
+ cflags = [
+ # Google style does not use unsigned integers, though STL containers
+ # have unsigned types.
+ "-Wno-sign-compare",
+ "-Wno-missing-field-initializers",
+
+ "-Wno-conversion",
+
+ # TODO(fxbug.dev/42055162): This can be removed once all warning options
+ # bellow are supported by the current Fuchsia Clang toolchain.
+ "-Wno-unknown-warning-option",
+
+ # TODO: disable -Wimplicit-int-float-conversion which has been introduced
+ # in https://reviews.llvm.org/D64666 and is failing in duration.cc:190:12
+ "-Wno-implicit-int-float-conversion",
+
+ # TODO(fxbug.dev/42055286): -Warray-parameter is failing in wyhash.cc:31.
+ "-Wno-array-parameter",
+
+ # TODO(fxbug.dev/42055484): -Wdeprecated-builtins is failing in type_traits.h:293.
+ "-Wno-deprecated-builtins",
+ ]
+}
diff --git a/OWNERS b/OWNERS
new file mode 100644
index 0000000..2647c1f
--- /dev/null
+++ b/OWNERS
@@ -0,0 +1,7 @@
+azani@google.com
+camrdale@google.com
+frousseau@google.com
+stevefung@google.com
+zmbush@google.com
+
+# COMPONENT: Cobalt
diff --git a/README.fuchsia b/README.fuchsia
new file mode 100644
index 0000000..c16078e
--- /dev/null
+++ b/README.fuchsia
@@ -0,0 +1,2 @@
+Name: Abseil - C++ Common Libraries
+License File: LICENSE
diff --git a/absl/BUILD.gn b/absl/BUILD.gn
new file mode 100644
index 0000000..04c2c34
--- /dev/null
+++ b/absl/BUILD.gn
@@ -0,0 +1,64 @@
+# Copyright 2018 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/tink/*",
+]
+
+group("absl") {
+ public_deps = [
+ "algorithm",
+ "algorithm:container",
+ "base",
+ "base:atomic_hook",
+ "base:config",
+ "base:core_headers",
+ "base:dynamic_annotations",
+ "base:endian",
+ "base:log_severity",
+ "base:throw_delegate",
+ "cleanup",
+ "container:compressed_tuple",
+ "container:container_memory",
+ "container:fixed_array",
+ "container:flat_hash_map",
+ "container:hash_function_defaults",
+ "container:hash_policy_traits",
+ "container:hashtable_debug_hooks",
+ "container:hashtablez_sampler",
+ "container:have_sse",
+ "container:inlined_vector",
+ "container:layout",
+ "container:raw_hash_map",
+ "container:raw_hash_set",
+ "debugging:stacktrace",
+ "debugging:symbolize",
+ "functional:bind_front",
+ "functional:function_ref",
+ "hash",
+ "hash:city",
+ "hash:wyhash",
+ "memory",
+ "meta:type_traits",
+ "numeric:bits",
+ "numeric:int128",
+ "numeric:representation",
+ "random",
+ "status",
+ "status:statusor",
+ "strings",
+ "strings:cord",
+ "strings:str_format",
+ "synchronization:synchronization",
+ "time",
+ "types:bad_optional_access",
+ "types:bad_variant_access",
+ "types:optional",
+ "types:span",
+ "types:variant",
+ "utility",
+ ]
+}
diff --git a/absl/algorithm/BUILD.gn b/absl/algorithm/BUILD.gn
new file mode 100644
index 0000000..139a09d
--- /dev/null
+++ b/absl/algorithm/BUILD.gn
@@ -0,0 +1,26 @@
+# Copyright 2019 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/tink/*",
+]
+
+# CC Library : algorithm
+source_set("algorithm") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ public = [ "algorithm.h" ]
+}
+
+# CC Library : container
+source_set("container") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ public = [ "container.h" ]
+ public_deps = [
+ ":algorithm",
+ "../base:core_headers",
+ "../meta:type_traits",
+ ]
+}
diff --git a/absl/base/BUILD.gn b/absl/base/BUILD.gn
new file mode 100644
index 0000000..0354aba
--- /dev/null
+++ b/absl/base/BUILD.gn
@@ -0,0 +1,264 @@
+# Copyright 2018 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Please do not add more entries to this list. We plan to remove
+# abseil-cpp from the Fuchsia platform source tree once cobalt
+# moves out-of-tree.
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/gvisor_syscall_tests/*",
+ "//third_party/tink/*",
+]
+
+source_set("atomic_hook") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/atomic_hook.h" ]
+
+ deps = [
+ ":config",
+ ":core_headers",
+ ]
+}
+
+source_set("errno_saver") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/errno_saver.h" ]
+
+ deps = [ ":config" ]
+}
+
+source_set("log_severity") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "log_severity.cc" ]
+ public = [ "log_severity.h" ]
+
+ deps = [
+ ":config",
+ ":core_headers",
+ ]
+}
+
+source_set("raw_logging_internal") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/raw_logging.cc" ]
+ public = [ "internal/raw_logging.h" ]
+
+ deps = [
+ ":atomic_hook",
+ ":config",
+ ":core_headers",
+ ":log_severity",
+ ]
+}
+
+source_set("spinlock_wait") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [
+ "internal/spinlock_akaros.inc",
+ "internal/spinlock_linux.inc",
+ "internal/spinlock_posix.inc",
+ "internal/spinlock_wait.cc",
+ "internal/spinlock_win32.inc",
+ ]
+ public = [ "internal/spinlock_wait.h" ]
+
+ deps = [
+ ":base_internal",
+ ":core_headers",
+ ":errno_saver",
+ ]
+}
+
+source_set("config") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [
+ "config.h",
+ "options.h",
+ "policy_checks.h",
+ ]
+}
+
+source_set("dynamic_annotations") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/dynamic_annotations.h" ]
+ public = [ "dynamic_annotations.h" ]
+
+ deps = [
+ ":config",
+ ":core_headers",
+ ]
+}
+
+source_set("core_headers") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/thread_annotations.h" ]
+ public = [
+ "attributes.h",
+ "const_init.h",
+ "macros.h",
+ "optimization.h",
+ "port.h",
+ "thread_annotations.h",
+ ]
+
+ deps = [ ":config" ]
+}
+
+source_set("malloc_internal") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/low_level_alloc.cc" ]
+ public = [
+ "internal/direct_mmap.h",
+ "internal/low_level_alloc.h",
+ ]
+ deps = [
+ ":base",
+ ":base_internal",
+ ":config",
+ ":core_headers",
+ ":dynamic_annotations",
+ ":raw_logging_internal",
+ ]
+}
+
+source_set("base_internal") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [
+ "internal/hide_ptr.h",
+ "internal/identity.h",
+ "internal/inline_variable.h",
+ "internal/invoke.h",
+ "internal/scheduling_mode.h",
+ ]
+
+ deps = [
+ ":config",
+ "../meta:type_traits",
+ ]
+}
+
+source_set("base") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [
+ "internal/cycleclock.cc",
+ "internal/spinlock.cc",
+ "internal/sysinfo.cc",
+ "internal/thread_identity.cc",
+ "internal/unscaledcycleclock.cc",
+ ]
+ public = [
+ "call_once.h",
+ "casts.h",
+ "internal/cycleclock.h",
+ "internal/low_level_scheduling.h",
+ "internal/per_thread_tls.h",
+ "internal/spinlock.h",
+ "internal/sysinfo.h",
+ "internal/thread_identity.h",
+ "internal/tsan_mutex_interface.h",
+ "internal/unscaledcycleclock.h",
+ ]
+
+ deps = [
+ ":atomic_hook",
+ ":base_internal",
+ ":config",
+ ":core_headers",
+ ":dynamic_annotations",
+ ":log_severity",
+ ":raw_logging_internal",
+ ":spinlock_wait",
+ "../meta:type_traits",
+ ]
+}
+
+source_set("throw_delegate") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/throw_delegate.cc" ]
+ public = [ "internal/throw_delegate.h" ]
+
+ deps = [
+ ":config",
+ ":raw_logging_internal",
+ ]
+}
+
+source_set("pretty_function") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/pretty_function.h" ]
+}
+
+source_set("endian") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [
+ "internal/endian.h",
+ "internal/unaligned_access.h",
+ ]
+
+ deps = [
+ ":base",
+ ":config",
+ ":core_headers",
+ ]
+}
+
+source_set("exponential_biased") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/exponential_biased.cc" ]
+ public = [ "internal/exponential_biased.h" ]
+
+ deps = [
+ ":config",
+ ":core_headers",
+ ]
+}
+
+source_set("periodic_sampler") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/periodic_sampler.cc" ]
+ public = [ "internal/periodic_sampler.h" ]
+
+ deps = [
+ ":core_headers",
+ ":exponential_biased",
+ ]
+}
+
+source_set("strerror") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/strerror.cc" ]
+ public = [ "internal/strerror.h" ]
+
+ deps = [
+ ":config",
+ ":core_headers",
+ ":errno_saver",
+ ]
+}
+
+source_set("fast_type_id") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/fast_type_id.h" ]
+
+ deps = [ ":config" ]
+}
diff --git a/absl/cleanup/BUILD.gn b/absl/cleanup/BUILD.gn
new file mode 100644
index 0000000..f595ed8
--- /dev/null
+++ b/absl/cleanup/BUILD.gn
@@ -0,0 +1,40 @@
+# Copyright 2018 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Please do not add more entries to this list. We plan to remove
+# abseil-cpp from the Fuchsia platform source tree once cobalt
+# moves out-of-tree.
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/tink/*",
+]
+
+source_set("cleanup") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [
+ "cleanup.h",
+ ]
+
+ deps = [
+ ":cleanup_internal",
+ "../base:config",
+ "../base:core_headers",
+ ]
+}
+
+source_set("cleanup_internal") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [
+ "internal/cleanup.h",
+ ]
+
+ deps = [
+ "../base:base_internal",
+ "../base:core_headers",
+ "../utility",
+ ]
+}
diff --git a/absl/container/BUILD.gn b/absl/container/BUILD.gn
new file mode 100644
index 0000000..66a537f
--- /dev/null
+++ b/absl/container/BUILD.gn
@@ -0,0 +1,292 @@
+# Copyright 2019 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/gvisor_syscall_tests/*",
+ "//third_party/tink/*",
+]
+
+source_set("compressed_tuple") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/compressed_tuple.h" ]
+
+ deps = [ "../utility" ]
+}
+
+source_set("fixed_array") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "fixed_array.h" ]
+
+ deps = [
+ ":compressed_tuple",
+ "../algorithm",
+ "../base:config",
+ "../base:core_headers",
+ "../base:dynamic_annotations",
+ "../base:throw_delegate",
+ "../memory",
+ ]
+}
+
+source_set("inlined_vector_internal") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/inlined_vector.h" ]
+
+ deps = [
+ ":compressed_tuple",
+ "../base:core_headers",
+ "../memory",
+ "../meta:type_traits",
+ "../types:span",
+ ]
+}
+
+source_set("inlined_vector") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "inlined_vector.h" ]
+
+ deps = [
+ ":inlined_vector_internal",
+ "../algorithm",
+ "../base:core_headers",
+ "../base:throw_delegate",
+ "../memory",
+ ]
+}
+
+source_set("flat_hash_map") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "flat_hash_map.h" ]
+
+ deps = [
+ ":container_memory",
+ ":hash_function_defaults",
+ ":raw_hash_map",
+ "../algorithm:container",
+ "../memory",
+ ]
+}
+source_set("flat_hash_set") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "flat_hash_set.h" ]
+
+ deps = [
+ ":container_memory",
+ ":hash_function_defaults",
+ ":raw_hash_set",
+ "../algorithm:container",
+ "../base:core_headers",
+ "../memory",
+ ]
+}
+
+source_set("node_hash_map") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "node_hash_map.h" ]
+
+ deps = [
+ ":container_memory",
+ ":hash_function_defaults",
+ ":node_hash_policy",
+ ":raw_hash_map",
+ "../algorithm:container",
+ "../memory",
+ ]
+}
+source_set("node_hash_set") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "node_hash_set.h" ]
+
+ deps = [
+ ":hash_function_defaults",
+ ":node_hash_policy",
+ ":raw_hash_set",
+ "../algorithm:container",
+ "../memory",
+ ]
+}
+source_set("container_memory") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/container_memory.h" ]
+
+ deps = [
+ "../base:config",
+ "../memory",
+ "../meta:type_traits",
+ "../utility",
+ ]
+}
+source_set("hash_function_defaults") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/hash_function_defaults.h" ]
+
+ deps = [
+ "../base:config",
+ "../hash",
+ "../strings",
+ "../strings:cord",
+ ]
+}
+
+source_set("hash_policy_traits") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/hash_policy_traits.h" ]
+
+ deps = [ "../meta:type_traits" ]
+}
+
+source_set("hashtable_debug") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/hashtable_debug.h" ]
+
+ deps = [ ":hashtable_debug_hooks" ]
+}
+
+source_set("hashtable_debug_hooks") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/hashtable_debug_hooks.h" ]
+
+ deps = [ "../base:config" ]
+}
+
+source_set("hashtablez_sampler") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [
+ "internal/hashtablez_sampler.cc",
+ "internal/hashtablez_sampler_force_weak_definition.cc",
+ ]
+ public = [ "internal/hashtablez_sampler.h" ]
+
+ deps = [
+ ":have_sse",
+ "../base",
+ "../base:core_headers",
+ "../base:exponential_biased",
+ "../debugging:stacktrace",
+ "../memory",
+ "../synchronization",
+ "../utility",
+ ]
+}
+
+source_set("node_hash_policy") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/node_hash_policy.h" ]
+
+ deps = [ "../base:config" ]
+}
+
+source_set("raw_hash_map") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/raw_hash_map.h" ]
+
+ deps = [
+ ":container_memory",
+ ":raw_hash_set",
+ "../base:throw_delegate",
+ ]
+}
+
+source_set("have_sse") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/have_sse.h" ]
+}
+
+source_set("common") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/common.h" ]
+
+ deps = [
+ "../meta:type_traits",
+ "../types:optional",
+ ]
+}
+
+source_set("raw_hash_set") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/raw_hash_set.cc" ]
+ public = [ "internal/raw_hash_set.h" ]
+
+ deps = [
+ ":common",
+ ":compressed_tuple",
+ ":container_memory",
+ ":hash_policy_traits",
+ ":hashtable_debug_hooks",
+ ":hashtablez_sampler",
+ ":have_sse",
+ ":layout",
+ "../base:config",
+ "../base:core_headers",
+ "../base:endian",
+ "../memory",
+ "../meta:type_traits",
+ "../numeric:bits",
+ "../utility",
+ ]
+}
+
+source_set("layout") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/layout.h" ]
+
+ deps = [
+ "../base:config",
+ "../base:core_headers",
+ "../meta:type_traits",
+ "../strings",
+ "../types:span",
+ "../utility",
+ ]
+}
+
+source_set("btree") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [
+ "internal/btree.h",
+ "internal/btree_container.h",
+ ]
+ public = [
+ "btree_map.h",
+ "btree_set.h",
+ ]
+
+ deps = [
+ ":common",
+ ":compressed_tuple",
+ ":container_memory",
+ ":layout",
+ "../base:core_headers",
+ "../base:throw_delegate",
+ "../memory",
+ "../meta:type_traits",
+ "../strings",
+ "../strings:cord",
+ "../types:compare",
+ "../utility",
+ ]
+}
diff --git a/absl/debugging/BUILD.gn b/absl/debugging/BUILD.gn
new file mode 100644
index 0000000..a5af441
--- /dev/null
+++ b/absl/debugging/BUILD.gn
@@ -0,0 +1,73 @@
+# Copyright 2018 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/tink/*",
+]
+
+source_set("stacktrace") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "stacktrace.cc" ]
+ public = [ "stacktrace.h" ]
+ deps = [
+ ":debugging_internal",
+ "../base",
+ "../base:core_headers",
+ ]
+}
+source_set("symbolize") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [
+ "symbolize.cc",
+ "symbolize_elf.inc",
+ "symbolize_unimplemented.inc",
+ "symbolize_win32.inc",
+ ]
+ public = [
+ "internal/symbolize.h",
+ "symbolize.h",
+ ]
+ deps = [
+ ":debugging_internal",
+ ":demangle_internal",
+ "../base",
+ "../base:core_headers",
+ "../base:malloc_internal",
+ ]
+}
+
+source_set("demangle_internal") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/demangle.cc" ]
+ public = [ "internal/demangle.h" ]
+ deps = [
+ "../base",
+ "../base:core_headers",
+ ]
+}
+
+source_set("debugging_internal") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [
+ "internal/address_is_readable.cc",
+ "internal/elf_mem_image.cc",
+ "internal/vdso_support.cc",
+ ]
+ public = [
+ "internal/address_is_readable.h",
+ "internal/elf_mem_image.h",
+ "internal/stacktrace_config.h",
+ "internal/vdso_support.h",
+ ]
+ deps = [
+ "../base",
+ "../base:dynamic_annotations",
+ ]
+}
diff --git a/absl/flags/BUILD.gn b/absl/flags/BUILD.gn
new file mode 100644
index 0000000..714fc9a
--- /dev/null
+++ b/absl/flags/BUILD.gn
@@ -0,0 +1,220 @@
+# Copyright 2021 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Please do not add more entries to this list. We plan to remove
+# abseil-cpp from the Fuchsia platform source tree once cobalt
+# moves out-of-tree.
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/gvisor_syscall_tests/*",
+ "//third_party/tink/*",
+]
+
+source_set("path_util") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ public = [ "internal/path_util.h" ]
+ deps = [
+ "../base:config",
+ "../strings",
+ ]
+}
+
+source_set("program_name") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ sources = [ "internal/program_name.cc" ]
+ public = [ "internal/program_name.h" ]
+ deps = [
+ ":path_util",
+ "../base:config",
+ "../base:core_headers",
+ "../strings",
+ "../synchronization",
+ ]
+}
+
+source_set("config") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ sources = [ "usage_config.cc" ]
+ public = [
+ "config.h",
+ "usage_config.h",
+ ]
+ deps = [
+ ":path_util",
+ ":program_name",
+ "../base:config",
+ "../base:core_headers",
+ "../strings",
+ "../synchronization",
+ ]
+}
+
+source_set("marshalling") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ sources = [ "marshalling.cc" ]
+ public = [ "marshalling.h" ]
+ deps = [
+ "../base:config",
+ "../base:core_headers",
+ "../base:log_severity",
+ "../strings",
+ "../strings:str_format",
+ ]
+}
+
+source_set("commandlineflag_internal") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ sources = [ "internal/commandlineflag.cc" ]
+ public = [ "internal/commandlineflag.h" ]
+ deps = [
+ "../base:config",
+ "../base:fast_type_id",
+ ]
+}
+
+source_set("commandlineflag") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ sources = [ "commandlineflag.cc" ]
+ public = [ "commandlineflag.h" ]
+ deps = [
+ ":commandlineflag_internal",
+ "../base:config",
+ "../base:fast_type_id",
+ "../strings",
+ "../types:optional",
+ ]
+}
+
+source_set("private_handle_accessor") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ sources = [ "internal/private_handle_accessor.cc" ]
+ public = [ "internal/private_handle_accessor.h" ]
+ deps = [
+ ":commandlineflag",
+ ":commandlineflag_internal",
+ "../base:config",
+ "../strings",
+ ]
+}
+
+source_set("reflection") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ sources = [ "reflection.cc" ]
+ public = [
+ "internal/registry.h",
+ "reflection.h",
+ ]
+ deps = [
+ ":commandlineflag",
+ ":commandlineflag_internal",
+ ":config",
+ ":private_handle_accessor",
+ "../base:config",
+ "../base:core_headers",
+ "../container:flat_hash_map",
+ "../strings",
+ "../synchronization",
+ ]
+}
+
+source_set("flag_internal") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ sources = [ "internal/flag.cc" ]
+ public = [
+ "internal/flag.h",
+ "internal/sequence_lock.h",
+ ]
+ deps = [
+ ":commandlineflag",
+ ":commandlineflag_internal",
+ ":config",
+ ":marshalling",
+ ":reflection",
+ "../base",
+ "../base:config",
+ "../base:core_headers",
+ "../memory",
+ "../meta:type_traits",
+ "../strings",
+ "../synchronization",
+ "../utility",
+ ]
+}
+
+source_set("flag") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ sources = [ "flag.cc" ]
+ public = [
+ "declare.h",
+ "flag.h",
+ ]
+ deps = [
+ ":config",
+ ":flag_internal",
+ ":reflection",
+ "../base",
+ "../base:config",
+ "../base:core_headers",
+ "../strings",
+ ]
+}
+
+source_set("usage_internal") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ sources = [ "internal/usage.cc" ]
+ public = [ "internal/usage.h" ]
+ deps = [
+ ":commandlineflag",
+ ":config",
+ ":flag",
+ ":flag_internal",
+ ":path_util",
+ ":private_handle_accessor",
+ ":program_name",
+ ":reflection",
+ "../base:config",
+ "../base:core_headers",
+ "../container:flat_hash_map",
+ "../strings",
+ ]
+}
+
+source_set("usage") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ sources = [ "usage.cc" ]
+ public = [ "usage.h" ]
+ deps = [
+ ":usage_internal",
+ "../base:config",
+ "../base:core_headers",
+ "../strings",
+ "../synchronization",
+ ]
+}
+
+source_set("parse") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ sources = [ "parse.cc" ]
+ public = [
+ "internal/parse.h",
+ "parse.h",
+ ]
+ deps = [
+ ":commandlineflag",
+ ":commandlineflag_internal",
+ ":config",
+ ":flag",
+ ":flag_internal",
+ ":private_handle_accessor",
+ ":program_name",
+ ":reflection",
+ ":usage",
+ ":usage_internal",
+ "../base:config",
+ "../base:core_headers",
+ "../strings",
+ "../synchronization",
+ ]
+}
diff --git a/absl/functional/BUILD.gn b/absl/functional/BUILD.gn
new file mode 100644
index 0000000..e9194ea
--- /dev/null
+++ b/absl/functional/BUILD.gn
@@ -0,0 +1,36 @@
+# Copyright 2018 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Please do not add more entries to this list. We plan to remove
+# abseil-cpp from the Fuchsia platform source tree once cobalt
+# moves out-of-tree.
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/tink/*",
+]
+
+source_set("bind_front") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/front_binder.h" ]
+ public = [ "bind_front.h" ]
+ deps = [
+ "../base:base_internal",
+ "../container:compressed_tuple",
+ "../meta:type_traits",
+ "../utility",
+ ]
+}
+
+source_set("function_ref") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/function_ref.h" ]
+ public = [ "function_ref.h" ]
+ deps = [
+ "../base:base_internal",
+ "../meta:type_traits",
+ ]
+}
diff --git a/absl/hash/BUILD.gn b/absl/hash/BUILD.gn
new file mode 100644
index 0000000..f086323
--- /dev/null
+++ b/absl/hash/BUILD.gn
@@ -0,0 +1,60 @@
+# Copyright 2019 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/tink/*",
+]
+
+source_set("hash") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [
+ "internal/hash.cc",
+ "internal/hash.h",
+ ]
+ public = [ "hash.h" ]
+
+ deps = [
+ ":city",
+ ":wyhash",
+ "../base:config",
+ "../base:core_headers",
+ "../base:endian",
+ "../container:fixed_array",
+ "../meta:type_traits",
+ "../numeric:int128",
+ "../strings",
+ "../types:optional",
+ "../types:variant",
+ "../utility",
+ ]
+}
+
+source_set("city") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/city.cc" ]
+ public = [ "internal/city.h" ]
+
+ deps = [
+ "../base:config",
+ "../base:core_headers",
+ "../base:endian",
+ ]
+}
+
+source_set("wyhash") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/wyhash.cc" ]
+ public = [ "internal/wyhash.h" ]
+
+ deps = [
+ "../base:config",
+ "../base:endian",
+ "../numeric:int128",
+ ]
+}
diff --git a/absl/memory/BUILD.gn b/absl/memory/BUILD.gn
new file mode 100644
index 0000000..eb48ec9
--- /dev/null
+++ b/absl/memory/BUILD.gn
@@ -0,0 +1,24 @@
+# Copyright 2018 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Please do not add more entries to this list. We plan to remove
+# abseil-cpp from the Fuchsia platform source tree once cobalt
+# moves out-of-tree.
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/gvisor_syscall_tests/*",
+ "//third_party/tink/*",
+]
+
+source_set("memory") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "memory.h" ]
+
+ deps = [
+ "../base:core_headers",
+ "../meta:type_traits",
+ ]
+}
diff --git a/absl/meta/BUILD.gn b/absl/meta/BUILD.gn
new file mode 100644
index 0000000..1ef2a5c
--- /dev/null
+++ b/absl/meta/BUILD.gn
@@ -0,0 +1,20 @@
+# Copyright 2018 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Please do not add more entries to this list. We plan to remove
+# abseil-cpp from the Fuchsia platform source tree once cobalt
+# moves out-of-tree.
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/tink/*",
+]
+
+source_set("type_traits") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "type_traits.h" ]
+
+ deps = [ "../base:config" ]
+}
diff --git a/absl/numeric/BUILD.gn b/absl/numeric/BUILD.gn
new file mode 100644
index 0000000..964b6d4
--- /dev/null
+++ b/absl/numeric/BUILD.gn
@@ -0,0 +1,48 @@
+# Copyright 2018 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Please do not add more entries to this list. We plan to remove
+# abseil-cpp from the Fuchsia platform source tree once cobalt
+# moves out-of-tree.
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/tink/*",
+]
+
+source_set("bits") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [
+ "bits.h",
+ "internal/bits.h",
+ ]
+ deps = [
+ "../base:config",
+ "../base:core_headers",
+ ]
+}
+
+source_set("int128") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [
+ "int128.cc",
+ "int128_have_intrinsic.inc",
+ "int128_no_intrinsic.inc",
+ ]
+ public = [ "int128.h" ]
+ deps = [
+ ":bits",
+ "../base:config",
+ "../base:core_headers",
+ ]
+}
+
+source_set("representation") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/representation.h" ]
+ deps = [ "../base:config" ]
+}
diff --git a/absl/random/BUILD.gn b/absl/random/BUILD.gn
new file mode 100644
index 0000000..35d0915
--- /dev/null
+++ b/absl/random/BUILD.gn
@@ -0,0 +1,97 @@
+# Copyright 2022 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Please do not add more entries to this list. We plan to remove
+# abseil-cpp from the Fuchsia platform source tree once cobalt
+# moves out-of-tree.
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/tink/*",
+]
+
+source_set("random") {
+ public = [ "random.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ ":distributions",
+ ":seed_sequences",
+ "internal:nonsecure_base",
+ "internal:pcg_engine",
+ "internal:pool_urbg",
+ "internal:randen_engine",
+ ]
+}
+
+source_set("distributions") {
+ sources = [
+ "discrete_distribution.cc",
+ "gaussian_distribution.cc",
+ ]
+ public = [
+ "bernoulli_distribution.h",
+ "beta_distribution.h",
+ "discrete_distribution.h",
+ "distributions.h",
+ "exponential_distribution.h",
+ "gaussian_distribution.h",
+ "log_uniform_int_distribution.h",
+ "poisson_distribution.h",
+ "uniform_int_distribution.h",
+ "uniform_real_distribution.h",
+ "zipf_distribution.h",
+ ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ "../base:base_internal",
+ "../base:config",
+ "../base:core_headers",
+ "../meta:type_traits",
+ "../numeric:bits",
+ "../strings",
+ "internal:distribution_caller",
+ "internal:fast_uniform_bits",
+ "internal:fastmath",
+ "internal:generate_real",
+ "internal:iostream_state_saver",
+ "internal:traits",
+ "internal:uniform_helper",
+ "internal:wide_multiply",
+ ]
+}
+
+source_set("seed_gen_exception") {
+ sources = [ "seed_gen_exception.cc" ]
+ public = [ "seed_gen_exception.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [ "../base:config" ]
+}
+
+source_set("seed_sequences") {
+ sources = [ "seed_sequences.cc" ]
+ public = [ "seed_sequences.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ ":seed_gen_exception",
+ "../container:inlined_vector",
+ "../types:span",
+ "internal:nonsecure_base",
+ "internal:pool_urbg",
+ "internal:salted_seed_seq",
+ "internal:seed_material",
+ ]
+}
+
+source_set("bit_gen_ref") {
+ public = [ "bit_gen_ref.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ ":random",
+ "../base:core_headers",
+ "../base:fast_type_id",
+ "../meta:type_traits",
+ "internal:distribution_caller",
+ "internal:fast_uniform_bits",
+ ]
+}
diff --git a/absl/random/internal/BUILD.gn b/absl/random/internal/BUILD.gn
new file mode 100644
index 0000000..9359a63
--- /dev/null
+++ b/absl/random/internal/BUILD.gn
@@ -0,0 +1,239 @@
+# Copyright 2022 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Please do not add more entries to this list. We plan to remove
+# abseil-cpp from the Fuchsia platform source tree once cobalt
+# moves out-of-tree.
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/tink/*",
+]
+
+source_set("traits") {
+ public = [ "traits.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [ "../../base:config" ]
+}
+
+source_set("distribution_caller") {
+ public = [ "distribution_caller.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ "../../base:config",
+ "../../base:fast_type_id",
+ "../../utility",
+ ]
+}
+
+source_set("fast_uniform_bits") {
+ public = [ "fast_uniform_bits.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ "../../base:config",
+ "../../meta:type_traits",
+ ]
+}
+
+source_set("seed_material") {
+ sources = [ "seed_material.cc" ]
+ public = [ "seed_material.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ ":fast_uniform_bits",
+ "../../base:core_headers",
+ "../../base:dynamic_annotations",
+ "../../base:raw_logging_internal",
+ "../../strings",
+ "../../types:optional",
+ "../../types:span",
+ ]
+}
+
+source_set("pool_urbg") {
+ sources = [ "pool_urbg.cc" ]
+ public = [ "pool_urbg.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ ":randen",
+ ":seed_material",
+ ":traits",
+ "../../base",
+ "../../base:config",
+ "../../base:core_headers",
+ "../../base:endian",
+ "../../base:raw_logging_internal",
+ "../../random:seed_gen_exception",
+ "../../types:span",
+ ]
+}
+
+source_set("salted_seed_seq") {
+ public = [ "salted_seed_seq.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ ":seed_material",
+ "../../container:inlined_vector",
+ "../../meta:type_traits",
+ "../../types:optional",
+ "../../types:span",
+ ]
+}
+
+source_set("iostream_state_saver") {
+ public = [ "iostream_state_saver.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ "../../meta:type_traits",
+ "../../numeric:int128",
+ ]
+}
+
+source_set("generate_real") {
+ public = [ "generate_real.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ ":fastmath",
+ ":traits",
+ "../../meta:type_traits",
+ "../../numeric:bits",
+ ]
+}
+
+source_set("fastmath") {
+ public = [ "fastmath.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [ "../../numeric:bits" ]
+}
+
+source_set("wide_multiply") {
+ public = [ "wide_multiply.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ ":traits",
+ "../../base:config",
+ "../../numeric:bits",
+ "../../numeric:int128",
+ ]
+}
+
+source_set("nonsecure_base") {
+ public = [ "nonsecure_base.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ ":pool_urbg",
+ ":salted_seed_seq",
+ ":seed_material",
+ "../../base:core_headers",
+ "../../meta:type_traits",
+ "../../types:optional",
+ "../../types:span",
+ ]
+}
+
+source_set("pcg_engine") {
+ public = [ "pcg_engine.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ ":fastmath",
+ ":iostream_state_saver",
+ "../../base:config",
+ "../../meta:type_traits",
+ "../../numeric:bits",
+ "../../numeric:int128",
+ ]
+}
+
+source_set("randen_engine") {
+ public = [ "randen_engine.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ ":iostream_state_saver",
+ ":randen",
+ "../../base:endian",
+ "../../meta:type_traits",
+ ]
+}
+
+source_set("platform") {
+ sources = [ "randen_round_keys.cc" ]
+ public = [
+ "platform.h",
+ "randen_traits.h",
+ ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [ "../../base:config" ]
+}
+
+source_set("randen") {
+ sources = [ "randen.cc" ]
+ public = [ "randen.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ ":platform",
+ ":randen_hwaes",
+ ":randen_slow",
+ "../../base:raw_logging_internal",
+ ]
+}
+
+source_set("randen_slow") {
+ sources = [ "randen_slow.cc" ]
+ public = [ "randen_slow.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ ":platform",
+ "../../base:config",
+ "../../base:core_headers",
+ "../../base:endian",
+ "../../numeric:int128",
+ ]
+}
+
+source_set("randen_hwaes") {
+ sources = [ "randen_detect.cc" ]
+ public = [
+ "randen_detect.h",
+ "randen_hwaes.h",
+ ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ ":platform",
+ ":randen_hwaes_impl",
+ "../../base:config",
+ ]
+}
+
+# build with --save_temps to see assembly language output.
+source_set("randen_hwaes_impl") {
+ sources = [
+ "randen_hwaes.cc",
+ "randen_hwaes.h",
+ ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ ":platform",
+ "../../base:config",
+ "../../base:core_headers",
+ "../../numeric:int128",
+ ]
+}
+
+source_set("mock_helpers") {
+ public = [ "mock_helpers.h" ]
+ deps = [
+ "../../base:fast_type_id",
+ "../../types:optional",
+ ]
+}
+
+source_set("uniform_helper") {
+ public = [ "uniform_helper.h" ]
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ deps = [
+ ":traits",
+ "../../base:config",
+ "../../meta:type_traits",
+ ]
+}
diff --git a/absl/status/BUILD.gn b/absl/status/BUILD.gn
new file mode 100644
index 0000000..7d9227c
--- /dev/null
+++ b/absl/status/BUILD.gn
@@ -0,0 +1,51 @@
+# Copyright 2018 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Please do not add more entries to this list. We plan to remove
+# abseil-cpp from the Fuchsia platform source tree once cobalt
+# moves out-of-tree.
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/gvisor_syscall_tests/*",
+ "//third_party/tink/*",
+]
+
+source_set("status") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ public = [
+ "status.h",
+ "status_payload_printer.h",
+ ]
+
+ sources = [
+ "internal/status_internal.h",
+ "status.cc",
+ "status_payload_printer.cc",
+ ]
+ deps = [
+ "../base:atomic_hook",
+ "../base:config",
+ "../base:core_headers",
+ "../base:raw_logging_internal",
+ "../container:inlined_vector",
+ "../debugging:stacktrace",
+ "../debugging:symbolize",
+ "../strings",
+ "../strings:cord",
+ "../strings:str_format",
+ "../types:optional",
+ ]
+}
+
+source_set("statusor") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ public = [ "statusor.h" ]
+
+ sources = [
+ "internal/statusor_internal.h",
+ "statusor.cc",
+ ]
+ deps = [ ":status" ]
+}
diff --git a/absl/strings/BUILD.gn b/absl/strings/BUILD.gn
new file mode 100644
index 0000000..779244b
--- /dev/null
+++ b/absl/strings/BUILD.gn
@@ -0,0 +1,301 @@
+# Copyright 2018 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Please do not add more entries to this list. We plan to remove
+# abseil-cpp from the Fuchsia platform source tree once cobalt
+# moves out-of-tree.
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/gvisor_syscall_tests/*",
+ "//third_party/tink/*",
+]
+
+source_set("strings") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [
+ "ascii.cc",
+ "charconv.cc",
+ "escaping.cc",
+ "internal/charconv_bigint.cc",
+ "internal/charconv_bigint.h",
+ "internal/charconv_parse.cc",
+ "internal/charconv_parse.h",
+ "internal/memutil.cc",
+ "internal/memutil.h",
+ "internal/stl_type_traits.h",
+ "internal/str_join_internal.h",
+ "internal/str_split_internal.h",
+ "match.cc",
+ "numbers.cc",
+ "str_cat.cc",
+ "str_replace.cc",
+ "str_split.cc",
+ "string_view.cc",
+ "substitute.cc",
+ ]
+ public = [
+ "ascii.h",
+ "charconv.h",
+ "escaping.h",
+ "internal/string_constant.h",
+ "match.h",
+ "numbers.h",
+ "str_cat.h",
+ "str_join.h",
+ "str_replace.h",
+ "str_split.h",
+ "string_view.h",
+ "strip.h",
+ "substitute.h",
+ ]
+
+ deps = [
+ ":internal",
+ "../base",
+ "../base:config",
+ "../base:core_headers",
+ "../base:endian",
+ "../base:raw_logging_internal",
+ "../base:throw_delegate",
+ "../memory",
+ "../meta:type_traits",
+ "../numeric:bits",
+ "../numeric:int128",
+ ]
+}
+
+source_set("internal") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [
+ "internal/escaping.cc",
+ "internal/ostringstream.cc",
+ "internal/utf8.cc",
+ ]
+ public = [
+ "internal/char_map.h",
+ "internal/escaping.h",
+ "internal/ostringstream.h",
+ "internal/resize_uninitialized.h",
+ "internal/utf8.h",
+ ]
+
+ deps = [
+ "../base:config",
+ "../base:core_headers",
+ "../base:endian",
+ "../base:raw_logging_internal",
+ "../meta:type_traits",
+ ]
+}
+
+source_set("cord_internal") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [
+ "internal/cord_internal.cc",
+ "internal/cord_rep_btree.cc",
+ "internal/cord_rep_btree_navigator.cc",
+ "internal/cord_rep_btree_reader.cc",
+ "internal/cord_rep_consume.cc",
+ "internal/cord_rep_ring.cc",
+ ]
+ public = [
+ "internal/cord_internal.h",
+ "internal/cord_rep_btree.h",
+ "internal/cord_rep_btree_navigator.h",
+ "internal/cord_rep_btree_reader.h",
+ "internal/cord_rep_consume.h",
+ "internal/cord_rep_flat.h",
+ "internal/cord_rep_ring.h",
+ "internal/cord_rep_ring_reader.h",
+ ]
+
+ deps = [
+ ":strings",
+ "../base:base_internal",
+ "../base:config",
+ "../base:core_headers",
+ "../base:endian",
+ "../base:raw_logging_internal",
+ "../base:throw_delegate",
+ "../container:compressed_tuple",
+ "../container:inlined_vector",
+ "../container:layout",
+ "../functional:function_ref",
+ "../meta:type_traits",
+ "../types:span",
+ ]
+}
+
+source_set("cordz_update_tracker") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/cordz_update_tracker.h" ]
+
+ deps = [ "../base:config" ]
+}
+
+source_set("cord") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "cord.cc" ]
+ public = [ "cord.h" ]
+
+ deps = [
+ ":cord_internal",
+ ":cordz_functions",
+ ":cordz_info",
+ ":cordz_statistics",
+ ":cordz_update_scope",
+ ":cordz_update_tracker",
+ ":internal",
+ ":str_format",
+ ":strings",
+ "../base",
+ "../base:config",
+ "../base:core_headers",
+ "../base:endian",
+ "../base:raw_logging_internal",
+ "../container:fixed_array",
+ "../container:inlined_vector",
+ "../functional:function_ref",
+ "../meta:type_traits",
+ "../types:optional",
+ ]
+}
+
+source_set("cordz_handle") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/cordz_handle.cc" ]
+ public = [ "internal/cordz_handle.h" ]
+
+ deps = [
+ "../base",
+ "../base:config",
+ "../base:raw_logging_internal",
+ "../synchronization",
+ ]
+}
+
+source_set("cordz_info") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/cordz_info.cc" ]
+ public = [ "internal/cordz_info.h" ]
+
+ deps = [
+ ":cord_internal",
+ ":cordz_functions",
+ ":cordz_handle",
+ ":cordz_statistics",
+ ":cordz_update_tracker",
+ "../base",
+ "../base:config",
+ "../base:core_headers",
+ "../base:raw_logging_internal",
+ "../container:inlined_vector",
+ "../debugging:stacktrace",
+ "../synchronization",
+ "../types:span",
+ ]
+}
+
+source_set("cordz_update_scope") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/cordz_update_scope.h" ]
+
+ deps = [
+ ":cord_internal",
+ ":cordz_info",
+ ":cordz_update_tracker",
+ "../base:config",
+ "../base:core_headers",
+ ]
+}
+
+source_set("cordz_sample_token") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/cordz_sample_token.cc" ]
+ public = [ "internal/cordz_sample_token.h" ]
+
+ deps = [
+ ":cordz_handle",
+ ":cordz_info",
+ "../base:config",
+ ]
+}
+
+source_set("cordz_functions") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/cordz_functions.cc" ]
+ public = [ "internal/cordz_functions.h" ]
+
+ deps = [
+ "../base:config",
+ "../base:core_headers",
+ "../base:exponential_biased",
+ "../base:raw_logging_internal",
+ ]
+}
+
+source_set("cordz_statistics") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "internal/cordz_statistics.h" ]
+
+ deps = [
+ ":cordz_update_tracker",
+ "../base:config",
+ ]
+}
+
+source_set("str_format") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "str_format.h" ]
+
+ deps = [ ":str_format_internal" ]
+}
+
+source_set("str_format_internal") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [
+ "internal/str_format/arg.cc",
+ "internal/str_format/bind.cc",
+ "internal/str_format/extension.cc",
+ "internal/str_format/float_conversion.cc",
+ "internal/str_format/output.cc",
+ "internal/str_format/parser.cc",
+ ]
+ public = [
+ "internal/str_format/arg.h",
+ "internal/str_format/bind.h",
+ "internal/str_format/checker.h",
+ "internal/str_format/extension.h",
+ "internal/str_format/float_conversion.h",
+ "internal/str_format/output.h",
+ "internal/str_format/parser.h",
+ ]
+
+ deps = [
+ ":strings",
+ "../base:config",
+ "../base:core_headers",
+ "../functional:function_ref",
+ "../meta:type_traits",
+ "../numeric:bits",
+ "../numeric:int128",
+ "../numeric:representation",
+ "../types:optional",
+ "../types:span",
+ ]
+}
diff --git a/absl/synchronization/BUILD.gn b/absl/synchronization/BUILD.gn
new file mode 100644
index 0000000..b9f780e
--- /dev/null
+++ b/absl/synchronization/BUILD.gn
@@ -0,0 +1,62 @@
+# Copyright 2018 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Please do not add more entries to this list. We plan to remove
+# abseil-cpp from the Fuchsia platform source tree once cobalt
+# moves out-of-tree.
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/tink/*",
+]
+
+source_set("graphcycles_internal") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/graphcycles.cc" ]
+ public = [ "internal/graphcycles.h" ]
+ deps = [
+ "../base",
+ "../base:base_internal",
+ "../base:core_headers",
+ "../base:malloc_internal",
+ ]
+ visibility = []
+ visibility += [ "../*" ]
+}
+
+source_set("synchronization") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [
+ "barrier.cc",
+ "barrier.h",
+ "blocking_counter.cc",
+ "blocking_counter.h",
+ "internal/create_thread_identity.cc",
+ "internal/create_thread_identity.h",
+ "internal/kernel_timeout.h",
+ "internal/mutex_nonprod.inc",
+ "internal/per_thread_sem.cc",
+ "internal/per_thread_sem.h",
+ "internal/waiter.cc",
+ "internal/waiter.h",
+ "mutex.cc",
+ "mutex.h",
+ "notification.cc",
+ "notification.h",
+ ]
+ deps = [
+ ":graphcycles_internal",
+ "../base",
+ "../base:base_internal",
+ "../base:config",
+ "../base:core_headers",
+ "../base:dynamic_annotations",
+ "../base:malloc_internal",
+ "../debugging:stacktrace",
+ "../debugging:symbolize",
+ "../time",
+ ]
+}
diff --git a/absl/time/BUILD.gn b/absl/time/BUILD.gn
new file mode 100644
index 0000000..08c75c2
--- /dev/null
+++ b/absl/time/BUILD.gn
@@ -0,0 +1,38 @@
+# Copyright 2018 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Please do not add more entries to this list. We plan to remove
+# abseil-cpp from the Fuchsia platform source tree once cobalt
+# moves out-of-tree.
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/gvisor_syscall_tests/*",
+ "//third_party/tink/*",
+]
+
+source_set("time") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [
+ "clock.cc",
+ "duration.cc",
+ "format.cc",
+ "internal/get_current_time_chrono.inc",
+ "internal/get_current_time_posix.inc",
+ "time.cc",
+ ]
+ public = [
+ "clock.h",
+ "time.h",
+ ]
+ deps = [
+ "../base",
+ "../base:core_headers",
+ "../numeric:int128",
+ "../strings",
+ "../time/internal/cctz:civil_time",
+ "../time/internal/cctz:time_zone",
+ ]
+}
diff --git a/absl/time/internal/cctz/BUILD.gn b/absl/time/internal/cctz/BUILD.gn
new file mode 100644
index 0000000..b46b019
--- /dev/null
+++ b/absl/time/internal/cctz/BUILD.gn
@@ -0,0 +1,46 @@
+# Copyright 2018 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Please do not add more entries to this list. We plan to remove
+# abseil-cpp from the Fuchsia platform source tree once cobalt
+# moves out-of-tree.
+visibility = [ "//third_party/abseil-cpp/*" ]
+
+source_set("civil_time") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "src/civil_time_detail.cc" ]
+ public = [
+ "include/cctz/civil_time.h",
+ "include/cctz/civil_time_detail.h",
+ ]
+}
+
+source_set("time_zone") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [
+ "src/time_zone_fixed.cc",
+ "src/time_zone_fixed.h",
+ "src/time_zone_format.cc",
+ "src/time_zone_if.cc",
+ "src/time_zone_if.h",
+ "src/time_zone_impl.cc",
+ "src/time_zone_impl.h",
+ "src/time_zone_info.cc",
+ "src/time_zone_info.h",
+ "src/time_zone_libc.cc",
+ "src/time_zone_libc.h",
+ "src/time_zone_lookup.cc",
+ "src/time_zone_posix.cc",
+ "src/time_zone_posix.h",
+ "src/tzfile.h",
+ "src/zone_info_source.cc",
+ ]
+ public = [
+ "include/cctz/time_zone.h",
+ "include/cctz/zone_info_source.h",
+ ]
+ deps = [ ":civil_time" ]
+}
diff --git a/absl/types/BUILD.gn b/absl/types/BUILD.gn
new file mode 100644
index 0000000..e3eb35f
--- /dev/null
+++ b/absl/types/BUILD.gn
@@ -0,0 +1,132 @@
+# Copyright 2019 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/gvisor_syscall_tests/*",
+ "//third_party/tink/*",
+]
+
+source_set("any") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "any.h" ]
+
+ deps = [
+ ":bad_any_cast",
+ "../base:config",
+ "../base:core_headers",
+ "../base:fast_type_id",
+ "../meta:type_traits",
+ "../utility",
+ ]
+}
+
+source_set("bad_any_cast") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "bad_any_cast.h" ]
+
+ deps = [
+ ":bad_any_cast_impl",
+ "../base:config",
+ ]
+}
+
+source_set("bad_any_cast_impl") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [
+ "bad_any_cast.cc",
+ "bad_any_cast.h",
+ ]
+
+ deps = [
+ "../base:config",
+ "../base:raw_logging_internal",
+ ]
+}
+
+source_set("span") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/span.h" ]
+ public = [ "span.h" ]
+
+ deps = [
+ "../algorithm",
+ "../base:core_headers",
+ "../base:throw_delegate",
+ "../meta:type_traits",
+ ]
+}
+
+source_set("optional") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/optional.h" ]
+ public = [ "optional.h" ]
+
+ deps = [
+ ":bad_optional_access",
+ "../base:base_internal",
+ "../base:config",
+ "../base:core_headers",
+ "../memory",
+ "../meta:type_traits",
+ "../utility",
+ ]
+}
+
+source_set("bad_optional_access") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "bad_optional_access.cc" ]
+ public = [ "bad_optional_access.h" ]
+
+ deps = [
+ "../base:config",
+ "../base:raw_logging_internal",
+ ]
+}
+
+source_set("bad_variant_access") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "bad_variant_access.cc" ]
+ public = [ "bad_variant_access.h" ]
+
+ deps = [
+ "../base:config",
+ "../base:raw_logging_internal",
+ ]
+}
+
+source_set("variant") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ sources = [ "internal/variant.h" ]
+ public = [ "variant.h" ]
+
+ deps = [
+ ":bad_variant_access",
+ "../base:base_internal",
+ "../base:config",
+ "../base:core_headers",
+ "../meta:type_traits",
+ "../utility",
+ ]
+}
+
+source_set("compare") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+
+ public = [ "compare.h" ]
+
+ deps = [
+ "../base:core_headers",
+ "../meta:type_traits",
+ ]
+}
diff --git a/absl/utility/BUILD.gn b/absl/utility/BUILD.gn
new file mode 100644
index 0000000..10b827a
--- /dev/null
+++ b/absl/utility/BUILD.gn
@@ -0,0 +1,20 @@
+# Copyright 2019 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+visibility = [
+ "$cobalt_root/*",
+ "//third_party/abseil-cpp/*",
+ "//third_party/tink/*",
+]
+
+# CC Library : utility
+source_set("utility") {
+ public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
+ public = [ "utility.h" ]
+ public_deps = [
+ "../base:base_internal",
+ "../base:config",
+ "../meta:type_traits",
+ ]
+}