aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/curl/vcpkg-cmake-wrapper.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/curl/vcpkg-cmake-wrapper.cmake')
-rw-r--r--vcpkg/ports/curl/vcpkg-cmake-wrapper.cmake54
1 files changed, 54 insertions, 0 deletions
diff --git a/vcpkg/ports/curl/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/curl/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 0000000..99ce35d
--- /dev/null
+++ b/vcpkg/ports/curl/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,54 @@
+list(REMOVE_ITEM ARGS "NO_MODULE" "CONFIG" "MODULE")
+_find_package(${ARGS} CONFIG)
+
+if(CURL_FOUND)
+ cmake_policy(PUSH)
+ cmake_policy(SET CMP0012 NEW)
+ cmake_policy(SET CMP0054 NEW)
+ cmake_policy(SET CMP0057 NEW)
+
+ include("${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake")
+
+ set(_curl_target CURL::libcurl_shared)
+ if(TARGET CURL::libcurl_static)
+ set(_curl_target CURL::libcurl_static)
+ endif()
+ get_target_property(_curl_include_dirs ${_curl_target} INTERFACE_INCLUDE_DIRECTORIES)
+ get_target_property(_curl_link_libraries ${_curl_target} INTERFACE_LINK_LIBRARIES)
+ if(NOT _curl_link_libraries)
+ set(_curl_link_libraries "")
+ endif()
+ if(_curl_link_libraries MATCHES "ZLIB::ZLIB")
+ string(REGEX REPLACE "([\$]<[^;]*)?ZLIB::ZLIB([^;]*>)?" "${ZLIB_LIBRARIES}" _curl_link_libraries "${_curl_link_libraries}")
+ endif()
+ if(_curl_link_libraries MATCHES "OpenSSL::")
+ string(REGEX REPLACE "([\$]<[^;]*)?OpenSSL::(SSL|Crypto)([^;]*>)?" "${OPENSSL_LIBRARIES}" _curl_link_libraries "${_curl_link_libraries}")
+ endif()
+ if(_curl_link_libraries MATCHES "::")
+ message(WARNING "CURL_LIBRARIES list at least one target. This will not work for use cases where targets are not resolved.")
+ endif()
+
+ if(WIN32)
+ get_target_property(_curl_location_debug ${_curl_target} IMPORTED_IMPLIB_DEBUG)
+ get_target_property(_curl_location_release ${_curl_target} IMPORTED_IMPLIB_RELEASE)
+ endif()
+
+ if(NOT _curl_location_debug AND NOT _curl_location_release)
+ get_target_property(_curl_location_debug ${_curl_target} IMPORTED_LOCATION_DEBUG)
+ get_target_property(_curl_location_release ${_curl_target} IMPORTED_LOCATION_RELEASE)
+ endif()
+
+ set(CURL_INCLUDE_DIRS "${_curl_include_dirs}")
+ set(CURL_LIBRARY_DEBUG "${_curl_location_debug}" CACHE INTERNAL "vcpkg")
+ set(CURL_LIBRARY_RELEASE "${_curl_location_release}" CACHE INTERNAL "vcpkg")
+ select_library_configurations(CURL)
+ set(CURL_LIBRARIES ${CURL_LIBRARY} ${_curl_link_libraries})
+ set(CURL_VERSION_STRING "${CURL_VERSION}")
+
+ unset(_curl_include_dirs)
+ unset(_curl_link_libraries)
+ unset(_curl_location_debug)
+ unset(_curl_location_release)
+ unset(_curl_target)
+ cmake_policy(POP)
+endif()