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

add_subdirectory(approx_calcer)
add_subdirectory(ut)

add_library(private-libs-algo)


target_link_libraries(private-libs-algo PUBLIC
  contrib-libs-cxxsupp
  yutil
  catboost-libs-cat_feature
  catboost-libs-data
  catboost-libs-eval_result
  catboost-libs-helpers
  catboost-libs-loggers
  catboost-libs-logging
  catboost-libs-metrics
  catboost-libs-model
  catboost-libs-overfitting_detector
  libs-algo-approx_calcer
  private-libs-algo_helpers
  private-libs-data_types
  private-libs-feature_estimator
  private-libs-functools
  private-libs-index_range
  private-libs-labels
  private-libs-lapack
  private-libs-target
  private-libs-text_features
  private-libs-options
  library-cpp-binsaver
  cpp-containers-2d_array
  cpp-containers-dense_hash
  cpp-containers-stack_vector
  cpp-digest-crc32c
  cpp-digest-md5
  library-cpp-dot_product
  library-cpp-fast_log
  library-cpp-grid_creator
  library-cpp-json
  cpp-malloc-api
  library-cpp-object_factory
  library-cpp-sse
  library-cpp-svnversion
  cpp-threading-local_executor
)

target_sources(private-libs-algo PRIVATE
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/apply.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/approx_calcer.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/approx_calcer_helpers.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/approx_delta_calcer_multi.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/approx_calcer_querywise.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/approx_dimension.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/approx_updater_helpers.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/build_subset_in_leaf.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/bin_tracker.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/calc_score_cache.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/ctr_helper.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/data.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/estimated_features.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/feature_penalties_calcer.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/features_data_helpers.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/fold.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/full_model_saver.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/greedy_tensor_search.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/helpers.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/index_calcer.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/index_hash_calcer.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/leafwise_scoring.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/learn_context.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/model_quantization_adapter.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/monotonic_constraint_utils.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/mvs.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/nonsymmetric_index_calcer.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/online_ctr.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/plot.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/preprocess.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/projection.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/score_calcers.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/scoring.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/split.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/target_classifier.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/tensor_search_helpers.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/train.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/tree_print.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/pairwise_scoring.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/rand_score.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/roc_curve.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/yetirank_helpers.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/algo/confusion_matrix.cpp
)

if (USE_MPI)
  target_compile_definitions(private-libs-algo PRIVATE USE_MPI)
endif()
