1IF(RPM)
2  MACRO(FIND_DEP V)
3    SET(out ${V}_DEP)
4    IF (NOT DEFINED ${out})
5      IF(EXISTS ${${V}} AND NOT IS_DIRECTORY ${${V}})
6        EXECUTE_PROCESS(COMMAND ${ARGN} RESULT_VARIABLE res OUTPUT_VARIABLE O OUTPUT_STRIP_TRAILING_WHITESPACE)
7      ELSE()
8        SET(res 1)
9      ENDIF()
10      IF (res)
11        SET(O)
12      ELSE()
13        MESSAGE(STATUS "Need ${O} for ${${V}}")
14      ENDIF()
15      SET(${out} ${O} CACHE INTERNAL "Package that contains ${${V}}" FORCE)
16    ENDIF()
17  ENDMACRO()
18
19  # FindBoost.cmake doesn't leave any trace, do it here
20  IF (Boost_INCLUDE_DIR)
21    FIND_FILE(Boost_config_hpp boost/config.hpp PATHS ${Boost_INCLUDE_DIR})
22  ENDIF()
23
24  GET_CMAKE_PROPERTY(ALL_VARS CACHE_VARIABLES)
25  FOREACH (V ${ALL_VARS})
26    GET_PROPERTY(H CACHE ${V} PROPERTY HELPSTRING)
27    IF (H MATCHES "^Have library [^/]" AND ${V})
28      STRING(REGEX REPLACE "^Have library " "" L ${H})
29      SET(V ${L}_LIBRARY)
30      FIND_LIBRARY(${V} ${L})
31    ENDIF()
32    GET_PROPERTY(T CACHE ${V} PROPERTY TYPE)
33    IF ((T STREQUAL FILEPATH OR V MATCHES "^CMAKE_COMMAND$") AND ${V} MATCHES "^/")
34      IF (RPM)
35        FIND_DEP(${V} rpm -q --qf "%{NAME}" -f ${${V}})
36      ELSE() # must be DEB
37        MESSAGE(FATAL_ERROR "Not implemented")
38      ENDIF ()
39      SET(BUILD_DEPS ${BUILD_DEPS} ${${V}_DEP})
40    ENDIF()
41  ENDFOREACH()
42  IF (BUILD_DEPS)
43    LIST(REMOVE_DUPLICATES BUILD_DEPS)
44    STRING(REPLACE ";" " " CPACK_RPM_BUILDREQUIRES "${BUILD_DEPS}")
45  ENDIF()
46ENDIF(RPM)
47