# 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(contrib-libs-crcutil)


target_compile_options(contrib-libs-crcutil PRIVATE
  -DCRCUTIL_USE_MM_CRC32=1
  $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
)

target_link_libraries(contrib-libs-crcutil PUBLIC
  contrib-libs-cxxsupp
)

target_sources(contrib-libs-crcutil PRIVATE
  ${PROJECT_SOURCE_DIR}/contrib/libs/crcutil/multiword_64_64_gcc_i386_mmx.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/crcutil/multiword_128_64_gcc_amd64_sse2.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/crcutil/multiword_64_64_gcc_amd64_asm.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/crcutil/interface.cc
  ${PROJECT_SOURCE_DIR}/contrib/libs/crcutil/multiword_64_64_intrinsic_i386_mmx.cc
)


target_sources_custom(contrib-libs-crcutil
  .sse4
  SRCS
  ${PROJECT_SOURCE_DIR}/contrib/libs/crcutil/crc32c_sse4.cc
  CUSTOM_FLAGS
  -msse4.1
  -msse4.2
  -mpopcnt
  -mcx16
)
