You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.5 KiB

include(FindPackageHandleStandardArgs)
function(__cares_get_version)
if(c-ares_INCLUDE_DIR AND EXISTS "${c-ares_INCLUDE_DIR}/ares_version.h")
file(STRINGS "${c-ares_INCLUDE_DIR}/ares_version.h" _cares_version_str REGEX "^#define ARES_VERSION_STR \"([^\n]*)\"$")
if(_cares_version_str MATCHES "#define ARES_VERSION_STR \"([^\n]*)\"")
set(c-ares_VERSION "${CMAKE_MATCH_1}" PARENT_SCOPE)
endif()
endif()
endfunction()
# We need to disable version checking, since c-ares does not provide it.
set(_cares_version_var_suffixes "" _MAJOR _MINOR _PATCH _TWEAK _COUNT)
foreach(_suffix IN LISTS _cares_version_var_suffixes)
set(_cares_save_FIND_VERSION${_suffix} ${c-ares_FIND_VERSION${_suffix}})
unset(c-ares_FIND_VERSION${_suffix})
endforeach()
find_package(c-ares CONFIG)
foreach(_suffix IN LISTS _cares_version_var_suffixes)
set(c-ares_FIND_VERSION${_suffix} ${_cares_save_FIND_VERSION${_suffix}})
endforeach()
if(c-ares_FOUND)
if(NOT DEFINED c-ares_VERSION)
__cares_get_version()
endif()
find_package_handle_standard_args(c-ares CONFIG_MODE)
return()
endif()
find_path(c-ares_INCLUDE_DIR NAMES ares.h)
__cares_get_version()
find_library(c-ares_LIBRARY cares)
find_package_handle_standard_args(c-ares
REQUIRED_VARS c-ares_INCLUDE_DIR c-ares_LIBRARY
VERSION_VAR c-ares_VERSION
)
if(c-ares_FOUND)
add_library(c-ares::cares UNKNOWN IMPORTED)
set_target_properties(c-ares::cares PROPERTIES
IMPORTED_LOCATION "${c-ares_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${c-ares_INCLUDE_DIR}"
)
endif()