FindBoost: Fix handling of \ in input paths (#14179)
In commit 5b9149e0
(FindBoost: Overhaul caching and search repeat
behavior, 2012-09-24) we refactored the internal library search to use a
_Boost_FIND_LIBRARY macro to wrap around find_library calls. However,
CMake macros re-process escape sequences when evaluating calls inside
the macro after substituting placeholders (a historical bug). In order
to avoid escape sequences, convert backslashes to forward slashes before
passing arguments to the _Boost_FIND_LIBRARY macro.
This commit is contained in:
parent
5dd8c01429
commit
363825cd55
|
@ -928,9 +928,13 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS})
|
||||||
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
|
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
|
||||||
"Searching for ${UPPERCOMPONENT}_LIBRARY_RELEASE: ${_boost_RELEASE_NAMES}")
|
"Searching for ${UPPERCOMPONENT}_LIBRARY_RELEASE: ${_boost_RELEASE_NAMES}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Avoid passing backslashes to _Boost_FIND_LIBRARY due to macro re-parsing.
|
||||||
|
string(REPLACE "\\" "/" _boost_LIBRARY_SEARCH_DIRS_tmp "${_boost_LIBRARY_SEARCH_DIRS}")
|
||||||
|
|
||||||
_Boost_FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE
|
_Boost_FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE
|
||||||
NAMES ${_boost_RELEASE_NAMES}
|
NAMES ${_boost_RELEASE_NAMES}
|
||||||
HINTS ${_boost_LIBRARY_SEARCH_DIRS}
|
HINTS ${_boost_LIBRARY_SEARCH_DIRS_tmp}
|
||||||
NAMES_PER_DIR
|
NAMES_PER_DIR
|
||||||
DOC "${_boost_docstring_release}"
|
DOC "${_boost_docstring_release}"
|
||||||
)
|
)
|
||||||
|
@ -960,9 +964,13 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS})
|
||||||
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
|
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
|
||||||
"Searching for ${UPPERCOMPONENT}_LIBRARY_DEBUG: ${_boost_DEBUG_NAMES}")
|
"Searching for ${UPPERCOMPONENT}_LIBRARY_DEBUG: ${_boost_DEBUG_NAMES}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Avoid passing backslashes to _Boost_FIND_LIBRARY due to macro re-parsing.
|
||||||
|
string(REPLACE "\\" "/" _boost_LIBRARY_SEARCH_DIRS_tmp "${_boost_LIBRARY_SEARCH_DIRS}")
|
||||||
|
|
||||||
_Boost_FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG
|
_Boost_FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG
|
||||||
NAMES ${_boost_DEBUG_NAMES}
|
NAMES ${_boost_DEBUG_NAMES}
|
||||||
HINTS ${_boost_LIBRARY_SEARCH_DIRS}
|
HINTS ${_boost_LIBRARY_SEARCH_DIRS_tmp}
|
||||||
NAMES_PER_DIR
|
NAMES_PER_DIR
|
||||||
DOC "${_boost_docstring_debug}"
|
DOC "${_boost_docstring_debug}"
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue