1*cc02d7e2SAndroid Build Coastguard Workerinclude(FindPackageHandleStandardArgs) 2*cc02d7e2SAndroid Build Coastguard Worker 3*cc02d7e2SAndroid Build Coastguard Workerfunction(__cares_get_version) 4*cc02d7e2SAndroid Build Coastguard Worker if(c-ares_INCLUDE_DIR AND EXISTS "${c-ares_INCLUDE_DIR}/ares_version.h") 5*cc02d7e2SAndroid Build Coastguard Worker file(STRINGS "${c-ares_INCLUDE_DIR}/ares_version.h" _cares_version_str REGEX "^#define ARES_VERSION_STR \"([^\n]*)\"$") 6*cc02d7e2SAndroid Build Coastguard Worker if(_cares_version_str MATCHES "#define ARES_VERSION_STR \"([^\n]*)\"") 7*cc02d7e2SAndroid Build Coastguard Worker set(c-ares_VERSION "${CMAKE_MATCH_1}" PARENT_SCOPE) 8*cc02d7e2SAndroid Build Coastguard Worker endif() 9*cc02d7e2SAndroid Build Coastguard Worker endif() 10*cc02d7e2SAndroid Build Coastguard Workerendfunction() 11*cc02d7e2SAndroid Build Coastguard Worker 12*cc02d7e2SAndroid Build Coastguard Worker# We need to disable version checking, since c-ares does not provide it. 13*cc02d7e2SAndroid Build Coastguard Workerset(_cares_version_var_suffixes "" _MAJOR _MINOR _PATCH _TWEAK _COUNT) 14*cc02d7e2SAndroid Build Coastguard Workerforeach(_suffix IN LISTS _cares_version_var_suffixes) 15*cc02d7e2SAndroid Build Coastguard Worker set(_cares_save_FIND_VERSION${_suffix} ${c-ares_FIND_VERSION${_suffix}}) 16*cc02d7e2SAndroid Build Coastguard Worker unset(c-ares_FIND_VERSION${_suffix}) 17*cc02d7e2SAndroid Build Coastguard Workerendforeach() 18*cc02d7e2SAndroid Build Coastguard Workerfind_package(c-ares CONFIG) 19*cc02d7e2SAndroid Build Coastguard Workerforeach(_suffix IN LISTS _cares_version_var_suffixes) 20*cc02d7e2SAndroid Build Coastguard Worker set(c-ares_FIND_VERSION${_suffix} ${_cares_save_FIND_VERSION${_suffix}}) 21*cc02d7e2SAndroid Build Coastguard Workerendforeach() 22*cc02d7e2SAndroid Build Coastguard Worker 23*cc02d7e2SAndroid Build Coastguard Workerif(c-ares_FOUND) 24*cc02d7e2SAndroid Build Coastguard Worker if(NOT DEFINED c-ares_VERSION) 25*cc02d7e2SAndroid Build Coastguard Worker __cares_get_version() 26*cc02d7e2SAndroid Build Coastguard Worker endif() 27*cc02d7e2SAndroid Build Coastguard Worker 28*cc02d7e2SAndroid Build Coastguard Worker find_package_handle_standard_args(c-ares CONFIG_MODE) 29*cc02d7e2SAndroid Build Coastguard Worker return() 30*cc02d7e2SAndroid Build Coastguard Workerendif() 31*cc02d7e2SAndroid Build Coastguard Worker 32*cc02d7e2SAndroid Build Coastguard Workerfind_path(c-ares_INCLUDE_DIR NAMES ares.h) 33*cc02d7e2SAndroid Build Coastguard Worker__cares_get_version() 34*cc02d7e2SAndroid Build Coastguard Worker 35*cc02d7e2SAndroid Build Coastguard Workerfind_library(c-ares_LIBRARY cares) 36*cc02d7e2SAndroid Build Coastguard Worker 37*cc02d7e2SAndroid Build Coastguard Workerfind_package_handle_standard_args(c-ares 38*cc02d7e2SAndroid Build Coastguard Worker REQUIRED_VARS c-ares_INCLUDE_DIR c-ares_LIBRARY 39*cc02d7e2SAndroid Build Coastguard Worker VERSION_VAR c-ares_VERSION 40*cc02d7e2SAndroid Build Coastguard Worker ) 41*cc02d7e2SAndroid Build Coastguard Worker 42*cc02d7e2SAndroid Build Coastguard Workerif(c-ares_FOUND) 43*cc02d7e2SAndroid Build Coastguard Worker add_library(c-ares::cares UNKNOWN IMPORTED) 44*cc02d7e2SAndroid Build Coastguard Worker set_target_properties(c-ares::cares PROPERTIES 45*cc02d7e2SAndroid Build Coastguard Worker IMPORTED_LOCATION "${c-ares_LIBRARY}" 46*cc02d7e2SAndroid Build Coastguard Worker INTERFACE_INCLUDE_DIRECTORIES "${c-ares_INCLUDE_DIR}" 47*cc02d7e2SAndroid Build Coastguard Worker ) 48*cc02d7e2SAndroid Build Coastguard Workerendif() 49