Merge branch 'FindBoost-optional-indirect-depends' into release

This commit is contained in:
Brad King 2016-03-15 10:00:26 -04:00
commit 44bbd2a65c
1 changed files with 12 additions and 2 deletions

View File

@ -745,9 +745,10 @@ endfunction()
# defined; FALSE if dependency information is unavailable). # defined; FALSE if dependency information is unavailable).
# #
# componentvar - the component list variable name # componentvar - the component list variable name
# extravar - the indirect dependency list variable name
# #
# #
function(_Boost_MISSING_DEPENDENCIES componentvar) function(_Boost_MISSING_DEPENDENCIES componentvar extravar)
# _boost_unprocessed_components - list of components requiring processing # _boost_unprocessed_components - list of components requiring processing
# _boost_processed_components - components already processed (or currently being processed) # _boost_processed_components - components already processed (or currently being processed)
# _boost_new_components - new components discovered for future processing # _boost_new_components - new components discovered for future processing
@ -773,7 +774,12 @@ function(_Boost_MISSING_DEPENDENCIES componentvar)
set(_boost_unprocessed_components ${_boost_new_components}) set(_boost_unprocessed_components ${_boost_new_components})
unset(_boost_new_components) unset(_boost_new_components)
endwhile() endwhile()
set(_boost_extra_components ${_boost_processed_components})
if(_boost_extra_components AND ${componentvar})
list(REMOVE_ITEM _boost_extra_components ${${componentvar}})
endif()
set(${componentvar} ${_boost_processed_components} PARENT_SCOPE) set(${componentvar} ${_boost_processed_components} PARENT_SCOPE)
set(${extravar} ${_boost_extra_components} PARENT_SCOPE)
endfunction() endfunction()
# #
@ -1306,7 +1312,7 @@ endif()
# Additional components may be required via component dependencies. # Additional components may be required via component dependencies.
# Add any missing components to the list. # Add any missing components to the list.
_Boost_MISSING_DEPENDENCIES(Boost_FIND_COMPONENTS) _Boost_MISSING_DEPENDENCIES(Boost_FIND_COMPONENTS _Boost_EXTRA_FIND_COMPONENTS)
# If thread is required, get the thread libs as a dependency # If thread is required, get the thread libs as a dependency
list(FIND Boost_FIND_COMPONENTS thread _Boost_THREAD_DEPENDENCY_LIBS) list(FIND Boost_FIND_COMPONENTS thread _Boost_THREAD_DEPENDENCY_LIBS)
@ -1484,6 +1490,10 @@ if(Boost_FOUND)
list(APPEND _Boost_MISSING_COMPONENTS ${COMPONENT}) list(APPEND _Boost_MISSING_COMPONENTS ${COMPONENT})
endif() endif()
endforeach() endforeach()
if(_Boost_MISSING_COMPONENTS AND _Boost_EXTRA_FIND_COMPONENTS)
# Optional indirect dependencies are not counted as missing.
list(REMOVE_ITEM _Boost_MISSING_COMPONENTS ${_Boost_EXTRA_FIND_COMPONENTS})
endif()
if(Boost_DEBUG) if(Boost_DEBUG)
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] Boost_FOUND = ${Boost_FOUND}") message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] Boost_FOUND = ${Boost_FOUND}")