From 763d1e3ab409f9f4142d7ee933c84ef116377e1d Mon Sep 17 00:00:00 2001 From: king Date: Tue, 16 Sep 2008 14:30:32 +0000 Subject: [PATCH] BUG: Fix FindBoost versioned find To locate the boost include directory, all search paths and versioned path suffixes should be passed to one call of FIND_PATH. Previously the test for one version would find an unversioned system boost even when the user set BOOST_ROOT (since the NO_DEFAULT_PATH option is not used). See issue #7456. --- Modules/FindBoost.cmake | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake index 448707cdd..c0f09b28a 100644 --- a/Modules/FindBoost.cmake +++ b/Modules/FindBoost.cmake @@ -286,8 +286,10 @@ ELSE (_boost_IN_CACHE) # Try to find Boost by stepping backwards through the Boost versions # we know about. - FOREACH(_boost_VER ${_boost_TEST_VERSIONS}) - IF( NOT Boost_INCLUDE_DIR ) + IF( NOT Boost_INCLUDE_DIR ) + # Build a list of path suffixes for each version. + SET(_boost_PATH_SUFFIXES) + FOREACH(_boost_VER ${_boost_TEST_VERSIONS}) # Add in a path suffix, based on the required version, ideally # we could read this from version.hpp, but for that to work we'd # need to know the include dir already @@ -304,15 +306,16 @@ ELSE (_boost_IN_CACHE) STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\1_\\2" _boost_PATH_SUFFIX ${_boost_PATH_SUFFIX}) ENDIF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+") - - FIND_PATH(Boost_INCLUDE_DIR - NAMES boost/config.hpp - HINTS ${_boost_INCLUDE_SEARCH_DIRS} - PATH_SUFFIXES ${_boost_PATH_SUFFIX} + LIST(APPEND _boost_PATH_SUFFIXES "${_boost_PATH_SUFFIX}") + ENDFOREACH(_boost_VER) + + # Look for a standard boost header file. + FIND_PATH(Boost_INCLUDE_DIR + NAMES boost/config.hpp + HINTS ${_boost_INCLUDE_SEARCH_DIRS} + PATH_SUFFIXES ${_boost_PATH_SUFFIXES} ) - - ENDIF( NOT Boost_INCLUDE_DIR ) - ENDFOREACH(_boost_VER) + ENDIF( NOT Boost_INCLUDE_DIR ) IF(Boost_INCLUDE_DIR) # Extract Boost_VERSION and Boost_LIB_VERSION from version.hpp -- 2.11.4.GIT