# This file was generated by the YaTool build system (https://github.com/yandex/yatool),
# from a source YaTool build configuration provided in ya.make files.
#
# If the repository supports both CMake and ya build configurations, please modify both of them.
#
# If only CMake build configuration is supported then modify only CMake files and note that only
# simple modifications are allowed like adding source-files to targets or adding simple properties
# like target_include_directories. These modifications will be ported to original ya.make files
# by maintainers. Any complex modifications which can't be easily ported back to the ya build
# system may be rejected.
#
# Please refer to the build instructions in the repository for more information about manual
# changes in this file.

get_built_tool_path(
  TOOL_enum_parser_bin
  TOOL_enum_parser_dependency
  tools/enum_parser/enum_parser
  enum_parser
)

add_library(cpp-coroutine-engine)


target_link_libraries(cpp-coroutine-engine PUBLIC
  contrib-libs-linux-headers
  contrib-libs-cxxsupp
  yutil
  tools-enum_parser-enum_serialization_runtime
  contrib-libs-libc_compat
  cpp-containers-intrusive_rb_tree
)

target_sources(cpp-coroutine-engine PRIVATE
  ${PROJECT_SOURCE_DIR}/library/cpp/coroutine/engine/cont_poller.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/coroutine/engine/helper.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/coroutine/engine/impl.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/coroutine/engine/iostatus.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/coroutine/engine/network.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/coroutine/engine/poller.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/coroutine/engine/sockpool.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/coroutine/engine/stack/stack.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/coroutine/engine/stack/stack_allocator.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/coroutine/engine/stack/stack_guards.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/coroutine/engine/stack/stack_storage.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/coroutine/engine/stack/stack_utils.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/coroutine/engine/trampoline.cpp
)


generate_enum_serilization(cpp-coroutine-engine
  ${PROJECT_SOURCE_DIR}/library/cpp/coroutine/engine/poller.h
  INCLUDE_HEADERS
  library/cpp/coroutine/engine/poller.h
)

generate_enum_serilization(cpp-coroutine-engine
  ${PROJECT_SOURCE_DIR}/library/cpp/coroutine/engine/stack/stack_common.h
  INCLUDE_HEADERS
  library/cpp/coroutine/engine/stack/stack_common.h
)
