find_package(PkgConfig) include(SafeString) include(CheckHeader) function(check_dependency NAME LIB HEADER) if(PKG_CONFIG_FOUND) pkg_check_modules(${NAME} lib${LIB}${ARGN}) if(NOT ${NAME}_FOUND) pkg_check_modules(${NAME} ${LIB}${ARGN}) endif() set(${NAME} ${${NAME}_FOUND} PARENT_SCOPE) set(${NAME}_LIBRARIES ${${NAME}_LDFLAGS} PARENT_SCOPE) set(${NAME}_INCLUDEDIR ${${NAME}_INCLUDEDIR} PARENT_SCOPE) safe_string(${LIB} LIB_CONST) set(HAVE_${NAME} ${${NAME}_FOUND} PARENT_SCOPE) safe_string(${HEADER} HEADER_CONST) find_path(HAVE_${HEADER_CONST} ${HEADER} PATHS ${${NAME}_INCLUDEDIR}) else() set(FOUND 1) find_library(LIB${LIB} NAMES ${LIB}) if(NOT LIB${LIB}) set(FOUND 0) endif() if(HEADER) safe_string(${HEADER} HEADER_CONST) check_header(${HEADER}) if(NOT HAVE_${HEADER_CONST}) set(FOUND 0) else() find_path(${HEADER_CONST}_ROOT ${HEADER}) if(NOT ${HEADER_CONST}_ROOT) set(FOUND 0) endif() endif() endif() set(${NAME} ${FOUND} PARENT_SCOPE) set(${NAME}_LIBRARIES ${LIB${LIB}} PARENT_SCOPE) set(${NAME}_INCLUDEDIR ${${HEADER_CONST}_ROOT} PARENT_SCOPE) endif() endfunction()