mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-13 01:41:59 +00:00
60 lines
1.9 KiB
CMake
60 lines
1.9 KiB
CMake
SET(LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/base64)
|
|
|
|
macro(cast_to_bool var instruction)
|
|
if (HAVE_${var})
|
|
set(base64_${var} 1)
|
|
set(base64_${var}_opt ${instruction})
|
|
else()
|
|
set(base64_${var} 0)
|
|
endif()
|
|
endmacro()
|
|
|
|
cast_to_bool(NEON32 "") # TODO flags
|
|
cast_to_bool(NEON64 "") # TODO flags
|
|
cast_to_bool(SSSE3 "-mssse3")
|
|
cast_to_bool(SSE41 "-msse4.1")
|
|
cast_to_bool(SSE42 "-msse4.2")
|
|
cast_to_bool(AVX "-mavx")
|
|
cast_to_bool(AVX2 "-mavx2")
|
|
|
|
set(HAVE_FAST_UNALIGNED_ACCESS 0)
|
|
if(HAVE_SSSE3 OR HAVE_SSE41 OR HAVE_SSE42 OR HAVE_AVX OR HAVE_AVX2)
|
|
set(HAVE_FAST_UNALIGNED_ACCESS 1)
|
|
endif ()
|
|
|
|
configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
|
|
|
|
add_library(base64
|
|
${LIBRARY_DIR}/lib/lib.c
|
|
${LIBRARY_DIR}/lib/codec_choose.c
|
|
${LIBRARY_DIR}/lib/arch/avx/codec.c
|
|
${LIBRARY_DIR}/lib/arch/avx2/codec.c
|
|
${LIBRARY_DIR}/lib/arch/generic/codec.c
|
|
${LIBRARY_DIR}/lib/arch/neon32/codec.c
|
|
${LIBRARY_DIR}/lib/arch/neon64/codec.c
|
|
${LIBRARY_DIR}/lib/arch/sse41/codec.c
|
|
${LIBRARY_DIR}/lib/arch/sse42/codec.c
|
|
${LIBRARY_DIR}/lib/arch/ssse3/codec.c
|
|
|
|
${LIBRARY_DIR}/lib/codecs.h
|
|
${CMAKE_CURRENT_BINARY_DIR}/config.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/tables.h)
|
|
|
|
if(HAVE_AVX)
|
|
set_source_files_properties(${LIBRARY_DIR}/lib/arch/avx/codec.c PROPERTIES COMPILE_FLAGS -mavx)
|
|
endif()
|
|
if(HAVE_AVX2)
|
|
set_source_files_properties(${LIBRARY_DIR}/lib/arch/avx2/codec.c PROPERTIES COMPILE_FLAGS -mavx2)
|
|
endif()
|
|
if(HAVE_SSE41)
|
|
set_source_files_properties(${LIBRARY_DIR}/lib/arch/sse41/codec.c PROPERTIES COMPILE_FLAGS -msse4.1)
|
|
endif()
|
|
if(HAVE_SSE42)
|
|
set_source_files_properties(${LIBRARY_DIR}/lib/arch/sse42/codec.c PROPERTIES COMPILE_FLAGS -msse4.2)
|
|
endif()
|
|
if(HAVE_SSSE3)
|
|
set_source_files_properties(${LIBRARY_DIR}/lib/arch/ssse3/codec.c PROPERTIES COMPILE_FLAGS -mssse3)
|
|
endif()
|
|
|
|
target_include_directories(base64 PRIVATE ${LIBRARY_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
|