# 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_subdirectory(flatbuffers)
add_subdirectory(parallel_sort)
add_subdirectory(ut)

add_library(catboost-libs-helpers)


target_link_libraries(catboost-libs-helpers PUBLIC
  contrib-libs-cxxsupp
  yutil
  private-libs-data_types
  private-libs-data_util
  private-libs-index_range
  catboost-libs-logging
  libs-helpers-flatbuffers
  contrib-libs-flatbuffers
  library-cpp-binsaver
  library-cpp-dbg_output
  cpp-digest-crc32c
  cpp-digest-md5
  library-cpp-json
  cpp-malloc-api
  cpp-threading-local_executor
  library-cpp-fast_exp
  cpp-deprecated-atomic
  tools-enum_parser-enum_serialization_runtime
)

target_sources(catboost-libs-helpers PRIVATE
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/array_subset.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/borders_io.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/checksum.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/compression.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/connected_components.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/cpu_random.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/dbg_output.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/dense_hash.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/dense_hash_view.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/distribution_helpers.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/double_array_iterator.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/dynamic_iterator.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/element_range.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/equal.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/exception.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/guid.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/hash.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/int_cast.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/interrupt.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/json_helpers.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/map_merge.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/math_utils.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/matrix.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/maybe.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/maybe_owning_array_holder.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/mem_usage.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/memory_utils.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/parallel_tasks.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/polymorphic_type_containers.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/power_hash.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/progress_helper.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/permutation.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/quantile.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/query_info_helper.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/resource_constrained_executor.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/resource_holder.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/restorable_rng.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/sample.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/serialization.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/set.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/short_vector_ops.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/sparse_array.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/vector_helpers.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/wx_test.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/xml_output.cpp
)


generate_enum_serilization(catboost-libs-helpers
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/sparse_array.h
  INCLUDE_HEADERS
  catboost/libs/helpers/sparse_array.h
)

generate_enum_serilization(catboost-libs-helpers
  ${PROJECT_SOURCE_DIR}/catboost/libs/helpers/distribution_helpers.h
  INCLUDE_HEADERS
  catboost/libs/helpers/distribution_helpers.h
)
