FindPythonLibs: Tolerate call with PYTHON_LIBRARY already a list

`PYTHON_LIBRARY` may contain a list because of `SelectLibraryConfigurations`.
If it is the case, the list can be:

    optimized;<FILEPATH_TO_RELEASE_LIBRARY>;debug;<FILEPATH_TO_DEBUG_LIBRARY>

Instead of directly using the value of `PYTHON_LIBRARY` in the CMake
function `get_filename_component()`, we loop over the content of the
relevant parts of `PYTHON_LIBRARY` and `PYTHON_DEBUG_LIBRARY` whether
they are lists or not.

Suggested-by: Brad King <brad.king@kitware.com>
This commit is contained in:
Francois Budin 2016-12-13 22:29:46 -05:00 committed by Brad King
parent 61001557d4
commit a12d8a03af

View File

@ -168,12 +168,19 @@ foreach(_CURRENT_VERSION ${_Python_VERSIONS})
# Use the library's install prefix as a hint
set(_Python_INCLUDE_PATH_HINT)
get_filename_component(_Python_PREFIX ${PYTHON_LIBRARY} PATH)
get_filename_component(_Python_PREFIX ${_Python_PREFIX} PATH)
if(_Python_PREFIX)
set(_Python_INCLUDE_PATH_HINT ${_Python_PREFIX}/include)
endif()
unset(_Python_PREFIX)
# PYTHON_LIBRARY may contain a list because of SelectLibraryConfigurations
# which may have been run previously. If it is the case, the list can be:
# optimized;<FILEPATH_TO_RELEASE_LIBRARY>;debug;<FILEPATH_TO_DEBUG_LIBRARY>
foreach(lib ${PYTHON_LIBRARY} ${PYTHON_DEBUG_LIBRARY})
if(IS_ABSOLUTE "${lib}")
get_filename_component(_Python_PREFIX "${lib}" PATH)
get_filename_component(_Python_PREFIX "${_Python_PREFIX}" PATH)
if(_Python_PREFIX)
list(APPEND _Python_INCLUDE_PATH_HINT ${_Python_PREFIX}/include)
endif()
unset(_Python_PREFIX)
endif()
endforeach()
# Add framework directories to the search paths
set(PYTHON_FRAMEWORK_INCLUDES)