mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-16 22:37:30 +08:00
FindPython: fix error on multiple queries with different COMPONENTS
Ensure that multiple queries with different COMPONENTS specified in different sub-directories are fully supported.
This commit is contained in:
@@ -2861,7 +2861,8 @@ if (("Development.Module" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
|
||||
endif()
|
||||
unset (_${_PYTHON_PREFIX}_INCLUDE_HINTS)
|
||||
|
||||
if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
|
||||
if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS
|
||||
AND _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
|
||||
# Use the library's install prefix as a hint
|
||||
if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "^(.+/Frameworks/Python.framework/Versions/[0-9.]+)")
|
||||
list (APPEND _${_PYTHON_PREFIX}_INCLUDE_HINTS "${CMAKE_MATCH_1}")
|
||||
@@ -2945,7 +2946,8 @@ if (("Development.Module" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
|
||||
if (_${_PYTHON_PREFIX}_INCLUDE_DIR)
|
||||
# retrieve version from header file
|
||||
_python_get_version (INCLUDE PREFIX _${_PYTHON_PREFIX}_INC_)
|
||||
if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
|
||||
if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS
|
||||
AND _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
|
||||
if ("${_${_PYTHON_PREFIX}_INC_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_INC_VERSION_MINOR}"
|
||||
VERSION_EQUAL _${_PYTHON_PREFIX}_VERSION)
|
||||
# update versioning
|
||||
|
@@ -423,6 +423,19 @@ if(CMake_TEST_FindPython)
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
||||
)
|
||||
|
||||
add_test(NAME FindPython.DifferentComponents COMMAND
|
||||
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/FindPython/DifferentComponents"
|
||||
"${CMake_BINARY_DIR}/Tests/FindPython/DifferentComponents"
|
||||
${build_generator_args}
|
||||
--build-project DifferentComponents
|
||||
--build-options ${build_options} "-Dbuild_generator_args=${build_generator_args}"
|
||||
"-DCMake_SOURCE_DIR=${CMake_SOURCE_DIR}"
|
||||
"-DCMake_BINARY_DIR=${CMake_BINARY_DIR}"
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
||||
)
|
||||
|
||||
if (CMAKE_SYSTEM_NAME MATCHES "Linux|Darwin")
|
||||
add_test(NAME FindPython.Interpreter.SOABI COMMAND
|
||||
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
|
||||
|
7
Tests/FindPython/DifferentComponents/CMakeLists.txt
Normal file
7
Tests/FindPython/DifferentComponents/CMakeLists.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
cmake_minimum_required(VERSION 3.1)
|
||||
|
||||
project(TestDifferentComponents LANGUAGES C)
|
||||
|
||||
add_subdirectory(subdir)
|
||||
|
||||
find_package(Python3 REQUIRED COMPONENTS Development.Module)
|
@@ -0,0 +1,2 @@
|
||||
|
||||
find_package(Python3 REQUIRED COMPONENTS Development)
|
Reference in New Issue
Block a user