openbsd-ports/devel/cmake/patches/patch-Modules_FindPackageHandleStandardArgs_cmake
dcoppa 3f852fbc8f Bugfix update to cmake-2.8.10.2.
Sync patches with what has been committed upstream (kudos to Amit)
2012-12-05 11:32:04 +00:00

36 lines
1.4 KiB
Plaintext

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