diff --git a/CMake/curl-config.cmake.in b/CMake/curl-config.cmake.in index aa9eb51ffd29..e9f3688ce478 100644 --- a/CMake/curl-config.cmake.in +++ b/CMake/curl-config.cmake.in @@ -39,7 +39,6 @@ if("@HAVE_LIBZ@") endif() include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake") -check_required_components("@PROJECT_NAME@") # Alias for either shared or static library if(NOT TARGET @PROJECT_NAME@::libcurl) @@ -47,5 +46,32 @@ if(NOT TARGET @PROJECT_NAME@::libcurl) endif() # For compatibility with CMake's FindCURL.cmake +set(CURL_VERSION_STRING "@CURLVERSION@") set(CURL_LIBRARIES @PROJECT_NAME@::libcurl) set_and_check(CURL_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") + +set(CURL_SUPPORTED_PROTOCOLS "@CURL_SUPPORTED_PROTOCOLS_LIST@") +set(CURL_SUPPORTED_FEATURES "@CURL_SUPPORTED_FEATURES_LIST@") + +foreach(_item IN LISTS CURL_SUPPORTED_PROTOCOLS CURL_SUPPORTED_FEATURES) + set(CURL_SUPPORTS_${_item} TRUE) +endforeach() + +set(_missing_req "") +foreach(_item IN LISTS CURL_FIND_COMPONENTS) + if(CURL_SUPPORTS_${_item}) + set(CURL_${_item}_FOUND TRUE) + elseif(CURL_FIND_REQUIRED_${_item}) + list(APPEND _missing_req ${_item}) + endif() +endforeach() + +if(_missing_req) + string(REPLACE ";" " " _missing_req "${_missing_req}") + if(CURL_FIND_REQUIRED) + message(FATAL_ERROR "CURL: missing required components: ${_missing_req}") + endif() + unset(_missing_req) +endif() + +check_required_components("@PROJECT_NAME@") diff --git a/CMakeLists.txt b/CMakeLists.txt index a424863fd270..84252a310974 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2042,6 +2042,7 @@ curl_add_if("WSS" NOT CURL_DISABLE_WEBSOCKETS AND _ssl_enabled) if(_items) list(SORT _items) endif() +set(CURL_SUPPORTED_PROTOCOLS_LIST "${_items}") string(REPLACE ";" " " SUPPORT_PROTOCOLS "${_items}") string(TOLOWER "${SUPPORT_PROTOCOLS}" _support_protocols_lower) message(STATUS "Protocols: ${_support_protocols_lower}") @@ -2095,6 +2096,7 @@ if(_items) list(SORT _items) endif() endif() +set(CURL_SUPPORTED_FEATURES_LIST "${_items}") string(REPLACE ";" " " SUPPORT_FEATURES "${_items}") message(STATUS "Features: ${SUPPORT_FEATURES}") @@ -2349,10 +2351,13 @@ if(NOT CURL_DISABLE_INSTALL) ${_generated_version_config}") # Consumed custom variables: + # CURLVERSION # LIB_SELECTED # TARGETS_EXPORT_NAME # USE_OPENSSL # HAVE_LIBZ + # CURL_SUPPORTED_FEATURES_LIST + # CURL_SUPPORTED_PROTOCOLS_LIST configure_package_config_file("CMake/curl-config.cmake.in" "${_project_config}" INSTALL_DESTINATION ${_install_cmake_dir}