Browse Source

Merge topic 'python_debug_postifx_no_interpreter'

6a35c277d0 FindPython: Support getting DEBUG_POSTFIX without requiring Interpreter
43fec72adb Tests: Fix RunCMake.UseSWIG SetPOSTFIX case on Windows

Acked-by: Kitware Robot <[email protected]>
Merge-request: !11345
Brad King 4 months ago
parent
commit
932ba12b41
2 changed files with 11 additions and 6 deletions
  1. 7 4
      Modules/FindPython/Support.cmake
  2. 4 2
      Tests/RunCMake/UseSWIG/SetPOSTFIX.cmake

+ 7 - 4
Modules/FindPython/Support.cmake

@@ -537,6 +537,13 @@ function (_PYTHON_GET_CONFIG_VAR _PYTHON_PGCV_VALUE NAME)
     return()
   endif()
 
+  if (NAME STREQUAL "POSTFIX")
+    if (WIN32 AND _${_PYTHON_PREFIX}_LIBRARY_DEBUG MATCHES "_d${CMAKE_IMPORT_LIBRARY_SUFFIX}$")
+      set (${_PYTHON_PGCV_VALUE} "_d" PARENT_SCOPE)
+    endif()
+    return()
+  endif()
+
   if (NAME STREQUAL "SOSABI")
     # assume some default
     if (CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME MATCHES "MSYS|CYGWIN")
@@ -667,10 +674,6 @@ function (_PYTHON_GET_CONFIG_VAR _PYTHON_PGCV_VALUE NAME)
       else()
         string (REGEX REPLACE "^\\.(.+)\\.[^.]+$" "\\1" _values "${_values}")
       endif()
-    elseif (NAME STREQUAL "POSTFIX")
-      if (WIN32 AND _${_PYTHON_PREFIX}_LIBRARY_DEBUG MATCHES "_d${CMAKE_IMPORT_LIBRARY_SUFFIX}$")
-        set (_values "_d")
-      endif()
     elseif (NAME STREQUAL "ABIFLAGS" AND WIN32)
       # config var ABIFLAGS does not exist for version < 3.14, check GIL specific variable
       execute_process (COMMAND ${_${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c

+ 4 - 2
Tests/RunCMake/UseSWIG/SetPOSTFIX.cmake

@@ -6,7 +6,8 @@ include(CTest)
 cmake_policy(SET CMP0078 NEW)
 cmake_policy(SET CMP0086 NEW)
 
-find_package(Python REQUIRED COMPONENTS Interpreter Development)
+# Development.Module should be enough to get DEBUG_POSTFIX.
+find_package(Python REQUIRED COMPONENTS Development.Module)
 
 find_package(SWIG)
 include(UseSWIG)
@@ -23,6 +24,7 @@ else()
   set (PS ":")
 endif()
 
+find_package(Python REQUIRED COMPONENTS Interpreter)
 add_test (NAME SetPOSTFIX
   COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}${PS}$<TARGET_FILE_DIR:example>"
-  "${Python_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/runme.py")
+  "${Python_INTERPRETER}" "${CMAKE_CURRENT_SOURCE_DIR}/runme.py")