# 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_executable(util-generic-ut)


target_link_libraries(util-generic-ut PUBLIC
  contrib-libs-linux-headers
  contrib-libs-cxxsupp
  yutil
  build-cow-on
  cpp-testing-unittest_main
  library-cpp-case_insensitive_string
  cpp-containers-absl_flat_hash
  tools-enum_parser-enum_serialization_runtime
)

target_allocator(util-generic-ut
  system_allocator
)

target_link_options(util-generic-ut PRIVATE
  -ldl
  -lrt
  -Wl,--no-as-needed
  -fPIC
  -fPIC
  -lpthread
  -lrt
  -ldl
)

target_sources(util-generic-ut PRIVATE
  ${PROJECT_SOURCE_DIR}/util/generic/adaptor_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/algorithm_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/array_ref_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/array_size_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/bitmap_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/bitops_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/buffer_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/cast_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/deque_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/enum_cast_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/explicit_type_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/flags_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/function_ref_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/function_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/guid_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/hash_primes_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/hash_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/intrlist_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/is_in_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/iterator_range_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/iterator_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/lazy_value_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/list_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/map_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/mapfindptr_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/maybe_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/mem_copy_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/objects_counter_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/overloaded_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/ptr_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/queue_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/scope_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/serialized_enum_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/set_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/singleton_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/size_literals_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/stack_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/store_policy_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/strbuf_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/string_transparent_hash_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/string_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/typelist_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/typetraits_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/utility_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/va_args_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/vector_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/xrange_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/yexception_ut.c
  ${PROJECT_SOURCE_DIR}/util/generic/yexception_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/ylimits_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/ymath_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/generic/string_ut.h
  ${PROJECT_SOURCE_DIR}/util/generic/yexception_ut.h
)


set_property(
  SOURCE
  ${PROJECT_SOURCE_DIR}/util/generic/yexception_ut.c
  APPEND
  PROPERTY
  COMPILE_OPTIONS
)

set_property(
  TARGET
  util-generic-ut
  PROPERTY
  SPLIT_FACTOR
  10
)

add_yunittest(
  NAME
  util-generic-ut
  TEST_TARGET
  util-generic-ut
  TEST_ARG
  --print-before-suite
  --print-before-test
  --fork-tests
  --print-times
  --show-fails
)

set_yunittest_property(
  TEST
  util-generic-ut
  PROPERTY
  LABELS
  SMALL
)

set_yunittest_property(
  TEST
  util-generic-ut
  PROPERTY
  ENVIRONMENT
)

generate_enum_serilization(util-generic-ut
  ${PROJECT_SOURCE_DIR}/util/generic/enum_cast_ut.h
  INCLUDE_HEADERS
  util/generic/enum_cast_ut.h
)

vcs_info(util-generic-ut)

set_yunittest_property(
  TEST
  util-generic-ut
  PROPERTY
  PROCESSORS
  1
)
