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
diff --git a/Modules/FindPython/Support.cmake b/Modules/FindPython/Support.cmake
index a8accae..53519ba 100644
--- a/Modules/FindPython/Support.cmake
+++ b/Modules/FindPython/Support.cmake
@@ -2895,7 +2895,8 @@
         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 (_${_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 520ba9e..d4cf36b 100644
--- a/Tests/FindPython/CMakeLists.txt
+++ b/Tests/FindPython/CMakeLists.txt
@@ -423,6 +423,19 @@
     --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 0000000..7476632
--- /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 0000000..98fcd5f
--- /dev/null
+++ b/Tests/FindPython/DifferentComponents/subdir/CMakeLists.txt
@@ -0,0 +1,2 @@
+
+find_package(Python3 REQUIRED COMPONENTS Development)