summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2022-06-28 13:22:48 +0000
committerKitware Robot <kwrobot@kitware.com>2022-06-28 09:22:55 -0400
commit3fcdc98b7dfd028e4e90db26b289a0ee7ccb1202 (patch)
tree236b576636f06f4aa281c2ac3d4c2cd9cf3fa7e3
parent6f55f5847d7579d37deb7261b2fa0f256ea645b5 (diff)
parentece3bedbf2cdc4857f19e2fceafa98a3f8002b4a (diff)
downloadcmake-3fcdc98b7dfd028e4e90db26b289a0ee7ccb1202.tar.gz
Merge topic 'FindPython-multiple-queries'
ece3bedbf2 FindPython: fix error on multiple queries with different COMPONENTS Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7410
-rw-r--r--Modules/FindPython/Support.cmake6
-rw-r--r--Tests/FindPython/CMakeLists.txt13
-rw-r--r--Tests/FindPython/DifferentComponents/CMakeLists.txt7
-rw-r--r--Tests/FindPython/DifferentComponents/subdir/CMakeLists.txt2
4 files changed, 26 insertions, 2 deletions
diff --git a/Modules/FindPython/Support.cmake b/Modules/FindPython/Support.cmake
index a8accae28a..53519ba65f 100644
--- a/Modules/FindPython/Support.cmake
+++ b/Modules/FindPython/Support.cmake
@@ -2895,7 +2895,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}")
@@ -2979,7 +2980,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
diff --git a/Tests/FindPython/CMakeLists.txt b/Tests/FindPython/CMakeLists.txt
index 520ba9e166..d4cf36b33d 100644
--- a/Tests/FindPython/CMakeLists.txt
+++ b/Tests/FindPython/CMakeLists.txt
@@ -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>
diff --git a/Tests/FindPython/DifferentComponents/CMakeLists.txt b/Tests/FindPython/DifferentComponents/CMakeLists.txt
new file mode 100644
index 0000000000..7476632a4e
--- /dev/null
+++ b/Tests/FindPython/DifferentComponents/CMakeLists.txt
@@ -0,0 +1,7 @@
+cmake_minimum_required(VERSION 3.1)
+
+project(TestDifferentComponents LANGUAGES C)
+
+add_subdirectory(subdir)
+
+find_package(Python3 REQUIRED COMPONENTS Development.Module)
diff --git a/Tests/FindPython/DifferentComponents/subdir/CMakeLists.txt b/Tests/FindPython/DifferentComponents/subdir/CMakeLists.txt
new file mode 100644
index 0000000000..98fcd5f51c
--- /dev/null
+++ b/Tests/FindPython/DifferentComponents/subdir/CMakeLists.txt
@@ -0,0 +1,2 @@
+
+find_package(Python3 REQUIRED COMPONENTS Development)