cmake
[awesomized/libmemcached] / CMake / CheckDependency.cmake
1 find_package(PkgConfig)
2
3 include(SafeString)
4 include(CheckHeader)
5
6 function(check_dependency NAME LIB HEADER)
7 if(PKG_CONFIG_FOUND)
8 pkg_check_modules(${NAME} lib${LIB}${ARGN})
9 if(NOT ${NAME}_FOUND)
10 pkg_check_modules(${NAME} ${LIB}${ARGN})
11 endif()
12 set(${NAME} ${${NAME}_FOUND} PARENT_SCOPE)
13 set(${NAME}_LIBRARIES ${${NAME}_LIBRARIES} PARENT_SCOPE)
14 set(${NAME}_INCLUDEDIR ${${NAME}_INCLUDEDIR}} PARENT_SCOPE)
15
16 safe_string(${LIB} LIB_CONST)
17 set(HAVE_${NAME} ${${NAME}_FOUND} PARENT_SCOPE)
18 safe_string(${HEADER} HEADER_CONST)
19 find_path(HAVE_${HEADER_CONST} ${HEADER} PATHS ${${NAME}_INCLUDEDIR})
20 else()
21 set(FOUND 1)
22 find_library(LIB${LIB} NAMES ${LIB})
23 if(NOT LIB${LIB})
24 set(FOUND 0)
25 endif()
26 if(HEADER)
27 safe_string(${HEADER} HEADER_CONST)
28 check_header(${HEADER})
29 if(NOT HAVE_${HEADER_CONST})
30 set(FOUND 0)
31 else()
32 find_path(${HEADER_CONST}_ROOT ${HEADER})
33 if(NOT ${HEADER_CONST}_ROOT)
34 set(FOUND 0)
35 endif()
36 endif()
37 endif()
38 set(${NAME} ${FOUND} PARENT_SCOPE)
39 set(${NAME}_LIBRARIES ${LIB${LIB}} PARENT_SCOPE)
40 set(${NAME}_INCLUDEDIR ${${HEADER_CONST}_ROOT} PARENT_SCOPE)
41 endif()
42 endfunction()