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.
This commit is contained in:
Brad King 2008-09-16 10:30:32 -04:00
parent ccc7ca9871
commit 79a3807340
1 changed files with 12 additions and 9 deletions

View File

@ -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 )
# 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]+")
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_SUFFIX}
PATH_SUFFIXES ${_boost_PATH_SUFFIXES}
)
ENDIF( NOT Boost_INCLUDE_DIR )
ENDFOREACH(_boost_VER)
IF(Boost_INCLUDE_DIR)
# Extract Boost_VERSION and Boost_LIB_VERSION from version.hpp