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()