FindBoost: Avoid leaking internal Boost_ROOT setting

Since commit 4b2a61946f (FindBoost: Honor BOOST_ROOT when finding
upstream BoostConfig, 2020-10-22, v3.19.0-rc2~14^2) we accidentally leak
our internal setting of `Boost_ROOT`.  Revise the logic to unset our
temporary value.

Fixes: #21379
This commit is contained in:
Brad King
2020-10-30 09:29:31 -04:00
parent f506cc6bb2
commit 685fa8bec0

View File

@@ -450,13 +450,19 @@ if (NOT Boost_NO_BOOST_CMAKE)
# Do the same find_package call but look specifically for the CMake version.
# Note that args are passed in the Boost_FIND_xxxxx variables, so there is no
# need to delegate them to this find_package call.
cmake_policy(PUSH)
if(BOOST_ROOT AND NOT Boost_ROOT)
# Honor BOOST_ROOT by setting Boost_ROOT with CMP0074 NEW behavior.
cmake_policy(PUSH)
cmake_policy(SET CMP0074 NEW)
set(Boost_ROOT "${BOOST_ROOT}")
set(_Boost_ROOT_FOR_CONFIG 1)
endif()
find_package(Boost QUIET NO_MODULE ${_boost_FIND_PACKAGE_ARGS})
cmake_policy(POP)
if(_Boost_ROOT_FOR_CONFIG)
unset(_Boost_ROOT_FOR_CONFIG)
unset(Boost_ROOT)
cmake_policy(POP)
endif()
if (DEFINED Boost_DIR)
mark_as_advanced(Boost_DIR)
endif ()