#
# Copyright 2017 The Abseil Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

load(
    "//absl:copts/configure_copts.bzl",
    "ABSL_DEFAULT_COPTS",
    "ABSL_DEFAULT_LINKOPTS",
    "ABSL_TEST_COPTS",
)

package(
    default_visibility = ["//visibility:public"],
    features = [
        "header_modules",
        "layering_check",
        "parse_headers",
    ],
)

licenses(["notice"])

cc_library(
    name = "atomic_hook",
    hdrs = ["internal/atomic_hook.h"],
    copts = ABSL_DEFAULT_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    visibility = [
        "//absl:__subpackages__",
    ],
    deps = [
        ":config",
        ":core_headers",
    ],
)

cc_library(
    name = "errno_saver",
    hdrs = ["internal/errno_saver.h"],
    copts = ABSL_DEFAULT_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    visibility = [
        "//absl:__subpackages__",
    ],
    deps = [":config"],
)

cc_library(
    name = "log_severity",
    srcs = ["log_severity.cc"],
    hdrs = ["log_severity.h"],
    copts = ABSL_DEFAULT_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":config",
        ":core_headers",
    ],
)

cc_library(
    name = "no_destructor",
    hdrs = ["no_destructor.h"],
    copts = ABSL_DEFAULT_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":config",
        ":nullability",
    ],
)

cc_library(
    name = "nullability",
    srcs = ["internal/nullability_impl.h"],
    hdrs = ["nullability.h"],
    copts = ABSL_DEFAULT_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":core_headers",
        "//absl/meta:type_traits",
    ],
)

cc_library(
    name = "raw_logging_internal",
    srcs = ["internal/raw_logging.cc"],
    hdrs = ["internal/raw_logging.h"],
    copts = ABSL_DEFAULT_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    visibility = [
        "//absl:__subpackages__",
    ],
    deps = [
        ":atomic_hook",
        ":config",
        ":core_headers",
        ":errno_saver",
        ":log_severity",
    ],
)

cc_library(
    name = "spinlock_wait",
    srcs = [
        "internal/spinlock_akaros.inc",
        "internal/spinlock_linux.inc",
        "internal/spinlock_posix.inc",
        "internal/spinlock_wait.cc",
        "internal/spinlock_win32.inc",
    ],
    hdrs = ["internal/spinlock_wait.h"],
    copts = ABSL_DEFAULT_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    visibility = [
        "//absl/base:__pkg__",
    ],
    deps = [
        ":base_internal",
        ":core_headers",
        ":errno_saver",
    ],
)

cc_library(
    name = "config",
    hdrs = [
        "config.h",
        "options.h",
        "policy_checks.h",
    ],
    copts = ABSL_DEFAULT_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
)

cc_library(
    name = "cycleclock_internal",
    hdrs = [
        "internal/cycleclock_config.h",
        "internal/unscaledcycleclock_config.h",
    ],
    copts = ABSL_DEFAULT_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    visibility = [
        "//absl:__subpackages__",
    ],
    deps = [
        ":base_internal",
        ":config",
    ],
)

cc_library(
    name = "dynamic_annotations",
    srcs = [
        "internal/dynamic_annotations.h",
    ],
    hdrs = [
        "dynamic_annotations.h",
    ],
    copts = ABSL_DEFAULT_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":config",
        ":core_headers",
    ],
)

cc_library(
    name = "core_headers",
    hdrs = [
        "attributes.h",
        "const_init.h",
        "macros.h",
        "optimization.h",
        "port.h",
        "thread_annotations.h",
    ],
    copts = ABSL_DEFAULT_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":config",
    ],
)

cc_library(
    name = "malloc_internal",
    srcs = [
        "internal/low_level_alloc.cc",
    ],
    hdrs = [
        "internal/direct_mmap.h",
        "internal/low_level_alloc.h",
    ],
    copts = ABSL_DEFAULT_COPTS + select({
        "//conditions:default": [],
    }),
    linkopts = select({
        "//absl:msvc_compiler": [],
        "//absl:clang-cl_compiler": [],
        "//absl:wasm": [],
        "//conditions:default": ["-pthread"],
    }) + ABSL_DEFAULT_LINKOPTS,
    visibility = [
        "//visibility:public",
    ],
    deps = [
        ":base",
        ":base_internal",
        ":config",
        ":core_headers",
        ":dynamic_annotations",
        ":raw_logging_internal",
    ],
)

cc_library(
    name = "base_internal",
    hdrs = [
        "internal/hide_ptr.h",
        "internal/identity.h",
        "internal/inline_variable.h",
        "internal/invoke.h",
        "internal/scheduling_mode.h",
    ],
    copts = ABSL_DEFAULT_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    visibility = [
        "//absl:__subpackages__",
    ],
    deps = [
        ":config",
        "//absl/meta:type_traits",
    ],
)

