• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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