--- /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake 2008-09-24 20:34:34.000000000 +0200 +++ CMake/FindPackageHandleStandardArgs.cmake 2009-05-15 12:26:40.000000000 +0200 @@ -20,6 +20,11 @@ INCLUDE(FindPackageMessage) FUNCTION(FIND_PACKAGE_HANDLE_STANDARD_ARGS _NAME _FAIL_MSG _VAR1 ) + SET(ARGS) + FOREACH(_ARG ${_VAR1} ${ARGN}) + LIST(APPEND ARGS ${${_ARG}}) + ENDFOREACH(_ARG) + IF("${_FAIL_MSG}" STREQUAL "DEFAULT_MSG") SET(_FAIL_MESSAGE "Could NOT find ${_NAME}") ELSE("${_FAIL_MSG}" STREQUAL "DEFAULT_MSG") @@ -28,30 +33,23 @@ STRING(TOUPPER ${_NAME} _NAME_UPPER) - # collect all variables which were not found, so they can be printed, so the + # Check if all passed variables are valid. + # Collect all variables which were not found, so they can be printed, so the # user knows better what went wrong (#6375) SET(MISSING_VARS "") SET(DETAILS "") SET(${_NAME_UPPER}_FOUND TRUE) - IF(NOT ${_VAR1}) - SET(${_NAME_UPPER}_FOUND FALSE) - SET(MISSING_VARS " ${_VAR1}") - ELSE(NOT ${_VAR1}) - SET(DETAILS "${DETAILS}[${${_VAR1}}]") - ENDIF(NOT ${_VAR1}) - - # check if all passed variables are valid - FOREACH(_CURRENT_VAR ${ARGN}) - IF(NOT ${_CURRENT_VAR}) + FOREACH(_CURRENT_VAR ${ARGS}) + IF(NOT _CURRENT_VAR) SET(${_NAME_UPPER}_FOUND FALSE) SET(MISSING_VARS "${MISSING_VARS} ${_CURRENT_VAR}") - ELSE(NOT ${_CURRENT_VAR}) - SET(DETAILS "${DETAILS}[${${_CURRENT_VAR}}]") - ENDIF(NOT ${_CURRENT_VAR}) + ELSE(NOT _CURRENT_VAR) + SET(DETAILS "${DETAILS}[${_CURRENT_VAR}]") + ENDIF(NOT _CURRENT_VAR) ENDFOREACH(_CURRENT_VAR) IF (${_NAME_UPPER}_FOUND) - FIND_PACKAGE_MESSAGE(${_NAME} "Found ${_NAME}: ${${_VAR1}}" "${DETAILS}") + FIND_PACKAGE_MESSAGE(${_NAME} "Found ${_NAME}: ${ARGS}" "${DETAILS}") ELSE (${_NAME_UPPER}_FOUND) IF (${_NAME}_FIND_REQUIRED) MESSAGE(FATAL_ERROR "${_FAIL_MESSAGE} (missing: ${MISSING_VARS})")