mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-19 16:20:50 +00:00
Add submodule minizip-ng
This commit is contained in:
parent
a93aecf1cb
commit
f8ef1cd23d
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -259,3 +259,6 @@
|
||||
[submodule "contrib/azure"]
|
||||
path = contrib/azure
|
||||
url = https://github.com/ClickHouse-Extras/azure-sdk-for-cpp.git
|
||||
[submodule "contrib/minizip-ng"]
|
||||
path = contrib/minizip-ng
|
||||
url = https://github.com/zlib-ng/minizip-ng
|
||||
|
1
contrib/CMakeLists.txt
vendored
1
contrib/CMakeLists.txt
vendored
@ -78,6 +78,7 @@ add_contrib (croaring-cmake croaring)
|
||||
add_contrib (zstd-cmake zstd)
|
||||
add_contrib (zlib-ng-cmake zlib-ng)
|
||||
add_contrib (bzip2-cmake bzip2)
|
||||
add_contrib (minizip-ng-cmake minizip-ng)
|
||||
add_contrib (snappy-cmake snappy)
|
||||
add_contrib (rocksdb-cmake rocksdb)
|
||||
add_contrib (thrift-cmake thrift)
|
||||
|
@ -56,19 +56,11 @@ list(APPEND SOURCES ${CASS_SRC_DIR}/atomic/atomic_std.hpp)
|
||||
add_library(_curl_hostcheck OBJECT ${CASS_SRC_DIR}/third_party/curl/hostcheck.cpp)
|
||||
add_library(_hdr_histogram OBJECT ${CASS_SRC_DIR}/third_party/hdr_histogram/hdr_histogram.cpp)
|
||||
add_library(_http-parser OBJECT ${CASS_SRC_DIR}/third_party/http-parser/http_parser.c)
|
||||
add_library(_minizip OBJECT
|
||||
${CASS_SRC_DIR}/third_party/minizip/ioapi.c
|
||||
${CASS_SRC_DIR}/third_party/minizip/zip.c
|
||||
${CASS_SRC_DIR}/third_party/minizip/unzip.c)
|
||||
|
||||
target_link_libraries(_minizip ch_contrib::zlib)
|
||||
target_compile_definitions(_minizip PRIVATE "-Dz_crc_t=unsigned long")
|
||||
|
||||
list(APPEND INCLUDE_DIRS
|
||||
${CASS_SRC_DIR}/third_party/curl
|
||||
${CASS_SRC_DIR}/third_party/hdr_histogram
|
||||
${CASS_SRC_DIR}/third_party/http-parser
|
||||
${CASS_SRC_DIR}/third_party/minizip
|
||||
${CASS_SRC_DIR}/third_party/mt19937_64
|
||||
${CASS_SRC_DIR}/third_party/rapidjson/rapidjson
|
||||
${CASS_SRC_DIR}/third_party/sparsehash/src)
|
||||
@ -123,10 +115,9 @@ add_library(_cassandra
|
||||
${SOURCES}
|
||||
$<TARGET_OBJECTS:_curl_hostcheck>
|
||||
$<TARGET_OBJECTS:_hdr_histogram>
|
||||
$<TARGET_OBJECTS:_http-parser>
|
||||
$<TARGET_OBJECTS:_minizip>)
|
||||
$<TARGET_OBJECTS:_http-parser>)
|
||||
|
||||
target_link_libraries(_cassandra ch_contrib::zlib)
|
||||
target_link_libraries(_cassandra ch_contrib::zlib ch_contrib::minizip)
|
||||
target_include_directories(_cassandra PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ${INCLUDE_DIRS})
|
||||
target_include_directories(_cassandra SYSTEM BEFORE PUBLIC ${CASS_INCLUDE_DIR})
|
||||
target_compile_definitions(_cassandra PRIVATE CASS_BUILDING)
|
||||
|
1
contrib/minizip-ng
vendored
Submodule
1
contrib/minizip-ng
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 6cffc951851620e0fac1993be75e4713c334de03
|
168
contrib/minizip-ng-cmake/CMakeLists.txt
Normal file
168
contrib/minizip-ng-cmake/CMakeLists.txt
Normal file
@ -0,0 +1,168 @@
|
||||
option(ENABLE_MINIZIP "Enable minizip-ng the zip manipulation library" ${ENABLE_LIBRARIES})
|
||||
if (NOT ENABLE_MINIZIP)
|
||||
message (STATUS "minizip-ng disabled")
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(_MINIZIP_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/minizip-ng")
|
||||
|
||||
# Initial source files
|
||||
set(MINIZIP_SRC
|
||||
${_MINIZIP_SOURCE_DIR}/mz_crypt.c
|
||||
${_MINIZIP_SOURCE_DIR}/mz_os.c
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm.c
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_buf.c
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_mem.c
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_split.c
|
||||
${_MINIZIP_SOURCE_DIR}/mz_zip.c
|
||||
${_MINIZIP_SOURCE_DIR}/mz_zip_rw.c)
|
||||
|
||||
# Initial header files
|
||||
set(MINIZIP_HDR
|
||||
${_MINIZIP_SOURCE_DIR}/mz.h
|
||||
${_MINIZIP_SOURCE_DIR}/mz_os.h
|
||||
${_MINIZIP_SOURCE_DIR}/mz_crypt.h
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm.h
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_buf.h
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_mem.h
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_split.h
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_os.h
|
||||
${_MINIZIP_SOURCE_DIR}/mz_zip.h
|
||||
${_MINIZIP_SOURCE_DIR}/mz_zip_rw.h)
|
||||
|
||||
set(MINIZIP_INC ${_MINIZIP_SOURCE_DIR})
|
||||
|
||||
set(MINIZIP_DEF)
|
||||
set(MINIZIP_PUBLIC_DEF)
|
||||
set(MINIZIP_LIB)
|
||||
|
||||
# Check if zlib is present
|
||||
set(MZ_ZLIB ON)
|
||||
if(MZ_ZLIB)
|
||||
# Use zlib from ClickHouse contrib
|
||||
list(APPEND MINIZIP_LIB ch_contrib::zlib)
|
||||
|
||||
list(APPEND MINIZIP_SRC
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_zlib.c)
|
||||
|
||||
list(APPEND MINIZIP_HDR
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_zlib.h)
|
||||
|
||||
list(APPEND MINIZIP_DEF "-DHAVE_ZLIB")
|
||||
endif()
|
||||
|
||||
# Check if bzip2 is present
|
||||
set(MZ_BZIP2 ${ENABLE_BZIP2})
|
||||
if(MZ_BZIP2)
|
||||
# Use bzip2 from ClickHouse contrib
|
||||
list(APPEND MINIZIP_LIB ch_contrib::bzip2)
|
||||
|
||||
list(APPEND MINIZIP_SRC
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_bzip.c)
|
||||
|
||||
list(APPEND MINIZIP_HDR
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_bzip.h)
|
||||
|
||||
list(APPEND MINIZIP_DEF "-DHAVE_BZIP2")
|
||||
endif()
|
||||
|
||||
# Check if liblzma is present
|
||||
set(MZ_LZMA ON)
|
||||
if(MZ_LZMA)
|
||||
# Use liblzma from ClickHouse contrib
|
||||
list(APPEND MINIZIP_LIB ch_contrib::xz)
|
||||
|
||||
list(APPEND MINIZIP_SRC
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_lzma.c)
|
||||
|
||||
list(APPEND MINIZIP_HDR
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_lzma.h)
|
||||
|
||||
list(APPEND MINIZIP_DEF "-DHAVE_LZMA")
|
||||
endif()
|
||||
|
||||
# Check if zstd is present
|
||||
set(MZ_ZSTD ON)
|
||||
if(MZ_ZSTD)
|
||||
# Use zstd from ClickHouse contrib
|
||||
list(APPEND MINIZIP_LIB ch_contrib::zstd)
|
||||
|
||||
list(APPEND MINIZIP_SRC
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_zstd.c)
|
||||
|
||||
list(APPEND MINIZIP_HDR
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_zstd.h)
|
||||
|
||||
list(APPEND MINIZIP_DEF "-DHAVE_ZSTD")
|
||||
endif()
|
||||
|
||||
if(NOT MZ_ZLIB AND NOT MZ_ZSTD AND NOT MZ_BZIP2 AND NOT MZ_LZMA)
|
||||
message(STATUS "Compression not supported due to missing libraries")
|
||||
|
||||
list(APPEND MINIZIP_DEF -DMZ_ZIP_NO_DECOMPRESSION)
|
||||
list(APPEND MINIZIP_DEF -DMZ_ZIP_NO_COMPRESSION)
|
||||
endif()
|
||||
|
||||
# Check to see if openssl installation is present
|
||||
set(MZ_OPENSSL ${ENABLE_SSL})
|
||||
if(MZ_OPENSSL)
|
||||
# Use openssl from ClickHouse contrib
|
||||
list(APPEND MINIZIP_LIB OpenSSL::SSL OpenSSL::Crypto)
|
||||
|
||||
list(APPEND MINIZIP_SRC
|
||||
${_MINIZIP_SOURCE_DIR}/mz_crypt_openssl.c)
|
||||
endif()
|
||||
|
||||
# Include WinZIP AES encryption
|
||||
set(MZ_WZAES ${ENABLE_SSL})
|
||||
if(MZ_WZAES)
|
||||
list(APPEND MINIZIP_DEF -DHAVE_WZAES)
|
||||
|
||||
list(APPEND MINIZIP_SRC
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_wzaes.c)
|
||||
|
||||
list(APPEND MINIZIP_HDR
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_wzaes.h)
|
||||
endif()
|
||||
|
||||
# Include traditional PKWare encryption
|
||||
set(MZ_PKCRYPT ON)
|
||||
if(MZ_PKCRYPT)
|
||||
list(APPEND MINIZIP_DEF -DHAVE_PKCRYPT)
|
||||
|
||||
list(APPEND MINIZIP_SRC
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_pkcrypt.c)
|
||||
|
||||
list(APPEND MINIZIP_HDR
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_pkcrypt.h)
|
||||
endif()
|
||||
|
||||
# Unix specific
|
||||
if(UNIX)
|
||||
list(APPEND MINIZIP_SRC
|
||||
${_MINIZIP_SOURCE_DIR}/mz_os_posix.c
|
||||
${_MINIZIP_SOURCE_DIR}/mz_strm_os_posix.c)
|
||||
endif()
|
||||
|
||||
# Include compatibility layer
|
||||
set(MZ_COMPAT ON)
|
||||
if(MZ_COMPAT)
|
||||
list(APPEND MINIZIP_SRC
|
||||
${_MINIZIP_SOURCE_DIR}/mz_compat.c)
|
||||
|
||||
list(APPEND MINIZIP_HDR
|
||||
${_MINIZIP_SOURCE_DIR}/mz_compat.h
|
||||
zip.h
|
||||
unzip.h)
|
||||
|
||||
list(APPEND MINIZIP_INC "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
list(APPEND MINIZIP_PUBLIC_DEF "-DMZ_COMPAT_VERSION=110")
|
||||
endif()
|
||||
|
||||
add_library(_minizip ${MINIZIP_SRC} ${MINIZIP_HDR})
|
||||
target_include_directories(_minizip PUBLIC ${MINIZIP_INC})
|
||||
target_compile_definitions(_minizip PUBLIC ${MINIZIP_PUBLIC_DEF})
|
||||
target_compile_definitions(_minizip PRIVATE ${MINIZIP_DEF})
|
||||
target_link_libraries(_minizip PRIVATE ${MINIZIP_LIB})
|
||||
|
||||
add_library(ch_contrib::minizip ALIAS _minizip)
|
13
contrib/minizip-ng-cmake/unzip.h
Normal file
13
contrib/minizip-ng-cmake/unzip.h
Normal file
@ -0,0 +1,13 @@
|
||||
/* unzip.h -- Compatibility layer shim
|
||||
part of the minizip-ng project
|
||||
|
||||
This program is distributed under the terms of the same license as zlib.
|
||||
See the accompanying LICENSE file for the full text of the license.
|
||||
*/
|
||||
|
||||
#ifndef MZ_COMPAT_UNZIP
|
||||
#define MZ_COMPAT_UNZIP
|
||||
|
||||
#include "mz_compat.h"
|
||||
|
||||
#endif
|
13
contrib/minizip-ng-cmake/zip.h
Normal file
13
contrib/minizip-ng-cmake/zip.h
Normal file
@ -0,0 +1,13 @@
|
||||
/* zip.h -- Compatibility layer shim
|
||||
part of the minizip-ng project
|
||||
|
||||
This program is distributed under the terms of the same license as zlib.
|
||||
See the accompanying LICENSE file for the full text of the license.
|
||||
*/
|
||||
|
||||
#ifndef MZ_COMPAT_ZIP
|
||||
#define MZ_COMPAT_ZIP
|
||||
|
||||
#include "mz_compat.h"
|
||||
|
||||
#endif
|
@ -513,6 +513,10 @@ if (TARGET ch_contrib::bzip2)
|
||||
target_link_libraries (clickhouse_common_io PRIVATE ch_contrib::bzip2)
|
||||
endif()
|
||||
|
||||
if (TARGET ch_contrib::minizip)
|
||||
target_link_libraries (clickhouse_common_io PRIVATE ch_contrib::minizip)
|
||||
endif ()
|
||||
|
||||
if (TARGET ch_contrib::simdjson)
|
||||
dbms_target_link_libraries(PRIVATE ch_contrib::simdjson)
|
||||
endif()
|
||||
|
@ -17,6 +17,7 @@
|
||||
#cmakedefine01 USE_YAML_CPP
|
||||
#cmakedefine01 CLICKHOUSE_SPLIT_BINARY
|
||||
#cmakedefine01 USE_BZIP2
|
||||
#cmakedefine01 USE_MINIZIP
|
||||
#cmakedefine01 USE_SNAPPY
|
||||
#cmakedefine01 USE_HIVE
|
||||
#cmakedefine01 USE_ODBC
|
||||
|
@ -4,6 +4,9 @@ endif()
|
||||
if (TARGET ch_contrib::bzip2)
|
||||
set(USE_BZIP2 1)
|
||||
endif()
|
||||
if (TARGET ch_contrib::minizip)
|
||||
set(USE_MINIZIP 1)
|
||||
endif()
|
||||
if (TARGET ch_contrib::snappy)
|
||||
set(USE_SNAPPY 1)
|
||||
endif()
|
||||
|
Loading…
Reference in New Issue
Block a user