mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-10 09:32:06 +00:00
121 lines
4.4 KiB
CMake
121 lines
4.4 KiB
CMake
if(NOT OS_FREEBSD)
|
|
option(ENABLE_S3 "Enable S3" ${ENABLE_LIBRARIES})
|
|
elseif(ENABLE_S3)
|
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't use S3 on FreeBSD")
|
|
endif()
|
|
|
|
if(NOT ENABLE_S3)
|
|
message(STATUS "Not using S3")
|
|
return()
|
|
endif()
|
|
|
|
SET(AWS_S3_LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/aws/aws-cpp-sdk-s3")
|
|
SET(AWS_CORE_LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/aws/aws-cpp-sdk-core")
|
|
SET(AWS_CHECKSUMS_LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/aws-checksums")
|
|
SET(AWS_COMMON_LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/aws-c-common")
|
|
SET(AWS_EVENT_STREAM_LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/aws-c-event-stream")
|
|
|
|
OPTION(USE_AWS_MEMORY_MANAGEMENT "Aws memory management" OFF)
|
|
configure_file("${AWS_CORE_LIBRARY_DIR}/include/aws/core/SDKConfig.h.in"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/include/aws/core/SDKConfig.h" @ONLY)
|
|
|
|
configure_file("${AWS_COMMON_LIBRARY_DIR}/include/aws/common/config.h.in"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/include/aws/common/config.h" @ONLY)
|
|
|
|
|
|
file(GLOB AWS_CORE_SOURCES
|
|
"${AWS_CORE_LIBRARY_DIR}/source/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/auth/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/client/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/http/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/http/standard/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/config/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/external/cjson/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/external/tinyxml2/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/internal/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/monitoring/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/net/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/linux-shared/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/platform/linux-shared/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/utils/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/utils/base64/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/utils/event/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/utils/crypto/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/utils/crypto/openssl/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/utils/crypto/factory/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/utils/json/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/utils/logging/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/utils/memory/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/utils/memory/stl/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/utils/stream/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/utils/threading/*.cpp"
|
|
"${AWS_CORE_LIBRARY_DIR}/source/utils/xml/*.cpp"
|
|
)
|
|
|
|
file(GLOB AWS_S3_SOURCES
|
|
"${AWS_S3_LIBRARY_DIR}/source/*.cpp"
|
|
)
|
|
|
|
file(GLOB AWS_S3_MODEL_SOURCES
|
|
"${AWS_S3_LIBRARY_DIR}/source/model/*.cpp"
|
|
)
|
|
|
|
file(GLOB AWS_EVENT_STREAM_SOURCES
|
|
"${AWS_EVENT_STREAM_LIBRARY_DIR}/source/*.c"
|
|
)
|
|
|
|
file(GLOB AWS_COMMON_SOURCES
|
|
"${AWS_COMMON_LIBRARY_DIR}/source/*.c"
|
|
"${AWS_COMMON_LIBRARY_DIR}/source/posix/*.c"
|
|
)
|
|
|
|
file(GLOB AWS_CHECKSUMS_SOURCES
|
|
"${AWS_CHECKSUMS_LIBRARY_DIR}/source/*.c"
|
|
"${AWS_CHECKSUMS_LIBRARY_DIR}/source/intel/*.c"
|
|
"${AWS_CHECKSUMS_LIBRARY_DIR}/source/arm/*.c"
|
|
)
|
|
|
|
file(GLOB S3_UNIFIED_SRC
|
|
${AWS_EVENT_STREAM_SOURCES}
|
|
${AWS_COMMON_SOURCES}
|
|
${AWS_S3_SOURCES}
|
|
${AWS_S3_MODEL_SOURCES}
|
|
${AWS_CORE_SOURCES}
|
|
)
|
|
|
|
set(S3_INCLUDES
|
|
"${AWS_COMMON_LIBRARY_DIR}/include/"
|
|
"${AWS_EVENT_STREAM_LIBRARY_DIR}/include/"
|
|
"${AWS_S3_LIBRARY_DIR}/include/"
|
|
"${AWS_CORE_LIBRARY_DIR}/include/"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/include/"
|
|
)
|
|
|
|
add_library(aws_s3_checksums ${AWS_CHECKSUMS_SOURCES})
|
|
target_include_directories(aws_s3_checksums SYSTEM PUBLIC "${AWS_CHECKSUMS_LIBRARY_DIR}/include/")
|
|
if(CMAKE_BUILD_TYPE_UC STREQUAL "DEBUG")
|
|
target_compile_definitions(aws_s3_checksums PRIVATE "-DDEBUG_BUILD")
|
|
endif()
|
|
set_target_properties(aws_s3_checksums PROPERTIES LINKER_LANGUAGE C)
|
|
set_property(TARGET aws_s3_checksums PROPERTY C_STANDARD 99)
|
|
|
|
add_library(aws_s3 ${S3_UNIFIED_SRC})
|
|
|
|
target_compile_definitions(aws_s3 PUBLIC "AWS_SDK_VERSION_MAJOR=1")
|
|
target_compile_definitions(aws_s3 PUBLIC "AWS_SDK_VERSION_MINOR=7")
|
|
target_compile_definitions(aws_s3 PUBLIC "AWS_SDK_VERSION_PATCH=231")
|
|
target_include_directories(aws_s3 SYSTEM BEFORE PUBLIC ${S3_INCLUDES})
|
|
|
|
if (TARGET OpenSSL::SSL)
|
|
target_compile_definitions(aws_s3 PUBLIC -DENABLE_OPENSSL_ENCRYPTION)
|
|
target_link_libraries(aws_s3 PRIVATE OpenSSL::Crypto OpenSSL::SSL)
|
|
endif()
|
|
|
|
target_link_libraries(aws_s3 PRIVATE aws_s3_checksums)
|
|
|
|
# The library is large - avoid bloat.
|
|
target_compile_options (aws_s3 PRIVATE -g0)
|
|
target_compile_options (aws_s3_checksums PRIVATE -g0)
|
|
|
|
add_library(ch_contrib::aws_s3 ALIAS aws_s3)
|