diff options
author | alexv-smirnov <alex@ydb.tech> | 2023-06-13 11:05:01 +0300 |
---|---|---|
committer | alexv-smirnov <alex@ydb.tech> | 2023-06-13 11:05:01 +0300 |
commit | bf0f13dd39ee3e65092ba3572bb5b1fcd125dcd0 (patch) | |
tree | 1d1df72c0541a59a81439842f46d95396d3e7189 /contrib/libs/crcutil/ya.make | |
parent | 8bfdfa9a9bd19bddbc58d888e180fbd1218681be (diff) | |
download | ydb-bf0f13dd39ee3e65092ba3572bb5b1fcd125dcd0.tar.gz |
add ymake export to ydb
Diffstat (limited to 'contrib/libs/crcutil/ya.make')
-rw-r--r-- | contrib/libs/crcutil/ya.make | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/contrib/libs/crcutil/ya.make b/contrib/libs/crcutil/ya.make new file mode 100644 index 0000000000..6d40ef7a93 --- /dev/null +++ b/contrib/libs/crcutil/ya.make @@ -0,0 +1,65 @@ +LIBRARY() + +LICENSE(Apache-2.0) + +VERSION(1.0) + +LICENSE_TEXTS(.yandex_meta/licenses.list.txt) + +NO_UTIL() + +NO_COMPILER_WARNINGS() + +NO_JOIN_SRC() + +IF (GCC AND USE_LTO) + CFLAGS(-DCRCUTIL_FORCE_ASM_CRC32C=1) +ENDIF() + +IF (ARCH_I386 OR ARCH_X86_64) + IF (OS_WINDOWS) + SRCS( + multiword_64_64_cl_i386_mmx.cc + ) + ELSEIF (OS_ANDROID AND ARCH_I386) + # 32-bit Android has some problems with register allocation, so we fall back to default implementation + ELSE() + IF (CLANG) + CFLAGS(-DCRCUTIL_USE_MM_CRC32=1) + IF (ARCH_I386) + # clang doesn't support this as optimization attribute and has problems with register allocation + SRC( + multiword_64_64_gcc_i386_mmx.cc + -fomit-frame-pointer + ) + ELSE() + SRCS( + multiword_64_64_gcc_i386_mmx.cc + ) + ENDIF() + ELSE() + CFLAGS( + -mcrc32 + -DCRCUTIL_USE_MM_CRC32=1 + ) + ENDIF() + SRCS( + multiword_128_64_gcc_amd64_sse2.cc + multiword_64_64_gcc_amd64_asm.cc + ) + ENDIF() + IF (OS_WINDOWS) + SRCS( + crc32c_sse4.cc + ) + ELSE() + SRC_C_SSE4(crc32c_sse4.cc) + ENDIF() +ENDIF() + +SRCS( + interface.cc + multiword_64_64_intrinsic_i386_mmx.cc +) + +END() |