zhjwpku commented on code in PR #236:
URL: https://github.com/apache/iceberg-cpp/pull/236#discussion_r2358239769
##########
cmake_modules/IcebergThirdpartyToolchain.cmake:
##########
@@ -430,6 +430,196 @@ function(resolve_zlib_dependency)
endfunction()
+# ----------------------------------------------------------------------
+# CURL (for cpr)
+
+function(resolve_curl_dependency)
+ prepare_fetchcontent()
+
+ set(BUILD_CURL_EXE
Review Comment:
I'm not sure if a normal variable is enough here, but @wgtmac has changed
the arrow dependency from cache entries to normal variables.
##########
cmake_modules/IcebergThirdpartyToolchain.cmake:
##########
@@ -430,6 +430,196 @@ function(resolve_zlib_dependency)
endfunction()
+# ----------------------------------------------------------------------
+# CURL (for cpr)
+
+function(resolve_curl_dependency)
+ prepare_fetchcontent()
+
+ set(BUILD_CURL_EXE
+ OFF
+ CACHE BOOL "" FORCE)
+ set(BUILD_TESTING
+ OFF
+ CACHE BOOL "" FORCE)
+ set(CURL_ENABLE_EXPORT_TARGET
+ OFF
+ CACHE BOOL "" FORCE)
+ set(BUILD_SHARED_LIBS
+ OFF
+ CACHE BOOL "" FORCE)
+ set(CURL_STATICLIB
+ ON
+ CACHE BOOL "" FORCE)
+ set(HTTP_ONLY
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_LDAP
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_LDAPS
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_RTSP
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_FTP
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_FILE
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_TELNET
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_DICT
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_TFTP
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_GOPHER
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_POP3
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_IMAP
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_SMTP
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_SMB
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_CA_BUNDLE
+ "auto"
+ CACHE STRING "" FORCE)
+ set(USE_LIBIDN2
+ OFF
+ CACHE BOOL "" FORCE)
+
+ fetchcontent_declare(CURL
Review Comment:
Do we need to vendor curl? Isn't that supplied by most os distributions?
##########
cmake_modules/IcebergThirdpartyToolchain.cmake:
##########
@@ -430,6 +430,196 @@ function(resolve_zlib_dependency)
endfunction()
+# ----------------------------------------------------------------------
+# CURL (for cpr)
+
+function(resolve_curl_dependency)
+ prepare_fetchcontent()
+
+ set(BUILD_CURL_EXE
+ OFF
+ CACHE BOOL "" FORCE)
+ set(BUILD_TESTING
+ OFF
+ CACHE BOOL "" FORCE)
+ set(CURL_ENABLE_EXPORT_TARGET
+ OFF
+ CACHE BOOL "" FORCE)
+ set(BUILD_SHARED_LIBS
+ OFF
+ CACHE BOOL "" FORCE)
+ set(CURL_STATICLIB
+ ON
+ CACHE BOOL "" FORCE)
+ set(HTTP_ONLY
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_LDAP
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_LDAPS
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_RTSP
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_FTP
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_FILE
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_TELNET
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_DICT
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_TFTP
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_GOPHER
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_POP3
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_IMAP
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_SMTP
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_DISABLE_SMB
+ ON
+ CACHE BOOL "" FORCE)
+ set(CURL_CA_BUNDLE
+ "auto"
+ CACHE STRING "" FORCE)
+ set(USE_LIBIDN2
+ OFF
+ CACHE BOOL "" FORCE)
+
+ fetchcontent_declare(CURL
+ ${FC_DECLARE_COMMON_OPTIONS}
+ GIT_REPOSITORY https://github.com/curl/curl.git
+ GIT_TAG curl-8_11_0
+ FIND_PACKAGE_ARGS
+ NAMES
+ CURL
+ CONFIG)
+
+ fetchcontent_makeavailable(CURL)
+
+ if(TARGET OpenSSL::SSL)
+ message(STATUS "Adding OpenSSL to the system dependency list.")
+ list(APPEND ICEBERG_SYSTEM_DEPENDENCIES OpenSSL)
+ endif()
+
+ if(curl_SOURCE_DIR)
+ if(NOT TARGET CURL::libcurl)
+ add_library(CURL::libcurl INTERFACE IMPORTED)
+ target_link_libraries(CURL::libcurl INTERFACE libcurl_static)
+ target_include_directories(CURL::libcurl INTERFACE
${curl_BINARY_DIR}/include
+
${curl_SOURCE_DIR}/include)
+ endif()
+
+ set(CURL_VENDORED TRUE)
+ set_target_properties(libcurl_static PROPERTIES OUTPUT_NAME
"iceberg_vendored_curl"
+ POSITION_INDEPENDENT_CODE
ON)
+ add_library(Iceberg::libcurl_static ALIAS libcurl_static)
+ install(TARGETS libcurl_static
+ EXPORT iceberg_targets
+ RUNTIME DESTINATION "${ICEBERG_INSTALL_BINDIR}"
+ ARCHIVE DESTINATION "${ICEBERG_INSTALL_LIBDIR}"
+ LIBRARY DESTINATION "${ICEBERG_INSTALL_LIBDIR}")
+ message(STATUS "Use vendored CURL")
+
+ list(APPEND ICEBERG_SYSTEM_DEPENDENCIES OpenSSL)
+ else()
+ set(CURL_VENDORED FALSE)
+ list(APPEND ICEBERG_SYSTEM_DEPENDENCIES CURL)
+ message(STATUS "Use system CURL")
+ endif()
+
+ set(ICEBERG_SYSTEM_DEPENDENCIES
+ ${ICEBERG_SYSTEM_DEPENDENCIES}
+ PARENT_SCOPE)
+ set(CURL_VENDORED
+ ${CURL_VENDORED}
+ PARENT_SCOPE)
+endfunction()
+
+# ----------------------------------------------------------------------
+# cpr (C++ Requests)
+
+function(resolve_cpr_dependency)
+ prepare_fetchcontent()
+
+ set(CPR_BUILD_TESTS
+ OFF
+ CACHE BOOL "" FORCE)
+ set(CPR_BUILD_TESTS_SSL
+ OFF
+ CACHE BOOL "" FORCE)
+ set(CPR_ENABLE_SSL
+ ON
+ CACHE BOOL "" FORCE)
+ set(CPR_USE_SYSTEM_CURL
+ ON
+ CACHE BOOL "" FORCE)
+ set(CPR_CURL_NOSIGNAL
+ ON
+ CACHE BOOL "" FORCE)
+
+ set(CURL_VERSION_STRING
+ "8.11.0"
+ CACHE STRING "" FORCE)
+ set(CURL_LIB
+ "CURL::libcurl"
+ CACHE STRING "" FORCE)
+
+ fetchcontent_declare(cpr
+ ${FC_DECLARE_COMMON_OPTIONS}
+ GIT_REPOSITORY https://github.com/libcpr/cpr.git
Review Comment:
We might want to use the release package rather than the git repo.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]