Ver Fonte

Merge topic 'FindPython-multiple-queries'

ece3bedbf2 FindPython: fix error on multiple queries with different COMPONENTS

Acked-by: Kitware Robot <[email protected]>
Merge-request: !7410
Brad King há 3 anos atrás
pai
commit
3fcdc98b7d

+ 4 - 2
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

+ 13 - 0
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>

+ 7 - 0
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)

+ 2 - 0
Tests/FindPython/DifferentComponents/subdir/CMakeLists.txt

@@ -0,0 +1,2 @@
+
+find_package(Python3 REQUIRED COMPONENTS Development)