1# - Try to find libcares 2# Once done this will define 3# LIBCARES_FOUND - System has libcares 4# LIBCARES_INCLUDE_DIRS - The libcares include directories 5# LIBCARES_LIBRARIES - The libraries needed to use libcares 6 7find_package(PkgConfig QUIET) 8pkg_check_modules(PC_LIBCARES QUIET libcares) 9 10find_path(LIBCARES_INCLUDE_DIR 11 NAMES ares.h 12 HINTS ${PC_LIBCARES_INCLUDE_DIRS} 13) 14find_library(LIBCARES_LIBRARY 15 NAMES cares 16 HINTS ${PC_LIBCARES_LIBRARY_DIRS} 17) 18 19if(LIBCARES_INCLUDE_DIR) 20 file(READ "${LIBCARES_INCLUDE_DIR}/ares_version.h" _ares_version_h) 21 string(REGEX REPLACE ".*#define[ \t]+ARES_VERSION_MAJOR[ \t]+([0-9]+).*" "\\1" 22 _ares_version_major ${_ares_version_h}) 23 string(REGEX REPLACE ".*#define[ \t]+ARES_VERSION_MINOR[ \t]+([0-9]+).*" "\\1" 24 _ares_version_minor ${_ares_version_h}) 25 string(REGEX REPLACE ".*#define[ \t]+ARES_VERSION_PATCH[ \t]+([0-9]+).*" "\\1" 26 _ares_version_patch ${_ares_version_h}) 27 set(LIBCARES_VERSION "${_ares_version_major}.${_ares_version_minor}.${_ares_version_patch}") 28 unset(_ares_version_patch) 29 unset(_ares_version_minor) 30 unset(_ares_version_major) 31 unset(_ares_version_h) 32endif() 33 34include(FindPackageHandleStandardArgs) 35# handle the QUIETLY and REQUIRED arguments and set LIBCARES_FOUND to TRUE 36# if all listed variables are TRUE and the requested version matches. 37find_package_handle_standard_args(Libcares REQUIRED_VARS 38 LIBCARES_LIBRARY LIBCARES_INCLUDE_DIR 39 VERSION_VAR LIBCARES_VERSION) 40 41if(LIBCARES_FOUND) 42 set(LIBCARES_LIBRARIES ${LIBCARES_LIBRARY}) 43 set(LIBCARES_INCLUDE_DIRS ${LIBCARES_INCLUDE_DIR}) 44endif() 45 46mark_as_advanced(LIBCARES_INCLUDE_DIR LIBCARES_LIBRARY) 47