From 2443e7cfcb817f5a9053e22b0dca467f5defccae Mon Sep 17 00:00:00 2001 From: Marcelo Juchem Date: Fri, 18 Dec 2020 15:25:55 -0800 Subject: [PATCH] fix curl dependency on non-standard install prefix (#1218) * fix curl dependency on non-standard install prefix When `libcurl` is installed to a non-standard install prefix `azure-core` will configure include/lib directories correctly (as long as `CMAKE_FIND_ROOT_PATH` is set appropriately) for its dependencies (`INTERFACE`) but not for itself (`PRIVATE`), thus failing the build. --- sdk/core/azure-core/CMakeLists.txt | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/sdk/core/azure-core/CMakeLists.txt b/sdk/core/azure-core/CMakeLists.txt index 794ede98b..0e7ffafd0 100644 --- a/sdk/core/azure-core/CMakeLists.txt +++ b/sdk/core/azure-core/CMakeLists.txt @@ -21,14 +21,16 @@ az_vcpkg_integrate() find_package(Threads REQUIRED) -# min version for `CURLSSLOPT_NO_REVOKE` -# https://curl.haxx.se/libcurl/c/CURLOPT_SSL_OPTIONS.html -set(CURL_MIN_REQUIRED_VERSION 7.44) -find_package(CURL ${CURL_MIN_REQUIRED_VERSION} CONFIG QUIET) -if(NOT CURL_FOUND) - find_package(CURL ${CURL_MIN_REQUIRED_VERSION} REQUIRED) +if(BUILD_TRANSPORT_CURL) + # min version for `CURLSSLOPT_NO_REVOKE` + # https://curl.haxx.se/libcurl/c/CURLOPT_SSL_OPTIONS.html + set(CURL_MIN_REQUIRED_VERSION 7.44) + find_package(CURL ${CURL_MIN_REQUIRED_VERSION} CONFIG QUIET) + if(NOT CURL_FOUND) + find_package(CURL ${CURL_MIN_REQUIRED_VERSION} REQUIRED) + endif() + message("Libcurl version ${CURL_VERSION_STRING}") endif() -message("Libcurl version ${CURL_VERSION_STRING}") # Storage requires 3.6.0 version for using `contains` feature set(NLOHMANN_JSON_MIN_REQUIRED_VERSION 3.6.0) @@ -118,8 +120,11 @@ create_code_coverage(core azure-core azure-core-test) # ${CURL_INCLUDE_DIRS} needs to be public as long as we #include in public headers. target_include_directories(azure-core PUBLIC ${CURL_INCLUDE_DIRS}) target_include_directories(azure-core INTERFACE ${nlohmann_json_INCLUDE_DIRS}) -target_link_libraries(azure-core INTERFACE CURL::libcurl Threads::Threads nlohmann_json::nlohmann_json) +target_link_libraries(azure-core INTERFACE Threads::Threads nlohmann_json::nlohmann_json) +if(BUILD_TRANSPORT_CURL) + target_link_libraries(azure-core PRIVATE CURL::libcurl) +endif() if(BUILD_TRANSPORT_WINHTTP) SET(WIN_HTTP_LIB Winhttp.lib) target_link_libraries(azure-core PRIVATE ${WIN_HTTP_LIB})