# 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_flatc_bin
  TOOL_flatc_dependency
  contrib/libs/flatbuffers/flatc
  flatc
)

add_subdirectory(ut)

add_library(private-libs-embedding_features)


target_link_libraries(private-libs-embedding_features PUBLIC
  contrib-libs-linux-headers
  contrib-libs-cxxsupp
  yutil
  private-libs-text_features
  private-libs-text_processing
  contrib-libs-clapack
  contrib-libs-flatbuffers
  cpp-hnsw-index
  cpp-online_hnsw-dense_vectors
)

target_sources(private-libs-embedding_features PRIVATE
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/embedding_features/embedding_calcers.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/embedding_features/embedding_feature_calcer.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/embedding_features/embedding_processing_collection.cpp
  ${PROJECT_BINARY_DIR}/catboost/private/libs/embedding_features/flatbuffers/embedding_feature_calcers.fbs.cpp
  ${PROJECT_BINARY_DIR}/catboost/private/libs/embedding_features/flatbuffers/embedding_processing_collection.fbs.cpp
  ${PROJECT_BINARY_DIR}/catboost/private/libs/embedding_features/flatbuffers/embedding_feature_calcers.fbs.h
  ${PROJECT_BINARY_DIR}/catboost/private/libs/embedding_features/flatbuffers/embedding_processing_collection.fbs.h
  ${PROJECT_BINARY_DIR}/catboost/private/libs/embedding_features/flatbuffers/embedding_feature_calcers.bfbs
  ${PROJECT_BINARY_DIR}/catboost/private/libs/embedding_features/flatbuffers/embedding_processing_collection.bfbs
)


target_fbs_source(private-libs-embedding_features
  PRIVATE
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/embedding_features/flatbuffers/embedding_feature_calcers.fbs
  -I
  ${PROJECT_BINARY_DIR}
  -I
  ${PROJECT_SOURCE_DIR}
)

target_fbs_source(private-libs-embedding_features
  PRIVATE
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/embedding_features/flatbuffers/embedding_processing_collection.fbs
  -I
  ${PROJECT_BINARY_DIR}
  -I
  ${PROJECT_SOURCE_DIR}
)

add_global_library_for(private-libs-embedding_features.global
  private-libs-embedding_features)


target_link_libraries(private-libs-embedding_features.global PUBLIC
  contrib-libs-linux-headers
  contrib-libs-cxxsupp
  yutil
  private-libs-text_features
  private-libs-text_processing
  contrib-libs-clapack
  contrib-libs-flatbuffers
  cpp-hnsw-index
  cpp-online_hnsw-dense_vectors
)

target_sources(private-libs-embedding_features.global PRIVATE
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/embedding_features/knn.cpp
  ${PROJECT_SOURCE_DIR}/catboost/private/libs/embedding_features/lda.cpp
)

