@@ -22,26 +22,36 @@ execute_process(
2222string (STRIP ${PYTHON_LIB_PATH} PYTHON_LIB_PATH)
2323
2424execute_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+ )
2828
2929string (STRIP ${PYTHON_PREFIX_PATH} PYTHON_PREFIX_PATH)
3030
3131execute_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])"
3333 OUTPUT_VARIABLE PYTHON_VERSION
34- )
34+ )
3535string (STRIP ${PYTHON_VERSION} PYTHON_VERSION)
3636message (STATUS "Python version: ${PYTHON_VERSION} " )
3737
3838string (REPLACE "." "" PYTHON_VERSION_WITHOUT_DOTS ${PYTHON_VERSION} )
3939
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+
4050if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows" )
4151 FIND_LIBRARY (PYTHON_LIBRARY NAMES
42- python${PYTHON_VERSION}
52+ python${PYTHON_VERSION}${PY_THREAD}
4353 python${PYTHON_VERSION} m
44- python${PYTHON_VERSION_WITHOUT_DOTS}
54+ python${PYTHON_VERSION_WITHOUT_DOTS}${PY_THREAD}
4555 PATHS ${PYTHON_LIB_PATH} ${PYTHON_PREFIX_PATH} /lib ${PYTHON_PREFIX_PATH} /libs
4656 PATH_SUFFIXES ${CMAKE_LIBRARY_ARCHITECTURE}
4757 NO_DEFAULT_PATH
@@ -51,8 +61,8 @@ endif()
5161
5262execute_process (
5363 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+ )
5666string (STRIP ${PYTHON_INSTALL_PATH_tmp} PYTHON_INSTALL_PATH_tmp)
5767set (PYTHON_INSTALL_PATH ${PYTHON_INSTALL_PATH_tmp}
5868 CACHE BOOL "Python install path" )
@@ -129,5 +139,9 @@ macro(ADD_PYTHON_LIBRARY name)
129139 IF (${CMAKE_SYSTEM_NAME} STREQUAL "Windows" )
130140 target_link_libraries (${name} ${PYTHON_LIBRARY} )
131141 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 ()
132145 ENDIF ()
146+
133147endmacro (ADD_PYTHON_LIBRARY)
0 commit comments