$OpenBSD: patch-Modules_FindPackageHandleStandardArgs_cmake,v 1.1 2012/12/05 11:32:04 dcoppa Exp $

FPHSA: don't succeed if only checking for XX_FOUND.

FPHSA(XX DEFAULT_MSG XX_FOUND) always succeeded due to the way how
the XX_FOUND variable was set.
It was preset to TRUE, and then reset to FALSE if something was
missing (which had the effect that XX_FOUND itself was already
preset when FPHSA checked whether XX_FOUND is set).
Now XX_FOUND is unset first, and only later on set to TRUE.

From upstream git commit 4809cadfe82316b648de50471169b4da9ef101e2

--- Modules/FindPackageHandleStandardArgs.cmake.orig	Wed Dec  5 10:24:42 2012
+++ Modules/FindPackageHandleStandardArgs.cmake	Wed Dec  5 10:29:50 2012
@@ -187,8 +187,8 @@ function(FIND_PACKAGE_HANDLE_STANDARD_ARGS _NAME _FIRS
   # user knows better what went wrong (#6375)
   set(MISSING_VARS "")
   set(DETAILS "")
-  set(${_NAME_UPPER}_FOUND TRUE)
   # check if all passed variables are valid
+  unset(${_NAME_UPPER}_FOUND)
   foreach(_CURRENT_VAR ${FPHSA_REQUIRED_VARS})
     if(NOT ${_CURRENT_VAR})
       set(${_NAME_UPPER}_FOUND FALSE)
@@ -197,6 +197,9 @@ function(FIND_PACKAGE_HANDLE_STANDARD_ARGS _NAME _FIRS
       set(DETAILS "${DETAILS}[${${_CURRENT_VAR}}]")
     endif()
   endforeach()
+  if(NOT "${${_NAME_UPPER}_FOUND}" STREQUAL "FALSE")
+    set(${_NAME_UPPER}_FOUND TRUE)
+  endif()
 
   # component handling
   unset(FOUND_COMPONENTS_MSG)
