FPHSA: don't succeed if only checking for XX_FOUND (#13755)
This fixes issue #13755. 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. Alex
This commit is contained in:
parent
d5ac791366
commit
4809cadfe8
@ -187,8 +187,8 @@ function(FIND_PACKAGE_HANDLE_STANDARD_ARGS _NAME _FIRST_ARG)
|
|||||||
# user knows better what went wrong (#6375)
|
# user knows better what went wrong (#6375)
|
||||||
set(MISSING_VARS "")
|
set(MISSING_VARS "")
|
||||||
set(DETAILS "")
|
set(DETAILS "")
|
||||||
set(${_NAME_UPPER}_FOUND TRUE)
|
|
||||||
# check if all passed variables are valid
|
# check if all passed variables are valid
|
||||||
|
unset(${_NAME_UPPER}_FOUND)
|
||||||
foreach(_CURRENT_VAR ${FPHSA_REQUIRED_VARS})
|
foreach(_CURRENT_VAR ${FPHSA_REQUIRED_VARS})
|
||||||
if(NOT ${_CURRENT_VAR})
|
if(NOT ${_CURRENT_VAR})
|
||||||
set(${_NAME_UPPER}_FOUND FALSE)
|
set(${_NAME_UPPER}_FOUND FALSE)
|
||||||
@ -197,6 +197,9 @@ function(FIND_PACKAGE_HANDLE_STANDARD_ARGS _NAME _FIRST_ARG)
|
|||||||
set(DETAILS "${DETAILS}[${${_CURRENT_VAR}}]")
|
set(DETAILS "${DETAILS}[${${_CURRENT_VAR}}]")
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
if(NOT "${${_NAME_UPPER}_FOUND}" STREQUAL "FALSE")
|
||||||
|
set(${_NAME_UPPER}_FOUND TRUE)
|
||||||
|
endif()
|
||||||
|
|
||||||
# component handling
|
# component handling
|
||||||
unset(FOUND_COMPONENTS_MSG)
|
unset(FOUND_COMPONENTS_MSG)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user