forked from Kitware/VTK
-
Notifications
You must be signed in to change notification settings - Fork 0
/
FindPythonModules.cmake
25 lines (23 loc) · 1.04 KB
/
FindPythonModules.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Check whether a Python module is available by name, and if it is,
# define a variable in the internal cache.
function(_find_python_module_internal module_name)
# Check for presence of the module. Even though we don't use all the
# variable names set here, assigning them suppresses their output in CMake.
execute_process(COMMAND "${Python${VTK_PYTHON_VERSION}_EXECUTABLE}" -c "import ${module_name}"
RESULT_VARIABLE IMPORT_${module_name}_EXITCODE
OUTPUT_VARIABLE IMPORT_${module_name}_OUTPUT
ERROR_VARIABLE IMPORT_${module_name}_ERROR
)
if(${IMPORT_${module_name}_EXITCODE} EQUAL 0)
set(PYTHON_MODULE_${module_name}_FOUND TRUE PARENT_SCOPE)
else()
set(PYTHON_MODULE_${module_name}_FOUND FALSE PARENT_SCOPE)
endif()
endfunction()
# Function to simplify checking if a Python module is available
function(find_python_module module_name result)
if(NOT PYTHON_MODULE_${module_name}_FOUND)
_find_python_module_internal(${module_name})
endif()
set(${result} ${PYTHON_MODULE_${module_name}_FOUND} PARENT_SCOPE)
endfunction()