12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- LIBRARY()
- LICENSE(Apache-2.0)
- VERSION(1.0)
- LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
- OWNER(
- g:contrib
- g:cpp-contrib
- )
- 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_CPP_SSE4(crc32c_sse4.cc)
- ENDIF()
- ENDIF()
- SRCS(
- interface.cc
- multiword_64_64_intrinsic_i386_mmx.cc
- )
- END()
|