# 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_library(libs-tcmalloc-no_percpu_cache)


target_compile_options(libs-tcmalloc-no_percpu_cache PRIVATE
  -DTCMALLOC_INTERNAL_256K_PAGES
  -DTCMALLOC_DEPRECATED_PERTHREAD
  $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
)

target_include_directories(libs-tcmalloc-no_percpu_cache PUBLIC
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc
)

target_link_libraries(libs-tcmalloc-no_percpu_cache PUBLIC
  contrib-libs-linux-headers
  contrib-libs-cxxsupp
  contrib-restricted-abseil-cpp
  libs-tcmalloc-malloc_extension
)

target_sources(libs-tcmalloc-no_percpu_cache PRIVATE
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/no_percpu_cache/aligned_alloc.c
)


set_property(
  SOURCE
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/no_percpu_cache/aligned_alloc.c
  APPEND
  PROPERTY
  COMPILE_OPTIONS
)

add_global_library_for(libs-tcmalloc-no_percpu_cache.global
  libs-tcmalloc-no_percpu_cache)


target_compile_options(libs-tcmalloc-no_percpu_cache.global PRIVATE
  -DTCMALLOC_INTERNAL_256K_PAGES
  -DTCMALLOC_DEPRECATED_PERTHREAD
  $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
)

target_include_directories(libs-tcmalloc-no_percpu_cache.global PUBLIC
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc
)

target_link_libraries(libs-tcmalloc-no_percpu_cache.global PUBLIC
  contrib-libs-linux-headers
  contrib-libs-cxxsupp
  contrib-restricted-abseil-cpp
  libs-tcmalloc-malloc_extension
)

target_sources(libs-tcmalloc-no_percpu_cache.global PRIVATE
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/want_hpaa.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/tcmalloc.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/allocation_sample.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/allocation_sampling.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/arena.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/background.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/central_freelist.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/common.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/cpu_cache.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/deallocation_profiler.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/experimental_pow2_size_class.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/global_stats.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/guarded_page_allocator.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/huge_address_map.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/huge_allocator.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/huge_cache.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/huge_page_aware_allocator.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/legacy_size_classes.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/page_allocator.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/page_allocator_interface.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/pagemap.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/parameters.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/peak_heap_tracker.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/reuse_size_classes.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/sampler.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/segv_handler.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/size_classes.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/sizemap.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/span.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/stack_trace_table.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/static_vars.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/stats.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/system-alloc.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/thread_cache.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/transfer_cache.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/experiment.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/internal/affinity.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/internal/allocation_guard.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/internal/cache_topology.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/internal/environment.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/internal/logging.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/internal/memory_stats.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/internal/memory_tag.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/internal/mincore.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/internal/numa.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/internal/page_size.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/internal/pageflags.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/internal/percpu.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/internal/percpu_rseq_unsupported.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/internal/percpu_rseq_asm.S
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/internal/proc_maps.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/internal/residency.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/internal/sysinfo.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/tcmalloc/tcmalloc/internal/util.cc
)

