# 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.

find_package(OpenSSL REQUIRED)

get_built_tool_path(
  TOOL_enum_parser_bin
  TOOL_enum_parser_dependency
  tools/enum_parser/enum_parser
  enum_parser
)

add_subdirectory(asio)

add_library(library-cpp-neh)


target_link_libraries(library-cpp-neh PUBLIC
  contrib-libs-linux-headers
  contrib-libs-cxxsupp
  yutil
  openssl::openssl
  cpp-containers-intrusive_rb_tree
  cpp-coroutine-engine
  cpp-coroutine-listener
  library-cpp-dns
  cpp-http-io
  cpp-http-misc
  cpp-http-push_parser
  cpp-neh-asio
  cpp-netliba-v6
  cpp-openssl-init
  cpp-openssl-method
  cpp-threading-thread_local
  cpp-deprecated-atomic
  tools-enum_parser-enum_serialization_runtime
)

target_sources(library-cpp-neh PRIVATE
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/conn_cache.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/factory.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/https.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/http_common.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/http_headers.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/http2.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/inproc.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/jobqueue.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/location.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/multi.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/multiclient.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/netliba.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/netliba_udp_http.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/neh.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/pipequeue.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/rpc.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/rq.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/smart_ptr.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/stat.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/tcp.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/tcp2.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/udp.cpp
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/utils.cpp
)


generate_enum_serilization(library-cpp-neh
  ${PROJECT_SOURCE_DIR}/library/cpp/neh/http_common.h
  INCLUDE_HEADERS
  library/cpp/neh/http_common.h
)
