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

add_library(catboost-cuda-cuda_util)


target_link_libraries(catboost-cuda-cuda_util PUBLIC
  contrib-libs-cxxsupp
  yutil
  catboost-libs-helpers
  catboost-cuda-cuda_lib
  cpp-cuda-exception
  internal-platform-cuda
)

target_sources(catboost-cuda-cuda_util PRIVATE
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/operator.cpp
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/run_stream_parallel_jobs.cpp
)

target_cuda_sources(catboost-cuda-cuda_util PRIVATE
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/bootstrap.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/compression.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/dot_product.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/fill.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/filter.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/mvs.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/operators.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/partitions.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/random.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/reduce.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/reorder_one_bit.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/scan.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/segmented_scan.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/segmented_sort.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/sort/bool_uchar.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/sort/bool_ui32.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/sort/float_uchar.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/sort/float_ui16.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/sort/float_ui32.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/sort/float_uint2.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/sort/ui32_uchar.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/sort/ui32_ui16.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/sort/ui32_ui32.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/sort/ui64_uchar.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/sort/ui64_ui32.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/transform.cu
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/kernel/update_part_props.cu
)


target_cuda_flags(catboost-cuda-cuda_util
  -Wno-deprecated-gpu-targets
)

add_global_library_for(catboost-cuda-cuda_util.global
  catboost-cuda-cuda_util)


target_link_libraries(catboost-cuda-cuda_util.global PUBLIC
  contrib-libs-cxxsupp
  yutil
  catboost-libs-helpers
  catboost-cuda-cuda_lib
  cpp-cuda-exception
  internal-platform-cuda
)

target_sources(catboost-cuda-cuda_util.global PRIVATE
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/bootstrap.cpp
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/compression_helpers_gpu.cpp
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/dot_product.cpp
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/fill.cpp
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/filter.cpp
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/gpu_random.cpp
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/helpers.cpp
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/partitions.cpp
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/partitions_reduce.cpp
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/reduce.cpp
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/reorder_bins.cpp
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/scan.cpp
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/segmented_scan.cpp
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/segmented_sort.cpp
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/sort.cpp
  ${PROJECT_SOURCE_DIR}/catboost/cuda/cuda_util/transform.cpp
)

