$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)