1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- 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()
|