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

add_library(catboost-libs-data)


target_link_libraries(catboost-libs-data PUBLIC
  contrib-libs-linux-headers
  contrib-libs-cxxsupp
  yutil
  library-cpp-dbg_output
  library-cpp-json
  library-cpp-object_factory
  cpp-string_utils-csv
  cpp-threading-future
  cpp-threading-local_executor
  catboost-libs-cat_feature
  catboost-libs-column_description
  private-libs-options
  private-libs-ctr_description
  private-libs-data_types
  private-libs-data_util
  private-libs-feature_estimator
  catboost-libs-helpers
  private-libs-index_range
  private-libs-labels
  catboost-libs-logging
  catboost-libs-model
  private-libs-text_processing
  private-libs-quantization
  private-libs-quantization_schema
  tools-enum_parser-enum_serialization_runtime
)

target_sources(catboost-libs-data PRIVATE
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/async_row_processor.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/borders_io.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/cat_feature_perfect_hash.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/cat_feature_perfect_hash_helper.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/columns.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/composite_columns.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/ctrs.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/data_provider.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/data_provider_builders.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/exclusive_feature_bundling.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/external_columns.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/feature_estimators.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/feature_grouping.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/feature_index.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/features_layout.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/features_layout_helpers.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/feature_names_converter.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/graph.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/lazy_columns.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/load_data.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/load_and_quantize_data.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/loader.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/meta_info.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/model_dataset_compatibility.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/objects.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/objects_grouping.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/order.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/packed_binary_features.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/pairs.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/proceed_pool_in_blocks.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/quantization.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/quantized_features_info.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/sampler.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/sparse_columns.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/target.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/unaligned_mem.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/util.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/visitor.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/weights.cpp
)


generate_enum_serilization(catboost-libs-data
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/graph.h
  INCLUDE_HEADERS
  catboost/libs/data/graph.h
)

generate_enum_serilization(catboost-libs-data
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/columns.h
  INCLUDE_HEADERS
  catboost/libs/data/columns.h
)

generate_enum_serilization(catboost-libs-data
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/order.h
  INCLUDE_HEADERS
  catboost/libs/data/order.h
)

generate_enum_serilization(catboost-libs-data
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/visitor.h
  INCLUDE_HEADERS
  catboost/libs/data/visitor.h
)

add_global_library_for(catboost-libs-data.global
  catboost-libs-data)


target_link_libraries(catboost-libs-data.global PUBLIC
  contrib-libs-linux-headers
  contrib-libs-cxxsupp
  yutil
  library-cpp-dbg_output
  library-cpp-json
  library-cpp-object_factory
  cpp-string_utils-csv
  cpp-threading-future
  cpp-threading-local_executor
  catboost-libs-cat_feature
  catboost-libs-column_description
  private-libs-options
  private-libs-ctr_description
  private-libs-data_types
  private-libs-data_util
  private-libs-feature_estimator
  catboost-libs-helpers
  private-libs-index_range
  private-libs-labels
  catboost-libs-logging
  catboost-libs-model
  private-libs-text_processing
  private-libs-quantization
  private-libs-quantization_schema
  tools-enum_parser-enum_serialization_runtime
)

target_sources(catboost-libs-data.global PRIVATE
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/baseline.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/cb_dsv_loader.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/libsvm_loader.cpp
  ${PROJECT_SOURCE_DIR}/catboost/libs/data/pairs_data_loaders.cpp
)

