INCLUDE(FindPkgConfig) # This function will find and set up a pkg-config based module. # If a pc-file was found, it will resolve library paths to # absolute paths. Furthermore, the function will automatically # fall back to use static libraries in case no dynamic libraries # were found. FUNCTION(FIND_PKGLIBRARIES prefix package) PKG_CHECK_MODULES(${prefix} ${package}) IF(NOT ${prefix}_FOUND) RETURN() ENDIF() FOREACH(LIBRARY ${${prefix}_LIBRARIES}) FIND_LIBRARY(${LIBRARY}_RESOLVED ${LIBRARY} PATHS ${${prefix}_LIBRARY_DIRS}) IF(${${LIBRARY}_RESOLVED} STREQUAL "${LIBRARY}_RESOLVED-NOTFOUND") MESSAGE(FATAL_ERROR "could not resolve ${LIBRARY}") ENDIF() LIST(APPEND RESOLVED_LIBRARIES ${${LIBRARY}_RESOLVED}) ENDFOREACH(LIBRARY) SET(${prefix}_FOUND 1 PARENT_SCOPE) SET(${prefix}_LIBRARIES ${RESOLVED_LIBRARIES} PARENT_SCOPE) SET(${prefix}_INCLUDE_DIRS ${${prefix}_INCLUDE_DIRS} PARENT_SCOPE) SET(${prefix}_LDFLAGS ${${prefix}_LDFLAGS} PARENT_SCOPE) MESSAGE(STATUS " Resolved libraries: ${RESOLVED_LIBRARIES}") ENDFUNCTION()