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