|
|
@@ -321,7 +321,7 @@ function (_PYTHON_GET_CONFIG_VAR _PYTHON_PGCV_VALUE NAME)
|
|
|
|
|
|
if (_${_PYTHON_PREFIX}_EXECUTABLE AND NOT CMAKE_CROSSCOMPILING)
|
|
|
if (NAME STREQUAL "PREFIX")
|
|
|
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig; sys.stdout.write(';'.join([sysconfig.PREFIX,sysconfig.EXEC_PREFIX,sysconfig.BASE_EXEC_PREFIX]))"
|
|
|
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys\ntry:\n from distutils import sysconfig\n sys.stdout.write(';'.join([sysconfig.PREFIX,sysconfig.EXEC_PREFIX,sysconfig.BASE_EXEC_PREFIX]))\nexcept Exception:\n import sysconfig\n sys.stdout.write(';'.join([sysconfig.get_config_var('base') or '', sysconfig.get_config_var('installed_base') or '']))"
|
|
|
RESULT_VARIABLE _result
|
|
|
OUTPUT_VARIABLE _values
|
|
|
ERROR_QUIET
|
|
|
@@ -332,16 +332,23 @@ function (_PYTHON_GET_CONFIG_VAR _PYTHON_PGCV_VALUE NAME)
|
|
|
list (REMOVE_DUPLICATES _values)
|
|
|
endif()
|
|
|
elseif (NAME STREQUAL "INCLUDES")
|
|
|
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig; sys.stdout.write(';'.join([sysconfig.get_python_inc(plat_specific=True),sysconfig.get_python_inc(plat_specific=False)]))"
|
|
|
+ if (WIN32)
|
|
|
+ set (_scheme "nt")
|
|
|
+ else()
|
|
|
+ set (_scheme "posix_prefix")
|
|
|
+ endif()
|
|
|
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys\ntry:\n from distutils import sysconfig\n sys.stdout.write(';'.join([sysconfig.get_python_inc(plat_specific=True),sysconfig.get_python_inc(plat_specific=False)]))\nexcept Exception:\n import sysconfig\n sys.stdout.write(';'.join([sysconfig.get_path('platinclude'),sysconfig.get_path('platinclude','${_scheme}'),sysconfig.get_path('include'),sysconfig.get_path('include','${_scheme}')]))"
|
|
|
RESULT_VARIABLE _result
|
|
|
OUTPUT_VARIABLE _values
|
|
|
ERROR_QUIET
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
if (_result)
|
|
|
unset (_values)
|
|
|
+ else()
|
|
|
+ list (REMOVE_DUPLICATES _values)
|
|
|
endif()
|
|
|
elseif (NAME STREQUAL "SOABI")
|
|
|
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig;sys.stdout.write(';'.join([sysconfig.get_config_var('SOABI') or '',sysconfig.get_config_var('EXT_SUFFIX') or '']))"
|
|
|
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys\ntry:\n from distutils import sysconfig\n sys.stdout.write(';'.join([sysconfig.get_config_var('SOABI') or '',sysconfig.get_config_var('EXT_SUFFIX') or '']))\nexcept Exception:\n import sysconfig;sys.stdout.write(';'.join([sysconfig.get_config_var('SOABI') or '',sysconfig.get_config_var('EXT_SUFFIX') or '']))"
|
|
|
RESULT_VARIABLE _result
|
|
|
OUTPUT_VARIABLE _soabi
|
|
|
ERROR_QUIET
|
|
|
@@ -349,14 +356,15 @@ function (_PYTHON_GET_CONFIG_VAR _PYTHON_PGCV_VALUE NAME)
|
|
|
if (_result)
|
|
|
unset (_values)
|
|
|
else()
|
|
|
- list (GET _soabi 0 _values)
|
|
|
- if (NOT _values)
|
|
|
- # try to compute SOABI from EXT_SUFFIX
|
|
|
- list (GET _soabi 1 _values)
|
|
|
- if (_values)
|
|
|
- # clean-up: remove prefix character and suffix
|
|
|
- string (REGEX REPLACE "^[.-](.+)(${CMAKE_SHARED_LIBRARY_SUFFIX}|\\.(so|pyd))$" "\\1" _values "${_values}")
|
|
|
+ foreach (_item IN LISTS _soabi)
|
|
|
+ if (_item)
|
|
|
+ set (_values "${_item}")
|
|
|
+ break()
|
|
|
endif()
|
|
|
+ endforeach()
|
|
|
+ if (_values)
|
|
|
+ # clean-up: remove prefix character and suffix
|
|
|
+ string (REGEX REPLACE "^[.-](.+)(${CMAKE_SHARED_LIBRARY_SUFFIX}|\\.(so|pyd))$" "\\1" _values "${_values}")
|
|
|
endif()
|
|
|
endif()
|
|
|
else()
|
|
|
@@ -364,7 +372,7 @@ function (_PYTHON_GET_CONFIG_VAR _PYTHON_PGCV_VALUE NAME)
|
|
|
if (NAME STREQUAL "CONFIGDIR")
|
|
|
set (config_flag "LIBPL")
|
|
|
endif()
|
|
|
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_config_var('${config_flag}'))"
|
|
|
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys\ntry:\n from distutils import sysconfig\n sys.stdout.write(sysconfig.get_config_var('${config_flag}'))\nexcept Exception:\n import sysconfig\n sys.stdout.write(sysconfig.get_config_var('${config_flag}'))"
|
|
|
RESULT_VARIABLE _result
|
|
|
OUTPUT_VARIABLE _values
|
|
|
ERROR_QUIET
|
|
|
@@ -392,6 +400,10 @@ function (_PYTHON_GET_CONFIG_VAR _PYTHON_PGCV_VALUE NAME)
|
|
|
list (REMOVE_DUPLICATES _values)
|
|
|
endif()
|
|
|
|
|
|
+ if (WIN32 AND NAME MATCHES "^(PREFIX|CONFIGDIR|INCLUDES)$")
|
|
|
+ file (TO_CMAKE_PATH "${_values}" _values)
|
|
|
+ endif()
|
|
|
+
|
|
|
set (${_PYTHON_PGCV_VALUE} "${_values}" PARENT_SCOPE)
|
|
|
endfunction()
|
|
|
|
|
|
@@ -1381,7 +1393,7 @@ if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
|
|
|
endif()
|
|
|
|
|
|
# retrieve various package installation directories
|
|
|
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig;sys.stdout.write(';'.join([sysconfig.get_python_lib(plat_specific=False,standard_lib=True),sysconfig.get_python_lib(plat_specific=True,standard_lib=True),sysconfig.get_python_lib(plat_specific=False,standard_lib=False),sysconfig.get_python_lib(plat_specific=True,standard_lib=False)]))"
|
|
|
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys\ntry:\n from distutils import sysconfig\n sys.stdout.write(';'.join([sysconfig.get_python_lib(plat_specific=False,standard_lib=True),sysconfig.get_python_lib(plat_specific=True,standard_lib=True),sysconfig.get_python_lib(plat_specific=False,standard_lib=False),sysconfig.get_python_lib(plat_specific=True,standard_lib=False)]))\nexcept Exception:\n import sysconfig\n sys.stdout.write(';'.join([sysconfig.get_path('stdlib'),sysconfig.get_path('platstdlib'),sysconfig.get_path('purelib'),sysconfig.get_path('platlib')]))"
|
|
|
RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
|
|
|
OUTPUT_VARIABLE _${_PYTHON_PREFIX}_LIBPATHS
|
|
|
ERROR_QUIET)
|