@@ -433,62 +433,77 @@ endfunction()
433433# ----------------------------------------------------------------------
434434# CURL (for cpr)
435435
436- function (resolve_curl_dependency)
437- prepare_fetchcontent()
438-
439- set (BUILD_CURL_EXE OFF )
440- set (BUILD_SHARED_LIBS OFF )
441- set (BUILD_TESTING OFF )
442- set (CURL_CA_BUNDLE "auto" )
443- set (CURL_ENABLE_EXPORT_TARGET OFF )
444- set (CURL_STATICLIB ON )
445- set (HTTP_ONLY ON )
446- set (USE_LIBIDN2 OFF )
447-
448- fetchcontent_declare(curl
449- ${FC_DECLARE_COMMON_OPTIONS}
450- URL https://curl.se/download/curl-8.11.0.tar.gz FIND_PACKAGE_ARGS
451- NAMES curl)
452-
453- fetchcontent_makeavailable(CURL)
454-
455- if (curl_SOURCE_DIR)
456- set (CURL_VERSION_STRING
457- "8.11.0"
458- PARENT_SCOPE)
459- if (NOT TARGET CURL::libcurl)
460- add_library (CURL::libcurl INTERFACE IMPORTED )
461- target_link_libraries (CURL::libcurl INTERFACE libcurl_static)
462- target_include_directories (CURL::libcurl INTERFACE ${curl_BINARY_DIR} /include
463- ${curl_SOURCE_DIR} /include )
464- endif ()
465-
466- set (CURL_VENDORED TRUE )
467- set_target_properties (libcurl_static PROPERTIES OUTPUT_NAME "iceberg_vendored_curl"
468- POSITION_INDEPENDENT_CODE ON )
469- add_library (Iceberg::libcurl_static ALIAS libcurl_static)
470- install (TARGETS libcurl_static
471- EXPORT iceberg_targets
472- RUNTIME DESTINATION "${ICEBERG_INSTALL_BINDIR} "
473- ARCHIVE DESTINATION "${ICEBERG_INSTALL_LIBDIR} "
474- LIBRARY DESTINATION "${ICEBERG_INSTALL_LIBDIR} " )
475- message (STATUS "Use vendored CURL" )
436+ # function(resolve_curl_dependency)
437+ # prepare_fetchcontent()
438+
439+ # find_package(CURL QUIET COMPONENTS HTTPS SSL)
440+
441+ # if(CURL_FOUND)
442+ # if(CURL_VERSION VERSION_LESS "7.61.0")
443+ # message(STATUS "System CURL version ${CURL_VERSION} too old, will download")
444+ # set(CURL_FOUND FALSE)
445+ # else()
446+ # message(STATUS "Found my system CURL ${CURL_VERSION}")
447+ # list(APPEND ICEBERG_SYSTEM_DEPENDENCIES CURL)
448+ # set(CURL_VENDORED FALSE)
449+ # endif()
450+ # endif()
451+
452+ # if(NOT CURL_FOUND)
453+ # set(BUILD_CURL_EXE OFF)
454+ # set(BUILD_SHARED_LIBS OFF)
455+ # set(BUILD_TESTING OFF)
456+ # set(CURL_CA_BUNDLE "auto")
457+ # set(CURL_ENABLE_EXPORT_TARGET OFF)
458+ # set(CURL_STATICLIB ON)
459+ # set(HTTP_ONLY ON)
460+ # set(USE_LIBIDN2 OFF)
461+
462+ # FetchContent_Declare(curl
463+ # ${FC_DECLARE_COMMON_OPTIONS}
464+ # URL https://curl.se/download/curl-8.11.0.tar.gz
465+ # )
466+ # set(CURL_VENDORED TRUE)
467+ # FetchContent_MakeAvailable(curl)
468+ # endif()
469+
470+ # if(curl_SOURCE_DIR)
471+ # set(CURL_VERSION_STRING
472+ # "8.11.0"
473+ # PARENT_SCOPE)
474+ # if(NOT TARGET CURL::libcurl)
475+ # add_library(CURL::libcurl INTERFACE IMPORTED)
476+ # target_link_libraries(CURL::libcurl INTERFACE libcurl_static)
477+ # target_include_directories(CURL::libcurl INTERFACE ${curl_BINARY_DIR}/include
478+ # ${curl_SOURCE_DIR}/include)
479+ # endif()
476480
477- # curl depends on the system installed OpenSSL
478- list (APPEND ICEBERG_SYSTEM_DEPENDENCIES OpenSSL)
479- else ()
480- set (CURL_VENDORED FALSE )
481- list (APPEND ICEBERG_SYSTEM_DEPENDENCIES CURL)
482- message (STATUS "Use system CURL" )
483- endif ()
484-
485- set (ICEBERG_SYSTEM_DEPENDENCIES
486- ${ICEBERG_SYSTEM_DEPENDENCIES}
487- PARENT_SCOPE)
488- set (CURL_VENDORED
489- ${CURL_VENDORED}
490- PARENT_SCOPE)
491- endfunction ()
481+ #
482+ # set_target_properties(libcurl_static PROPERTIES OUTPUT_NAME "iceberg_vendored_curl"
483+ # POSITION_INDEPENDENT_CODE ON)
484+ # add_library(Iceberg::libcurl_static ALIAS libcurl_static)
485+ # install(TARGETS libcurl_static
486+ # EXPORT iceberg_targets
487+ # RUNTIME DESTINATION "${ICEBERG_INSTALL_BINDIR}"
488+ # ARCHIVE DESTINATION "${ICEBERG_INSTALL_LIBDIR}"
489+ # LIBRARY DESTINATION "${ICEBERG_INSTALL_LIBDIR}")
490+ # message(STATUS "Use vendored CURL")
491+
492+ # # curl depends on the system installed OpenSSL
493+ # list(APPEND ICEBERG_SYSTEM_DEPENDENCIES OpenSSL)
494+ # else()
495+ # set(CURL_VENDORED FALSE)
496+ # list(APPEND ICEBERG_SYSTEM_DEPENDENCIES CURL)
497+ # message(STATUS "Use system CURL")
498+ # endif()
499+
500+ # set(ICEBERG_SYSTEM_DEPENDENCIES
501+ # ${ICEBERG_SYSTEM_DEPENDENCIES}
502+ # PARENT_SCOPE)
503+ # set(CURL_VENDORED
504+ # ${CURL_VENDORED}
505+ # PARENT_SCOPE)
506+ # endfunction()
492507
493508# ----------------------------------------------------------------------
494509# cpr (C++ Requests)
@@ -497,10 +512,9 @@ function(resolve_cpr_dependency)
497512 prepare_fetchcontent()
498513
499514 set (CPR_BUILD_TESTS OFF )
500- set (CPR_BUILD_TESTS_SSL OFF )
515+ set (CPR_ENABLE_CURL_HTTP_ONLY ON )
501516 set (CPR_ENABLE_SSL ON )
502517 set (CPR_USE_SYSTEM_CURL ON )
503- set (CPR_CURL_NOSIGNAL ON )
504518
505519 fetchcontent_declare(cpr
506520 ${FC_DECLARE_COMMON_OPTIONS}
@@ -532,6 +546,7 @@ function(resolve_cpr_dependency)
532546 else ()
533547 set (CPR_VENDORED FALSE )
534548 list (APPEND ICEBERG_SYSTEM_DEPENDENCIES cpr)
549+ list (APPEND ICEBERG_SYSTEM_DEPENDENCIES OpenSSL)
535550 endif ()
536551
537552 set (ICEBERG_SYSTEM_DEPENDENCIES
@@ -542,6 +557,63 @@ function(resolve_cpr_dependency)
542557 PARENT_SCOPE)
543558endfunction ()
544559
560+ # function(resolve_cpr_dependency)
561+ # prepare_fetchcontent()
562+
563+ # set(CPR_BUILD_TESTS OFF)
564+ # set(CPR_BUILD_TESTS_SSL OFF)
565+ # set(CPR_ENABLE_SSL ON)
566+ # set(CPR_USE_SYSTEM_CURL ON)
567+ # set(CPR_CURL_NOSIGNAL ON)
568+
569+ # if(CURL_VENDORED)
570+ # message(STATUS "Use vendored CURL in cpr")
571+ # set(CPR_USE_SYSTEM_CURL OFF)
572+ # else()
573+ # message(STATUS "Use system CURL in cpr")
574+ # set(CPR_USE_SYSTEM_CURL ON)
575+ # endif()
576+
577+ # fetchcontent_declare(cpr
578+ # ${FC_DECLARE_COMMON_OPTIONS}
579+ # URL https://github.com/libcpr/cpr/archive/refs/tags/1.12.0.tar.gz
580+ # FIND_PACKAGE_ARGS
581+ # NAMES
582+ # cpr
583+ # CONFIG)
584+
585+ # fetchcontent_makeavailable(cpr)
586+
587+ # if(cpr_SOURCE_DIR)
588+ # if(NOT TARGET cpr::cpr)
589+ # add_library(cpr::cpr INTERFACE IMPORTED)
590+ # target_link_libraries(cpr::cpr INTERFACE cpr)
591+ # target_include_directories(cpr::cpr INTERFACE ${cpr_BINARY_DIR}
592+ # ${cpr_SOURCE_DIR}/include)
593+ # endif()
594+
595+ # set(CPR_VENDORED TRUE)
596+ # set_target_properties(cpr PROPERTIES OUTPUT_NAME "iceberg_vendored_cpr"
597+ # POSITION_INDEPENDENT_CODE ON)
598+ # add_library(Iceberg::cpr ALIAS cpr)
599+ # install(TARGETS cpr
600+ # EXPORT iceberg_targets
601+ # RUNTIME DESTINATION "${ICEBERG_INSTALL_BINDIR}"
602+ # ARCHIVE DESTINATION "${ICEBERG_INSTALL_LIBDIR}"
603+ # LIBRARY DESTINATION "${ICEBERG_INSTALL_LIBDIR}")
604+ # else()
605+ # set(CPR_VENDORED FALSE)
606+ # list(APPEND ICEBERG_SYSTEM_DEPENDENCIES cpr)
607+ # endif()
608+
609+ # set(ICEBERG_SYSTEM_DEPENDENCIES
610+ # ${ICEBERG_SYSTEM_DEPENDENCIES}
611+ # PARENT_SCOPE)
612+ # set(CPR_VENDORED
613+ # ${CPR_VENDORED}
614+ # PARENT_SCOPE)
615+ # endfunction()
616+
545617# ----------------------------------------------------------------------
546618# Zstd
547619
@@ -569,6 +641,5 @@ if(ICEBERG_BUILD_BUNDLE)
569641endif ()
570642
571643if (ICEBERG_BUILD_REST)
572- resolve_curl_dependency()
573644 resolve_cpr_dependency()
574645endif ()
0 commit comments