mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-31 19:00:54 -06:00
FindPython: enhance robustness of version extraction from library name
Fixes: #21105
This commit is contained in:
@@ -558,18 +558,19 @@ function (_PYTHON_GET_VERSION)
|
||||
if (_PGV_LIBRARY)
|
||||
# retrieve version and abi from library name
|
||||
if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
|
||||
get_filename_component (library_name "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}" NAME)
|
||||
# extract version from library name
|
||||
if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "python([23])([0-9]+)")
|
||||
if (library_name MATCHES "python([23])([0-9]+)")
|
||||
set (${_PGV_PREFIX}VERSION_MAJOR "${CMAKE_MATCH_1}" PARENT_SCOPE)
|
||||
set (${_PGV_PREFIX}VERSION_MINOR "${CMAKE_MATCH_2}" PARENT_SCOPE)
|
||||
set (${_PGV_PREFIX}VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}" PARENT_SCOPE)
|
||||
set (${_PGV_PREFIX}ABI "" PARENT_SCOPE)
|
||||
elseif (_${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "python([23])\\.([0-9]+)([dmu]*)")
|
||||
elseif (library_name MATCHES "python([23])\\.([0-9]+)([dmu]*)")
|
||||
set (${_PGV_PREFIX}VERSION_MAJOR "${CMAKE_MATCH_1}" PARENT_SCOPE)
|
||||
set (${_PGV_PREFIX}VERSION_MINOR "${CMAKE_MATCH_2}" PARENT_SCOPE)
|
||||
set (${_PGV_PREFIX}VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}" PARENT_SCOPE)
|
||||
set (${_PGV_PREFIX}ABI "${CMAKE_MATCH_3}" PARENT_SCOPE)
|
||||
elseif (_${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "pypy(3)?")
|
||||
elseif (library_name MATCHES "pypy(3)?-c")
|
||||
set (version "${CMAKE_MATCH_1}")
|
||||
if (version EQUAL "3")
|
||||
set (${_PGV_PREFIX}VERSION_MAJOR "3" PARENT_SCOPE)
|
||||
|
||||
Reference in New Issue
Block a user