cc_library(
    name = "base",
    srcs = [
        "internal/cycleclock.cc",
        "internal/spinlock.cc",
        "internal/sysinfo.cc",
        "internal/thread_identity.cc",
        "internal/unscaledcycleclock.cc",
    ],
    hdrs = [
        "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",
    ],
    copts = ABSL_DEFAULT_COPTS,
    linkopts = select({
        "//absl:msvc_compiler": [
            "-DEFAULTLIB:advapi32.lib",
        ],
        "//absl:clang-cl_compiler": [
            "-DEFAULTLIB:advapi32.lib",
        ],
        "//absl:mingw_compiler": [
            "-DEFAULTLIB:advapi32.lib",
            "-ladvapi32",
        ],
        "//absl:wasm": [],
        "//conditions:default": ["-pthread"],
    }) + ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":atomic_hook",
        ":base_internal",
        ":config",
        ":core_headers",
        ":cycleclock_internal",
        ":dynamic_annotations",
        ":log_severity",
        ":nullability",
        ":raw_logging_internal",
        ":spinlock_wait",
        "//absl/meta:type_traits",
    ],
)

cc_library(
    name = "atomic_hook_test_helper",
    testonly = True,
    srcs = ["internal/atomic_hook_test_helper.cc"],
    hdrs = ["internal/atomic_hook_test_helper.h"],
    copts = ABSL_DEFAULT_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":atomic_hook",
        ":core_headers",
    ],
)

