mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-21 15:12:02 +00:00
e8f5cd3c68
Sometimes it is useful to build contrib with debug symbols for further debugging. With everything turned ON (i.e. debug build) I got 3.3GB vs 3.0GB w/o this patch, 9% bloat, thoughts about this is this OK or not for you, if not STRIP_DEBUG_SYMBOLS_HEAVY_CONTRIB can be OFF by default (regardless of build type). P.S. aws debug symbols adds just 1.7%. v2: rename STRIP_HEAVY_DEBUG_SYMBOLS v3: OMIT_HEAVY_DEBUG_SYMBOLS v4: documentation had been removed Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
179 lines
5.8 KiB
CMake
179 lines
5.8 KiB
CMake
option (ENABLE_CURL "Enable curl" ${ENABLE_LIBRARIES})
|
|
|
|
if (NOT ENABLE_CURL)
|
|
message(STATUS "Not using curl")
|
|
return()
|
|
endif()
|
|
|
|
set (LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/curl")
|
|
|
|
set (SRCS
|
|
"${LIBRARY_DIR}/lib/file.c"
|
|
"${LIBRARY_DIR}/lib/timeval.c"
|
|
"${LIBRARY_DIR}/lib/base64.c"
|
|
"${LIBRARY_DIR}/lib/hostip.c"
|
|
"${LIBRARY_DIR}/lib/progress.c"
|
|
"${LIBRARY_DIR}/lib/formdata.c"
|
|
"${LIBRARY_DIR}/lib/cookie.c"
|
|
"${LIBRARY_DIR}/lib/http.c"
|
|
"${LIBRARY_DIR}/lib/sendf.c"
|
|
"${LIBRARY_DIR}/lib/url.c"
|
|
"${LIBRARY_DIR}/lib/dict.c"
|
|
"${LIBRARY_DIR}/lib/if2ip.c"
|
|
"${LIBRARY_DIR}/lib/speedcheck.c"
|
|
"${LIBRARY_DIR}/lib/ldap.c"
|
|
"${LIBRARY_DIR}/lib/version.c"
|
|
"${LIBRARY_DIR}/lib/getenv.c"
|
|
"${LIBRARY_DIR}/lib/escape.c"
|
|
"${LIBRARY_DIR}/lib/mprintf.c"
|
|
"${LIBRARY_DIR}/lib/telnet.c"
|
|
"${LIBRARY_DIR}/lib/netrc.c"
|
|
"${LIBRARY_DIR}/lib/getinfo.c"
|
|
"${LIBRARY_DIR}/lib/transfer.c"
|
|
"${LIBRARY_DIR}/lib/strcase.c"
|
|
"${LIBRARY_DIR}/lib/easy.c"
|
|
"${LIBRARY_DIR}/lib/curl_fnmatch.c"
|
|
"${LIBRARY_DIR}/lib/fileinfo.c"
|
|
"${LIBRARY_DIR}/lib/wildcard.c"
|
|
"${LIBRARY_DIR}/lib/krb5.c"
|
|
"${LIBRARY_DIR}/lib/memdebug.c"
|
|
"${LIBRARY_DIR}/lib/http_chunks.c"
|
|
"${LIBRARY_DIR}/lib/strtok.c"
|
|
"${LIBRARY_DIR}/lib/connect.c"
|
|
"${LIBRARY_DIR}/lib/llist.c"
|
|
"${LIBRARY_DIR}/lib/hash.c"
|
|
"${LIBRARY_DIR}/lib/multi.c"
|
|
"${LIBRARY_DIR}/lib/content_encoding.c"
|
|
"${LIBRARY_DIR}/lib/share.c"
|
|
"${LIBRARY_DIR}/lib/http_digest.c"
|
|
"${LIBRARY_DIR}/lib/md4.c"
|
|
"${LIBRARY_DIR}/lib/md5.c"
|
|
"${LIBRARY_DIR}/lib/http_negotiate.c"
|
|
"${LIBRARY_DIR}/lib/inet_pton.c"
|
|
"${LIBRARY_DIR}/lib/strtoofft.c"
|
|
"${LIBRARY_DIR}/lib/strerror.c"
|
|
"${LIBRARY_DIR}/lib/amigaos.c"
|
|
"${LIBRARY_DIR}/lib/hostasyn.c"
|
|
"${LIBRARY_DIR}/lib/hostip4.c"
|
|
"${LIBRARY_DIR}/lib/hostip6.c"
|
|
"${LIBRARY_DIR}/lib/hostsyn.c"
|
|
"${LIBRARY_DIR}/lib/inet_ntop.c"
|
|
"${LIBRARY_DIR}/lib/parsedate.c"
|
|
"${LIBRARY_DIR}/lib/select.c"
|
|
"${LIBRARY_DIR}/lib/splay.c"
|
|
"${LIBRARY_DIR}/lib/strdup.c"
|
|
"${LIBRARY_DIR}/lib/socks.c"
|
|
"${LIBRARY_DIR}/lib/curl_addrinfo.c"
|
|
"${LIBRARY_DIR}/lib/socks_gssapi.c"
|
|
"${LIBRARY_DIR}/lib/socks_sspi.c"
|
|
"${LIBRARY_DIR}/lib/curl_sspi.c"
|
|
"${LIBRARY_DIR}/lib/slist.c"
|
|
"${LIBRARY_DIR}/lib/nonblock.c"
|
|
"${LIBRARY_DIR}/lib/curl_memrchr.c"
|
|
"${LIBRARY_DIR}/lib/imap.c"
|
|
"${LIBRARY_DIR}/lib/pop3.c"
|
|
"${LIBRARY_DIR}/lib/smtp.c"
|
|
"${LIBRARY_DIR}/lib/pingpong.c"
|
|
"${LIBRARY_DIR}/lib/rtsp.c"
|
|
"${LIBRARY_DIR}/lib/curl_threads.c"
|
|
"${LIBRARY_DIR}/lib/warnless.c"
|
|
"${LIBRARY_DIR}/lib/hmac.c"
|
|
"${LIBRARY_DIR}/lib/curl_rtmp.c"
|
|
"${LIBRARY_DIR}/lib/openldap.c"
|
|
"${LIBRARY_DIR}/lib/curl_gethostname.c"
|
|
"${LIBRARY_DIR}/lib/gopher.c"
|
|
"${LIBRARY_DIR}/lib/idn_win32.c"
|
|
"${LIBRARY_DIR}/lib/http_proxy.c"
|
|
"${LIBRARY_DIR}/lib/asyn-thread.c"
|
|
"${LIBRARY_DIR}/lib/curl_gssapi.c"
|
|
"${LIBRARY_DIR}/lib/http_ntlm.c"
|
|
"${LIBRARY_DIR}/lib/curl_ntlm_wb.c"
|
|
"${LIBRARY_DIR}/lib/curl_ntlm_core.c"
|
|
"${LIBRARY_DIR}/lib/curl_sasl.c"
|
|
"${LIBRARY_DIR}/lib/rand.c"
|
|
"${LIBRARY_DIR}/lib/curl_multibyte.c"
|
|
"${LIBRARY_DIR}/lib/conncache.c"
|
|
"${LIBRARY_DIR}/lib/dotdot.c"
|
|
"${LIBRARY_DIR}/lib/http2.c"
|
|
"${LIBRARY_DIR}/lib/smb.c"
|
|
"${LIBRARY_DIR}/lib/curl_endian.c"
|
|
"${LIBRARY_DIR}/lib/curl_des.c"
|
|
"${LIBRARY_DIR}/lib/system_win32.c"
|
|
"${LIBRARY_DIR}/lib/mime.c"
|
|
"${LIBRARY_DIR}/lib/sha256.c"
|
|
"${LIBRARY_DIR}/lib/setopt.c"
|
|
"${LIBRARY_DIR}/lib/curl_path.c"
|
|
"${LIBRARY_DIR}/lib/curl_ctype.c"
|
|
"${LIBRARY_DIR}/lib/curl_range.c"
|
|
"${LIBRARY_DIR}/lib/psl.c"
|
|
"${LIBRARY_DIR}/lib/doh.c"
|
|
"${LIBRARY_DIR}/lib/urlapi.c"
|
|
"${LIBRARY_DIR}/lib/curl_get_line.c"
|
|
"${LIBRARY_DIR}/lib/altsvc.c"
|
|
"${LIBRARY_DIR}/lib/socketpair.c"
|
|
"${LIBRARY_DIR}/lib/bufref.c"
|
|
"${LIBRARY_DIR}/lib/dynbuf.c"
|
|
"${LIBRARY_DIR}/lib/hsts.c"
|
|
"${LIBRARY_DIR}/lib/http_aws_sigv4.c"
|
|
"${LIBRARY_DIR}/lib/mqtt.c"
|
|
"${LIBRARY_DIR}/lib/rename.c"
|
|
"${LIBRARY_DIR}/lib/h2h3.c"
|
|
"${LIBRARY_DIR}/lib/headers.c"
|
|
"${LIBRARY_DIR}/lib/timediff.c"
|
|
"${LIBRARY_DIR}/lib/vauth/vauth.c"
|
|
"${LIBRARY_DIR}/lib/vauth/cleartext.c"
|
|
"${LIBRARY_DIR}/lib/vauth/cram.c"
|
|
"${LIBRARY_DIR}/lib/vauth/digest.c"
|
|
"${LIBRARY_DIR}/lib/vauth/digest_sspi.c"
|
|
"${LIBRARY_DIR}/lib/vauth/krb5_gssapi.c"
|
|
"${LIBRARY_DIR}/lib/vauth/krb5_sspi.c"
|
|
"${LIBRARY_DIR}/lib/vauth/ntlm.c"
|
|
"${LIBRARY_DIR}/lib/vauth/ntlm_sspi.c"
|
|
"${LIBRARY_DIR}/lib/vauth/oauth2.c"
|
|
"${LIBRARY_DIR}/lib/vauth/spnego_gssapi.c"
|
|
"${LIBRARY_DIR}/lib/vauth/spnego_sspi.c"
|
|
"${LIBRARY_DIR}/lib/vtls/openssl.c"
|
|
"${LIBRARY_DIR}/lib/vtls/gtls.c"
|
|
"${LIBRARY_DIR}/lib/vtls/vtls.c"
|
|
"${LIBRARY_DIR}/lib/vtls/nss.c"
|
|
"${LIBRARY_DIR}/lib/vtls/wolfssl.c"
|
|
"${LIBRARY_DIR}/lib/vtls/schannel.c"
|
|
"${LIBRARY_DIR}/lib/vtls/schannel_verify.c"
|
|
"${LIBRARY_DIR}/lib/vtls/sectransp.c"
|
|
"${LIBRARY_DIR}/lib/vtls/gskit.c"
|
|
"${LIBRARY_DIR}/lib/vtls/mbedtls.c"
|
|
"${LIBRARY_DIR}/lib/vtls/bearssl.c"
|
|
"${LIBRARY_DIR}/lib/vtls/keylog.c"
|
|
"${LIBRARY_DIR}/lib/vtls/x509asn1.c"
|
|
"${LIBRARY_DIR}/lib/vtls/hostcheck.c"
|
|
"${LIBRARY_DIR}/lib/vquic/ngtcp2.c"
|
|
"${LIBRARY_DIR}/lib/vquic/quiche.c"
|
|
"${LIBRARY_DIR}/lib/vquic/msh3.c"
|
|
"${LIBRARY_DIR}/lib/vssh/libssh2.c"
|
|
"${LIBRARY_DIR}/lib/vssh/libssh.c"
|
|
)
|
|
|
|
add_library (_curl ${SRCS})
|
|
|
|
target_compile_definitions (_curl PRIVATE
|
|
HAVE_CONFIG_H
|
|
BUILDING_LIBCURL
|
|
CURL_HIDDEN_SYMBOLS
|
|
libcurl_EXPORTS
|
|
OS="${CMAKE_SYSTEM_NAME}"
|
|
)
|
|
target_include_directories (_curl SYSTEM PUBLIC
|
|
"${LIBRARY_DIR}/include"
|
|
"${LIBRARY_DIR}/lib"
|
|
. # curl_config.h
|
|
)
|
|
|
|
target_link_libraries (_curl PRIVATE OpenSSL::SSL)
|
|
|
|
# The library is large - avoid bloat (XXX: is it?)
|
|
if (OMIT_HEAVY_DEBUG_SYMBOLS)
|
|
target_compile_options (_curl PRIVATE -g0)
|
|
endif()
|
|
|
|
add_library (ch_contrib::curl ALIAS _curl)
|