# Copyright 2018 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//build_overrides/build.gni") if (build_with_chromium) { visibility = [ "//third_party/webrtc/*", "//third_party/abseil-cpp/*", "//third_party/googletest:gtest", ] } else { visibility = [ "*" ] } source_set("spinlock_wait") { configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code", "//third_party/abseil-cpp:absl_default_cflags_cc", ] public_configs = [ "//third_party/abseil-cpp:absl_include_config" ] sources = [ "internal/spinlock_akaros.inc", "internal/spinlock_posix.inc", "internal/spinlock_wait.cc", "internal/spinlock_win32.inc", ] public = [ "internal/scheduling_mode.h", "internal/spinlock_wait.h", ] deps = [ ":core_headers", ] visibility = [] visibility += [ "../base:*" ] } source_set("config") { configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code", "//third_party/abseil-cpp:absl_default_cflags_cc", ] public_configs = [ "//third_party/abseil-cpp:absl_include_config" ] public = [ "config.h", "policy_checks.h", ] } config("clang_support_dynamic_annotations") { cflags_cc = [ "-D__CLANG_SUPPORT_DYN_ANNOTATION__" ] } source_set("dynamic_annotations") { configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code", "//third_party/abseil-cpp:absl_default_cflags_cc", ] public_configs = [ ":clang_support_dynamic_annotations", "//third_party/abseil-cpp:absl_include_config", ] sources = [ "dynamic_annotations.cc", ] public = [ "dynamic_annotations.h", ] # Abseil's dynamic annotations are only visible inside Abseil because # their usage is deprecated in Chromium (see README.chromium for more info). visibility = [] visibility = [ "../*" ] } source_set("core_headers") { configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code", "//third_party/abseil-cpp:absl_default_cflags_cc", ] public_configs = [ "//third_party/abseil-cpp:absl_include_config" ] public = [ "attributes.h", "macros.h", "optimization.h", "port.h", "thread_annotations.h", ] deps = [ ":config", ":dynamic_annotations", ] } source_set("malloc_internal") { configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code", "//third_party/abseil-cpp:absl_default_cflags_cc", ] public_configs = [ "//third_party/abseil-cpp:absl_include_config" ] sources = [ "internal/low_level_alloc.cc", ] public = [ "internal/direct_mmap.h", "internal/low_level_alloc.h", ] deps = [ ":base", ":config", ":core_headers", ":dynamic_annotations", ":spinlock_wait", ] visibility = [] visibility += [ "../*" ] } source_set("base_internal") { configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code", "//third_party/abseil-cpp:absl_default_cflags_cc", ] public_configs = [ "//third_party/abseil-cpp:absl_include_config" ] public = [ "internal/hide_ptr.h", "internal/identity.h", "internal/inline_variable.h", "internal/invoke.h", ] visibility = [] visibility += [ "../*" ] } source_set("base") { configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code", "//third_party/abseil-cpp:absl_default_cflags_cc", ] public_configs = [ "//third_party/abseil-cpp:absl_include_config" ] sources = [ "internal/cycleclock.cc", "internal/raw_logging.cc", "internal/spinlock.cc", "internal/sysinfo.cc", "internal/thread_identity.cc", "internal/unscaledcycleclock.cc", ] public = [ "call_once.h", "casts.h", "internal/atomic_hook.h", "internal/cycleclock.h", "internal/low_level_scheduling.h", "internal/per_thread_tls.h", "internal/raw_logging.h", "internal/spinlock.h", "internal/sysinfo.h", "internal/thread_identity.h", "internal/tsan_mutex_interface.h", "internal/unscaledcycleclock.h", "log_severity.h", ] deps = [ ":base_internal", ":config", ":core_headers", ":dynamic_annotations", ":spinlock_wait", ] } source_set("throw_delegate") { configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code", "//third_party/abseil-cpp:absl_default_cflags_cc", ] public_configs = [ "//third_party/abseil-cpp:absl_include_config" ] sources = [ "internal/throw_delegate.cc", ] public = [ "internal/throw_delegate.h", ] deps = [ ":base", ":config", ":core_headers", ] visibility = [] visibility += [ "../*" ] } source_set("exception_testing") { testonly = true configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code", "//third_party/abseil-cpp:absl_test_cflags_cc", ] public_configs = [ "//third_party/abseil-cpp:absl_include_config" ] public = [ "internal/exception_testing.h", ] deps = [ ":config", ] visibility = [] visibility += [ "../*" ] } source_set("pretty_function") { configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code", "//third_party/abseil-cpp:absl_default_cflags_cc", ] public_configs = [ "//third_party/abseil-cpp:absl_include_config" ] public = [ "internal/pretty_function.h", ] visibility = [] visibility += [ "../*" ] } # TODO(mbonadei): This target throws by design. We should probably # just remove it. # source_set("exception_safety_testing") { # testonly = true # configs -= [ "//build/config/compiler:chromium_code" ] # configs += [ # "//build/config/compiler:no_chromium_code", # "//third_party/abseil-cpp:absl_test_cflags_cc", # ] # public_configs = [ "//third_party/abseil-cpp:absl_include_config" ] # sources = [ # "internal/exception_safety_testing.cc", # ] # public = [ # "internal/exception_safety_testing.h", # ] # deps = [ # ":base", # ":config", # ":pretty_function", # "../memory", # "../meta:type_traits", # "../strings", # "../types:optional", # "//testing/gtest", # ] # } source_set("spinlock_test_common") { testonly = true configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code", "//third_party/abseil-cpp:absl_test_cflags_cc", ] public_configs = [ "//third_party/abseil-cpp:absl_include_config" ] sources = [ "spinlock_test_common.cc", ] deps = [ ":base", ":core_headers", ":spinlock_wait", "../synchronization", "//testing/gtest", ] } source_set("endian") { configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code", "//third_party/abseil-cpp:absl_default_cflags_cc", ] public_configs = [ "//third_party/abseil-cpp:absl_include_config" ] public = [ "internal/endian.h", "internal/unaligned_access.h", ] deps = [ ":config", ":core_headers", ] }