@@ -22,26 +22,36 @@ execute_process(
22
22
string (STRIP ${PYTHON_LIB_PATH} PYTHON_LIB_PATH )
23
23
24
24
execute_process (
25
- COMMAND ${PYTHON_BIN} -c "import sys; print(sys.prefix)"
26
- OUTPUT_VARIABLE PYTHON_PREFIX_PATH
27
- )
25
+ COMMAND ${PYTHON_BIN} -c "import sys; print(sys.prefix)"
26
+ OUTPUT_VARIABLE PYTHON_PREFIX_PATH
27
+ )
28
28
29
29
string (STRIP ${PYTHON_PREFIX_PATH} PYTHON_PREFIX_PATH )
30
30
31
31
execute_process (
32
- COMMAND ${PYTHON_BIN} -c "import sys; print('%s.%s' % sys.version_info[:2])"
32
+ COMMAND ${PYTHON_BIN} -c "import sys; print('%s.%s' % sys.version_info[:2])"
33
33
OUTPUT_VARIABLE PYTHON_VERSION
34
- )
34
+ )
35
35
string (STRIP ${PYTHON_VERSION} PYTHON_VERSION )
36
36
message (STATUS "Python version: ${PYTHON_VERSION} " )
37
37
38
38
string (REPLACE "." "" PYTHON_VERSION_WITHOUT_DOTS ${PYTHON_VERSION} )
39
39
40
+ execute_process (
41
+ COMMAND ${PYTHON_BIN} -c "import sysconfig;print(bool(sysconfig.get_config_var('Py_GIL_DISABLED')))"
42
+ OUTPUT_VARIABLE PY_GIL_DISABLED
43
+ )
44
+ string (STRIP ${PY_GIL_DISABLED} PY_GIL_DISABLED )
45
+
46
+ if ("${PY_GIL_DISABLED} " STREQUAL "True" )
47
+ set (PY_THREAD "t" )
48
+ endif ()
49
+
40
50
if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows" )
41
51
FIND_LIBRARY (PYTHON_LIBRARY NAMES
42
- python${PYTHON_VERSION}
52
+ python${PYTHON_VERSION}${PY_THREAD}
43
53
python${PYTHON_VERSION}m
44
- python${PYTHON_VERSION_WITHOUT_DOTS}
54
+ python${PYTHON_VERSION_WITHOUT_DOTS}${PY_THREAD}
45
55
PATHS ${PYTHON_LIB_PATH} ${PYTHON_PREFIX_PATH} /lib ${PYTHON_PREFIX_PATH} /libs
46
56
PATH_SUFFIXES ${CMAKE_LIBRARY_ARCHITECTURE}
47
57
NO_DEFAULT_PATH
@@ -51,8 +61,8 @@ endif()
51
61
52
62
execute_process (
53
63
COMMAND ${PYTHON_BIN} -c "from sysconfig import get_paths; print(get_paths()['purelib'])"
54
- OUTPUT_VARIABLE PYTHON_INSTALL_PATH_tmp
55
- )
64
+ OUTPUT_VARIABLE PYTHON_INSTALL_PATH_tmp
65
+ )
56
66
string (STRIP ${PYTHON_INSTALL_PATH_tmp} PYTHON_INSTALL_PATH_tmp )
57
67
set (PYTHON_INSTALL_PATH ${PYTHON_INSTALL_PATH_tmp}
58
68
CACHE BOOL "Python install path" )
@@ -129,5 +139,9 @@ macro(ADD_PYTHON_LIBRARY name)
129
139
IF (${CMAKE_SYSTEM_NAME} STREQUAL "Windows" )
130
140
target_link_libraries (${name} ${PYTHON_LIBRARY} )
131
141
set_target_properties (${name} PROPERTIES SUFFIX ".pyd" )
142
+ IF ("${PY_GIL_DISABLED} " STREQUAL "True" )
143
+ target_compile_definitions (${name} PRIVATE Py_GIL_DISABLED=1 )
144
+ ENDIF ()
132
145
ENDIF ()
146
+
133
147
endmacro (ADD_PYTHON_LIBRARY )
0 commit comments