|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(Python3Alt_FOUND) |
|
return() |
|
endif() |
|
|
|
set(Python3Alt_FIND_PACKAGE_OPTIONS) |
|
set(Python3Alt_NumPy_FIND_PACKAGE_OPTIONS) |
|
if(Python3Alt_FIND_VERSION) |
|
list(APPEND Python3Alt_FIND_PACKAGE_OPTIONS ${Python3Alt_FIND_VERSION}) |
|
endif() |
|
if(Python3Alt_FIND_REQUIRED) |
|
list(APPEND Python3Alt_FIND_PACKAGE_OPTIONS REQUIRED) |
|
list(APPEND Python3Alt_NumPy_FIND_PACKAGE_OPTIONS REQUIRED) |
|
endif() |
|
if(Python3Alt_FIND_QUIETLY) |
|
list(APPEND Python3Alt_FIND_PACKAGE_OPTIONS QUIET) |
|
list(APPEND Python3Alt_NumPy_FIND_PACKAGE_OPTIONS QUIET) |
|
endif() |
|
|
|
if(CMAKE_VERSION VERSION_LESS 3.18.0) |
|
|
|
|
|
|
|
find_package(Python3 ${Python3Alt_FIND_PACKAGE_OPTIONS} COMPONENTS Interpreter |
|
Development NumPy) |
|
else() |
|
find_package(Python3 ${Python3Alt_FIND_PACKAGE_OPTIONS} |
|
COMPONENTS Interpreter Development.Module NumPy) |
|
endif() |
|
|
|
if(NOT Python3_FOUND) |
|
return() |
|
endif() |
|
|
|
set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE}) |
|
set(PYTHON_INCLUDE_DIRS ${Python3_INCLUDE_DIRS}) |
|
set(PYTHON_LIBRARIES ${Python3_LIBRARIES}) |
|
set(PYTHON_OTHER_LIBS) |
|
|
|
get_target_property(NUMPY_INCLUDE_DIRS Python3::NumPy INTERFACE_INCLUDE_DIRECTORIES) |
|
|
|
|
|
|
|
|
|
execute_process(COMMAND "${PYTHON_EXECUTABLE}" "-c" |
|
"import sysconfig; print(sysconfig.get_config_var('EXT_SUFFIX'))" |
|
RESULT_VARIABLE _PYTHON_RESULT |
|
OUTPUT_VARIABLE _PYTHON_STDOUT |
|
ERROR_VARIABLE _PYTHON_STDERR) |
|
|
|
if(NOT _PYTHON_RESULT MATCHES 0) |
|
if(Python3Alt_FIND_REQUIRED) |
|
message(FATAL_ERROR "Python 3 config failure:\n${_PYTHON_STDERR}") |
|
endif() |
|
endif() |
|
|
|
string(STRIP ${_PYTHON_STDOUT} _EXT_SUFFIX) |
|
|
|
function(PYTHON_ADD_MODULE name) |
|
python3_add_library(${name} MODULE ${ARGN}) |
|
set_target_properties(${name} PROPERTIES SUFFIX ${_EXT_SUFFIX}) |
|
endfunction() |
|
|
|
find_package_handle_standard_args( |
|
Python3Alt REQUIRED_VARS PYTHON_EXECUTABLE PYTHON_INCLUDE_DIRS NUMPY_INCLUDE_DIRS) |
|
|