ClickHouse/contrib/base64-cmake/CMakeLists.txt
2019-12-31 06:14:57 +03:00

31 lines
1.0 KiB
CMake

SET(LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/base64)
add_library(base64_scalar OBJECT ${LIBRARY_DIR}/turbob64c.c ${LIBRARY_DIR}/turbob64d.c)
if (ARCH_AMD64)
add_library(base64_ssse3 OBJECT ${LIBRARY_DIR}/turbob64sse.c)
add_library(base64_avx OBJECT ${LIBRARY_DIR}/turbob64sse.c) # This is not a mistake. One file is compiled twice.
add_library(base64_avx2 OBJECT ${LIBRARY_DIR}/turbob64avx2.c)
endif ()
target_compile_options(base64_scalar PRIVATE -falign-loops)
if (ARCH_AMD64)
target_compile_options(base64_ssse3 PRIVATE -mssse3 -falign-loops)
target_compile_options(base64_avx PRIVATE -falign-loops -mavx)
target_compile_options(base64_avx2 PRIVATE -falign-loops -mavx2)
endif ()
if (ARCH_AMD64)
add_library(base64
$<TARGET_OBJECTS:base64_scalar>
$<TARGET_OBJECTS:base64_ssse3>
$<TARGET_OBJECTS:base64_avx>
$<TARGET_OBJECTS:base64_avx2>)
else ()
add_library(base64
$<TARGET_OBJECTS:base64_scalar>)
endif ()
target_include_directories(base64 PUBLIC ${LIBRARY_DIR})