# Copyright 2018 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//flutter/third_party/abseil-cpp/absl.gni")

absl_source_set("graphcycles_internal") {
  sources = [ "internal/graphcycles.cc" ]
  public = [ "internal/graphcycles.h" ]
  deps = [
    "///flutter/third_party/abseil-cpp/absl/base",
    "///flutter/third_party/abseil-cpp/absl/base:base_internal",
    "///flutter/third_party/abseil-cpp/absl/base:config",
    "///flutter/third_party/abseil-cpp/absl/base:core_headers",
    "///flutter/third_party/abseil-cpp/absl/base:malloc_internal",
    "///flutter/third_party/abseil-cpp/absl/base:raw_logging_internal",
  ]
  visibility = [ ":*" ]
}

absl_source_set("kernel_timeout_internal") {
  sources = [ "internal/kernel_timeout.cc" ]
  public = [ "internal/kernel_timeout.h" ]
  deps = [
    "//flutter/third_party/abseil-cpp/absl/base",
    "//flutter/third_party/abseil-cpp/absl/base:config",
    "//flutter/third_party/abseil-cpp/absl/base:core_headers",
    "//flutter/third_party/abseil-cpp/absl/base:raw_logging_internal",
    "//flutter/third_party/abseil-cpp/absl/time",
  ]
  visibility = [ ":*" ]
}

absl_test("kernel_timeout_internal_test") {
  sources = [ "internal/kernel_timeout_test.cc" ]
  deps = [
    ":kernel_timeout_internal",
    "//flutter/third_party/abseil-cpp/absl/base:config",
    "//flutter/third_party/abseil-cpp/absl/random",
    "//flutter/third_party/abseil-cpp/absl/time",
  ]
}

absl_source_set("synchronization") {
  sources = [
    "barrier.cc",
    "blocking_counter.cc",
    "internal/create_thread_identity.cc",
    "internal/futex_waiter.cc",
    "internal/per_thread_sem.cc",
    "internal/pthread_waiter.cc",
    "internal/sem_waiter.cc",
    "internal/stdcpp_waiter.cc",
    "internal/waiter_base.cc",
    "internal/win32_waiter.cc",
    "mutex.cc",
    "notification.cc",
  ]
  public = [
    "barrier.h",
    "blocking_counter.h",
    "internal/create_thread_identity.h",
    "internal/futex.h",
    "internal/futex_waiter.h",
    "internal/per_thread_sem.h",
    "internal/pthread_waiter.h",
    "internal/sem_waiter.h",
    "internal/stdcpp_waiter.h",
    "internal/waiter.h",
    "internal/waiter_base.h",
    "internal/win32_waiter.h",
    "mutex.h",
    "notification.h",
  ]
  deps = [
    ":graphcycles_internal",
    ":kernel_timeout_internal",
    "//flutter/third_party/abseil-cpp/absl/base",
    "//flutter/third_party/abseil-cpp/absl/base:atomic_hook",
    "//flutter/third_party/abseil-cpp/absl/base:base_internal",
    "//flutter/third_party/abseil-cpp/absl/base:config",
    "//flutter/third_party/abseil-cpp/absl/base:core_headers",
    "//flutter/third_party/abseil-cpp/absl/base:dynamic_annotations",
    "//flutter/third_party/abseil-cpp/absl/base:malloc_internal",
    "//flutter/third_party/abseil-cpp/absl/base:raw_logging_internal",
    "//flutter/third_party/abseil-cpp/absl/debugging:stacktrace",
    "//flutter/third_party/abseil-cpp/absl/debugging:symbolize",
    "//flutter/third_party/abseil-cpp/absl/time",
  ]
}

absl_test("waiter_test") {
  sources = [ "internal/waiter_test.cc" ]
  deps = [
    ":kernel_timeout_internal",
    ":synchronization",
    ":thread_pool",
    "//flutter/third_party/abseil-cpp/absl/base:config",
    "//flutter/third_party/abseil-cpp/absl/random",
    "//flutter/third_party/abseil-cpp/absl/time",
  ]
}

absl_source_set("thread_pool") {
  testonly = true
  public = [ "internal/thread_pool.h" ]
  deps = [
    ":synchronization",
    "//flutter/third_party/abseil-cpp/absl/base:core_headers",
    "//flutter/third_party/abseil-cpp/absl/functional:any_invocable",
  ]
  visibility = [ "//flutter/third_party/abseil-cpp/absl/*" ]
}

absl_source_set("per_thread_sem_test_common") {
  testonly = true
  sources = [ "internal/per_thread_sem_test.cc" ]
  deps = [
    ":synchronization",
    "//flutter/third_party/abseil-cpp/absl/base",
    "//flutter/third_party/abseil-cpp/absl/base:config",
    "//flutter/third_party/abseil-cpp/absl/strings",
    "//flutter/third_party/abseil-cpp/absl/time",
    "//third_party/googletest:gtest",
  ]
  visibility = [ ":*" ]
}

# absl_test("mutex_method_pointer_test") {
#   sources = [ "mutex_method_pointer_test.cc" ]
#   deps = [
#     ":synchronization",
#     "//flutter/third_party/abseil-cpp/absl/base:config",
#   ]
# }
