@@ -80,30 +80,38 @@ if(NOT DEFINED ${_Python}_EXECUTABLE)
80
80
81
81
endif ()
82
82
83
- # Debug check - see https://stackoverflow.com/questions/646518/python-how-to-detect-debug-Interpreter
84
- execute_process (
85
- COMMAND "${${_Python} _EXECUTABLE}" "-c" "import sys; sys.exit(hasattr(sys, 'gettotalrefcount'))"
86
- RESULT_VARIABLE PYTHON_IS_DEBUG)
83
+ if (NOT DEFINED PYTHON_IS_DEBUG)
84
+ # Debug check - see https://stackoverflow.com/questions/646518/python-how-to-detect-debug-Interpreter
85
+ execute_process (
86
+ COMMAND "${${_Python} _EXECUTABLE}" "-c"
87
+ "import sys; sys.exit(hasattr(sys, 'gettotalrefcount'))"
88
+ RESULT_VARIABLE _PYTHON_IS_DEBUG)
89
+ set (PYTHON_IS_DEBUG
90
+ "${_PYTHON_IS_DEBUG} "
91
+ CACHE INTERNAL "Python debug status" )
92
+ endif ()
87
93
88
94
# Get the suffix - SO is deprecated, should use EXT_SUFFIX, but this is
89
95
# required for PyPy3 (as of 7.3.1)
90
- execute_process (
91
- COMMAND "${${_Python} _EXECUTABLE}" "-c"
92
- "from distutils import sysconfig; print(sysconfig.get_config_var('SO'))"
93
- OUTPUT_VARIABLE _PYTHON_MODULE_EXTENSION
94
- ERROR_VARIABLE _PYTHON_MODULE_EXTENSION_ERR
95
- OUTPUT_STRIP_TRAILING_WHITESPACE)
96
-
97
- if (_PYTHON_MODULE_EXTENSION STREQUAL "" )
98
- message (
99
- FATAL_ERROR "pybind11 could not query the module file extension, likely the 'distutils'"
100
- "package is not installed. Full error message:\n ${_PYTHON_MODULE_EXTENSION_ERR} " )
101
- endif ()
96
+ if (NOT DEFINED PYTHON_MODULE_EXTENSION)
97
+ execute_process (
98
+ COMMAND "${${_Python} _EXECUTABLE}" "-c"
99
+ "from distutils import sysconfig; print(sysconfig.get_config_var('SO'))"
100
+ OUTPUT_VARIABLE _PYTHON_MODULE_EXTENSION
101
+ ERROR_VARIABLE _PYTHON_MODULE_EXTENSION_ERR
102
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
103
+
104
+ if (_PYTHON_MODULE_EXTENSION STREQUAL "" )
105
+ message (
106
+ FATAL_ERROR "pybind11 could not query the module file extension, likely the 'distutils'"
107
+ "package is not installed. Full error message:\n ${_PYTHON_MODULE_EXTENSION_ERR} " )
108
+ endif ()
102
109
103
- # This needs to be available for the pybind11_extension function
104
- set (PYTHON_MODULE_EXTENSION
105
- "${_PYTHON_MODULE_EXTENSION} "
106
- CACHE INTERNAL "" )
110
+ # This needs to be available for the pybind11_extension function
111
+ set (PYTHON_MODULE_EXTENSION
112
+ "${_PYTHON_MODULE_EXTENSION} "
113
+ CACHE INTERNAL "" )
114
+ endif ()
107
115
108
116
# Python debug libraries expose slightly different objects before 3.8
109
117
# https://docs.python.org/3.6/c-api/intro.html#debugging-builds
0 commit comments