################################################################################
# Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
# runtime/src/iree/base/threading/BUILD.bazel                                  #
#                                                                              #
# Use iree_cmake_extra_content from iree/build_defs.oss.bzl to add arbitrary   #
# CMake-only content.                                                          #
#                                                                              #
# To disable autogeneration for this file entirely, delete this header.        #
################################################################################

iree_add_all_subdirs()

iree_cc_library(
  NAME
    threading
  HDRS
    "api.h"
    "call_once.h"
    "futex.h"
    "mutex.h"
    "notification.h"
    "numa.h"
  SRCS
    "mutex.c"
    "notification.c"
    "numa_fallback.c"
    "numa_impl.h"
    "numa_linux.c"
    "numa_win32.c"
  DEPS
    iree::base
    iree::base::core_headers
    iree::base::internal
    iree::base::internal::memory
  PUBLIC
)

iree_cc_library(
  NAME
    thread
  HDRS
    "thread.h"
    "thread_impl.h"
  SRCS
    "thread.c"
    "thread_darwin.c"
    "thread_pthreads.c"
    "thread_win32.c"
  DEPS
    ${CMAKE_DL_LIBS}
    ::threading
    iree::base
    iree::base::core_headers
    iree::base::internal
  PUBLIC
)

iree_cc_test(
  NAME
    call_once_test
  SRCS
    "call_once_test.cc"
  DEPS
    ::threading
    iree::testing::gtest
    iree::testing::gtest_main
)

iree_cc_test(
  NAME
    futex_test
  SRCS
    "futex_test.cc"
  DEPS
    ::thread
    ::threading
    iree::base
    iree::testing::gtest
    iree::testing::gtest_main
)

iree_cc_test(
  NAME
    mutex_test
  SRCS
    "mutex_test.cc"
  DEPS
    ::threading
    iree::testing::gtest
    iree::testing::gtest_main
)

iree_cc_test(
  NAME
    notification_test
  SRCS
    "notification_test.cc"
  DEPS
    ::threading
    iree::testing::gtest
    iree::testing::gtest_main
)

iree_cc_test(
  NAME
    numa_test
  SRCS
    "numa_test.cc"
  DEPS
    ::threading
    iree::base
    iree::testing::gtest
    iree::testing::gtest_main
)

iree_cc_test(
  NAME
    thread_test
  SRCS
    "thread_test.cc"
  DEPS
    ::thread
    ::threading
    iree::base::internal
    iree::testing::gtest
    iree::testing::gtest_main
)

iree_cc_binary_benchmark(
  NAME
    mutex_benchmark
  SRCS
    "mutex_benchmark.cc"
  DEPS
    ::threading
    benchmark
    iree::testing::benchmark_main
  TESTONLY
)

iree_cc_binary_benchmark(
  NAME
    notification_benchmark
  SRCS
    "notification_benchmark.cc"
  DEPS
    ::thread
    ::threading
    benchmark
    iree::testing::benchmark_main
  TESTONLY
)

iree_cc_binary_benchmark(
  NAME
    thread_benchmark
  SRCS
    "thread_benchmark.cc"
  DEPS
    ::thread
    ::threading
    benchmark
    iree::testing::benchmark_main
  TESTONLY
)

### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###