cc_test(
    name = "atomic_hook_test",
    size = "small",
    srcs = ["internal/atomic_hook_test.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":atomic_hook",
        ":atomic_hook_test_helper",
        ":core_headers",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_test(
    name = "bit_cast_test",
    size = "small",
    srcs = [
        "bit_cast_test.cc",
    ],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":base",
        ":core_headers",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_library(
    name = "throw_delegate",
    srcs = ["internal/throw_delegate.cc"],
    hdrs = ["internal/throw_delegate.h"],
    copts = ABSL_DEFAULT_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    visibility = [
        "//absl:__subpackages__",
    ],
    deps = [
        ":config",
        ":raw_logging_internal",
    ],
)

cc_test(
    name = "throw_delegate_test",
    srcs = ["throw_delegate_test.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":config",
        ":throw_delegate",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_test(
    name = "errno_saver_test",
    size = "small",
    srcs = ["internal/errno_saver_test.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":errno_saver",
        ":strerror",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_library(
    name = "exception_testing",
    testonly = True,
    hdrs = ["internal/exception_testing.h"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    visibility = [
        "//absl:__subpackages__",
    ],
    deps = [
        ":config",
        "@com_google_googletest//:gtest",
    ],
)

cc_library(
    name = "pretty_function",
    hdrs = ["internal/pretty_function.h"],
    linkopts = ABSL_DEFAULT_LINKOPTS,
    visibility = [
        "//absl:__subpackages__",
    ],
)

cc_library(
    name = "exception_safety_testing",
    testonly = True,
    srcs = ["internal/exception_safety_testing.cc"],
    hdrs = ["internal/exception_safety_testing.h"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":config",
        ":pretty_function",
        "//absl/memory",
        "//absl/meta:type_traits",
        "//absl/strings",
        "//absl/utility",
        "@com_google_googletest//:gtest",
    ],
)

cc_test(
    name = "exception_safety_testing_test",
    srcs = ["exception_safety_testing_test.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":exception_safety_testing",
        "//absl/memory",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_test(
    name = "inline_variable_test",
    size = "small",
    srcs = [
        "inline_variable_test.cc",
        "inline_variable_test_a.cc",
        "inline_variable_test_b.cc",
        "internal/inline_variable_testing.h",
    ],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":base_internal",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_test(
    name = "invoke_test",
    size = "small",
    srcs = ["invoke_test.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":base_internal",
        "//absl/memory",
        "//absl/strings",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

# Common test library made available for use in non-absl code that overrides
# AbslInternalSpinLockDelay and AbslInternalSpinLockWake.
cc_library(
    name = "spinlock_test_common",
    testonly = True,
    srcs = ["spinlock_test_common.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":base",
        ":base_internal",
        ":config",
        ":core_headers",
        "//absl/synchronization",
        "@com_google_googletest//:gtest",
    ],
    alwayslink = 1,
)

cc_test(
    name = "spinlock_test",
    size = "medium",
    srcs = ["spinlock_test_common.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    tags = [
        "no_test_wasm",
    ],
    deps = [
        ":base",
        ":base_internal",
        ":config",
        ":core_headers",
        "//absl/synchronization",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_library(
    name = "spinlock_benchmark_common",
    testonly = True,
    srcs = ["internal/spinlock_benchmark.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    visibility = [
        "//absl/base:__pkg__",
    ],
    deps = [
        ":base",
        ":base_internal",
        ":no_destructor",
        ":raw_logging_internal",
        "//absl/synchronization",
        "@com_github_google_benchmark//:benchmark_main",
    ],
    alwayslink = 1,
)

cc_binary(
    name = "spinlock_benchmark",
    testonly = True,
    copts = ABSL_DEFAULT_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    tags = ["benchmark"],
    visibility = ["//visibility:private"],
    deps = [
        ":spinlock_benchmark_common",
    ],
)

cc_library(
    name = "endian",
    hdrs = [
        "internal/endian.h",
        "internal/unaligned_access.h",
    ],
    copts = ABSL_DEFAULT_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":base",
        ":config",
        ":core_headers",
        ":nullability",
    ],
)

cc_test(
    name = "endian_test",
    srcs = ["internal/endian_test.cc"],
    copts = ABSL_TEST_COPTS,
    deps = [
        ":config",
        ":endian",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_test(
    name = "config_test",
    srcs = ["config_test.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":config",
        "//absl/synchronization:thread_pool",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_test(
    name = "call_once_test",
    srcs = ["call_once_test.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":base",
        ":core_headers",
        "//absl/synchronization",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_test(
    name = "no_destructor_test",
    srcs = ["no_destructor_test.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":config",
        ":no_destructor",
        ":raw_logging_internal",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_binary(
    name = "no_destructor_benchmark",
    testonly = True,
    srcs = ["no_destructor_benchmark.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    tags = ["benchmark"],
    visibility = ["//visibility:private"],
    deps = [
        ":no_destructor",
        ":raw_logging_internal",
        "@com_github_google_benchmark//:benchmark_main",
    ],
)

cc_test(
    name = "nullability_test",
    srcs = ["nullability_test.cc"],
    deps = [
        ":core_headers",
        ":nullability",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_test(
    name = "raw_logging_test",
    srcs = ["raw_logging_test.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":raw_logging_internal",
        "//absl/strings",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_test(
    name = "sysinfo_test",
    size = "small",
    srcs = ["internal/sysinfo_test.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":base",
        "//absl/synchronization",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_test(
    name = "low_level_alloc_test",
    size = "medium",
    srcs = ["internal/low_level_alloc_test.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    tags = [
        "no_test_ios_x86_64",
        "no_test_wasm",
    ],
    deps = [
        ":malloc_internal",
        "//absl/container:node_hash_map",
    ],
)

cc_test(
    name = "thread_identity_test",
    size = "small",
    srcs = ["internal/thread_identity_test.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    tags = [
        "no_test_wasm",
    ],
    deps = [
        ":base",
        ":core_headers",
        "//absl/synchronization",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_test(
    name = "thread_identity_benchmark",
    srcs = ["internal/thread_identity_benchmark.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    tags = ["benchmark"],
    visibility = ["//visibility:private"],
    deps = [
        ":base",
        "//absl/synchronization",
        "@com_github_google_benchmark//:benchmark_main",
        "@com_google_googletest//:gtest",
    ],
)

cc_library(
    name = "scoped_set_env",
    testonly = True,
    srcs = ["internal/scoped_set_env.cc"],
    hdrs = ["internal/scoped_set_env.h"],
    linkopts = ABSL_DEFAULT_LINKOPTS,
    visibility = [
        "//absl:__subpackages__",
    ],
    deps = [
        ":config",
        ":raw_logging_internal",
    ],
)

cc_test(
    name = "scoped_set_env_test",
    size = "small",
    srcs = ["internal/scoped_set_env_test.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":scoped_set_env",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_test(
    name = "log_severity_test",
    size = "small",
    srcs = ["log_severity_test.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":log_severity",
        "//absl/flags:flag_internal",
        "//absl/flags:marshalling",
        "//absl/strings",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_library(
    name = "strerror",
    srcs = ["internal/strerror.cc"],
    hdrs = ["internal/strerror.h"],
    copts = ABSL_DEFAULT_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    visibility = [
        "//absl:__subpackages__",
    ],
    deps = [
        ":config",
        ":core_headers",
        ":errno_saver",
    ],
)

cc_test(
    name = "strerror_test",
    size = "small",
    srcs = ["internal/strerror_test.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":strerror",
        "//absl/strings",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_binary(
    name = "strerror_benchmark",
    testonly = True,
    srcs = ["internal/strerror_benchmark.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    tags = ["benchmark"],
    visibility = ["//visibility:private"],
    deps = [
        ":strerror",
        "@com_github_google_benchmark//:benchmark_main",
    ],
)

cc_library(
    name = "fast_type_id",
    hdrs = ["internal/fast_type_id.h"],
    copts = ABSL_DEFAULT_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    visibility = [
        "//absl:__subpackages__",
    ],
    deps = [
        ":config",
    ],
)

cc_test(
    name = "fast_type_id_test",
    size = "small",
    srcs = ["internal/fast_type_id_test.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":fast_type_id",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_library(
    name = "prefetch",
    hdrs = [
        "prefetch.h",
    ],
    copts = ABSL_DEFAULT_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":config",
        ":core_headers",
    ],
)

cc_test(
    name = "prefetch_test",
    size = "small",
    srcs = [
        "prefetch_test.cc",
    ],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":prefetch",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_test(
    name = "unique_small_name_test",
    size = "small",
    srcs = ["internal/unique_small_name_test.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    linkstatic = 1,
    deps = [
        ":core_headers",
        "//absl/strings",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_test(
    name = "optimization_test",
    size = "small",
    srcs = ["optimization_test.cc"],
    copts = ABSL_TEST_COPTS,
    linkopts = ABSL_DEFAULT_LINKOPTS,
    deps = [
        ":core_headers",
        "//absl/types:optional",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)
