################################################################################
# Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
# runtime/src/iree/tooling/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
    buffer_view_matchers
  HDRS
    "buffer_view_matchers.h"
  SRCS
    "buffer_view_matchers.c"
  DEPS
    iree::base
    iree::base::internal
    iree::hal
  PUBLIC
)

iree_cc_test(
  NAME
    buffer_view_matchers_test
  SRCS
    "buffer_view_matchers_test.cc"
  DEPS
    ::buffer_view_matchers
    iree::base
    iree::base::internal
    iree::base::internal::span
    iree::hal
    iree::testing::gtest
    iree::testing::gtest_main
)

iree_cc_library(
  NAME
    comparison
  HDRS
    "comparison.h"
  SRCS
    "comparison.cc"
  DEPS
    ::buffer_view_matchers
    iree::base
    iree::base::internal::flags
    iree::base::internal::span
    iree::hal
    iree::modules::hal
    iree::vm
  PUBLIC
)

iree_cc_test(
  NAME
    comparison_test
  SRCS
    "comparison_test.cc"
  DEPS
    ::comparison
    ::function_io
    iree::base
    iree::base::internal::span
    iree::hal
    iree::modules::hal
    iree::testing::gtest
    iree::testing::gtest_main
    iree::vm
)

iree_cc_library(
  NAME
    context_util
  HDRS
    "context_util.h"
  SRCS
    "context_util.c"
  DEPS
    ::device_util
    ::parameter_util
    iree::base
    iree::base::internal::file_io
    iree::base::internal::flags
    iree::base::internal::path
    iree::hal
    iree::hal::local::loaders::registration
    iree::hal::local::plugins::registration
    iree::modules::hal
    iree::modules::hal::inline
    iree::modules::hal::loader
    iree::tooling::modules
    iree::vm
    iree::vm::bytecode::module
    iree::vm::dynamic::module
  PUBLIC
)

iree_cc_library(
  NAME
    device_util
  HDRS
    "device_util.h"
  SRCS
    "device_util.c"
  DEPS
    iree::base
    iree::base::internal::flags
    iree::base::internal::synchronization
    iree::hal
    iree::hal::drivers
    iree::hal::utils::allocators
    iree::hal::utils::mpi_channel_provider
  PUBLIC
)

iree_cc_library(
  NAME
    function_io
  HDRS
    "function_io.h"
  SRCS
    "function_io.c"
  DEPS
    ::numpy_io
    iree::base
    iree::hal
    iree::io::stdio_stream
    iree::io::stream
    iree::io::vec_stream
    iree::modules::hal
    iree::vm
  PUBLIC
)

iree_cc_test(
  NAME
    function_io_test
  SRCS
    "function_io_test.cc"
  DEPS
    ::function_io
    iree::base
    iree::hal
    iree::io::vec_stream
    iree::modules::hal
    iree::testing::gtest
    iree::testing::gtest_main
    iree::vm
)

iree_cc_library(
  NAME
    function_util
  HDRS
    "function_util.h"
  SRCS
    "function_util.c"
  DEPS
    iree::base
    iree::hal
    iree::modules::hal
    iree::vm
  PUBLIC
)

iree_cc_library(
  NAME
    instrument_util
  HDRS
    "instrument_util.h"
  SRCS
    "instrument_util.c"
  DEPS
    iree::base
    iree::base::internal::flags
    iree::hal
    iree::modules::hal::types
    iree::schemas::instruments
    iree::vm
  PUBLIC
)

iree_cc_library(
  NAME
    numpy_io
  HDRS
    "numpy_io.h"
  SRCS
    "numpy_io.c"
  DEPS
    iree::base
    iree::hal
    iree::io::stream
  PUBLIC
)

iree_cc_test(
  NAME
    numpy_io_test
  SRCS
    "numpy_io_test.cc"
  DEPS
    ::device_util
    ::numpy_io
    iree::io::memory_stream
    iree::io::vec_stream
    iree::testing::gtest
    iree::testing::gtest_main
    iree::tooling::testdata::npy
  LABELS
    "requires-filesystem"
)

iree_cc_library(
  NAME
    parameter_util
  HDRS
    "parameter_util.h"
  SRCS
    "parameter_util.c"
  DEPS
    iree::base
    iree::base::internal::file_io
    iree::base::internal::flags
    iree::hal
    iree::io::formats::parser_registry
    iree::io::parameter_index
    iree::io::parameter_index_provider
    iree::io::parameter_provider
    iree::io::scope_map
    iree::modules::io::parameters
    iree::vm
  PUBLIC
)

iree_cc_library(
  NAME
    run_module
  HDRS
    "run_module.h"
  SRCS
    "run_module.c"
  DEPS
    ::comparison
    ::context_util
    ::device_util
    ::function_io
    ::function_util
    ::instrument_util
    iree::base
    iree::base::internal::flags
    iree::hal
    iree::io::stdio_stream
    iree::modules::hal::types
    iree::vm
    iree::vm::bytecode::module
  PUBLIC
)

### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###

# We're co-opting the VMVX module loader option for this as the inline-static
# model is essentially just an inlined loader.
# These tooling targets are intended for iree-* tools and not end-user binaries
# where binary size or dependency constraints matter.
if(IREE_HAL_EXECUTABLE_LOADER_VMVX_MODULE)
  target_link_libraries(iree_tooling_context_util INTERFACE iree_modules_vmvx_vmvx)
endif()
