bc7ecaa267c2082f35f71a9634ff8a62fe5bdbae
[awesomized/libmemcached] / CMake / CheckDependency.cmake
1 find_package(PkgConfig)
2
3 include(SafeString)
4 include(CheckHeader)
5
6 function(check_dependency_basic NAME LIB HEADER)
7 set(FOUND 1)
8 message("-- Checking for library '${LIB}' with header '${HEADER}' ...")
9 find_library(LIB${LIB} NAMES ${LIB})
10 if(NOT LIB${LIB})
11 set(FOUND 0)
12 endif()
13 if(HEADER)
14 safe_string(${HEADER} HEADER_CONST)
15 check_header(${HEADER})
16 if(NOT HAVE_${HEADER_CONST})
17 set(FOUND 0)
18 else()
19 find_path(${HEADER_CONST}_ROOT ${HEADER})
20 if(NOT ${HEADER_CONST}_ROOT)
21 set(FOUND 0)
22 endif()
23 endif()
24 endif()
25 if(FOUND)
26 message("-- Found library '${LIB${LIB}}'")
27 message("-- Found include '${${HEADER_CONST}_ROOT}'")
28 else()
29 message("-- No library '${LIB}' found")
30 endif()
31 set(${NAME} ${FOUND} PARENT_SCOPE)
32 set(${NAME}_LIBRARIES ${LIB${LIB}} PARENT_SCOPE)
33 set(${NAME}_INCLUDEDIR ${${HEADER_CONST}_ROOT} PARENT_SCOPE)
34 endfunction()
35
36 function(check_dependency NAME LIB HEADER)
37 if(PKG_CONFIG_FOUND)
38 pkg_check_modules(${NAME} lib${LIB}${ARGN} IMPORTED_TARGET)
39 if(NOT ${NAME}_FOUND)
40 pkg_check_modules(${NAME} ${LIB}${ARGN})
41 endif()
42 if(NOT ${NAME}_FOUND)
43 check_dependency_basic(${NAME} ${LIB} ${HEADER})
44 else()
45 set(${NAME} ${${NAME}_FOUND} PARENT_SCOPE)
46 set(${NAME}_LIBRARIES ${${NAME}_LDFLAGS} PARENT_SCOPE)
47 set(${NAME}_INCLUDEDIR ${${NAME}_INCLUDEDIR} PARENT_SCOPE)
48
49 safe_string(${LIB} LIB_CONST)
50 set(HAVE_${NAME} ${${NAME}_FOUND} PARENT_SCOPE)
51 safe_string(${HEADER} HEADER_CONST)
52 find_path(HAVE_${HEADER_CONST} ${HEADER} PATHS ${${NAME}_INCLUDEDIR})
53 endif()
54 else()
55 check_dependency_basic(${NAME} ${LIB} ${HEADER})
56 endif()
57 endfunction()