include(SafeString)
include(CheckHeader)
-
function(check_dependency NAME LIB HEADER)
if(PKG_CONFIG_FOUND)
- pkg_check_modules(${NAME} lib${LIB}${ARGN})
+ pkg_check_modules(${NAME} lib${LIB}${ARGN} IMPORTED_TARGET)
if(NOT ${NAME}_FOUND)
- pkg_check_modules(${NAME} ${LIB}${ARGN})
+ pkg_check_modules(${NAME} ${LIB}${ARGN} IMPORTED_TARGET)
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()
+ if(${NAME}_FOUND)
+ set(${NAME} PkgConfig::${NAME} PARENT_SCOPE)
+ endif()
+ endif()
+ if(NOT ${NAME}_FOUND)
set(FOUND 1)
+ message(STATUS "Checking for library '${LIB}' with header '${HEADER}' ...")
find_library(LIB${LIB} NAMES ${LIB})
if(NOT LIB${LIB})
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)
+ if(FOUND)
+ message(STATUS " Found library '${LIB${LIB}}'")
+ message(STATUS " Found include '${${HEADER_CONST}_ROOT}'")
+ set(${NAME} Imported::${NAME} PARENT_SCOPE)
+ add_library(Imported::${NAME} INTERFACE IMPORTED)
+ set_target_properties(Imported::${NAME} PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES ${${HEADER_CONST}_ROOT}
+ INTERFACE_LINK_LIBRARIES ${LIB${LIB}})
+ else()
+ message("-- No library '${LIB}' found")
+ endif()
+ set(${NAME}_FOUND ${FOUND})
+ endif()
+
+ set(HAVE_${NAME} ${${NAME}_FOUND} PARENT_SCOPE)
+ if(${NAME}_FOUND)
+ safe_string(${HEADER} HEADER_CONST)
+ find_path(HAVE_${HEADER_CONST} ${HEADER} PATHS ${${NAME}_INCLUDEDIR})
endif()
endfunction()