[CMake] Detecting python modules should be cached

Summary: This requres exec-ing python, which in a trace I ran of the CMake re-configure time took ~2% of the reconfigure time.

Reviewers: phosek, smeenai, compnerd

Subscribers: mgorny, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D61402

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360196 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Bieneman 2019-05-07 21:46:55 +00:00
parent 7fdae47df1
commit 83eff7af92

View File

@ -606,16 +606,19 @@ function(find_python_module module)
string(REPLACE "." "_" module_name ${module}) string(REPLACE "." "_" module_name ${module})
string(TOUPPER ${module_name} module_upper) string(TOUPPER ${module_name} module_upper)
set(FOUND_VAR PY_${module_upper}_FOUND) set(FOUND_VAR PY_${module_upper}_FOUND)
if (DEFINED ${FOUND_VAR})
return()
endif()
execute_process(COMMAND "${PYTHON_EXECUTABLE}" "-c" "import ${module}" execute_process(COMMAND "${PYTHON_EXECUTABLE}" "-c" "import ${module}"
RESULT_VARIABLE status RESULT_VARIABLE status
ERROR_QUIET) ERROR_QUIET)
if(status) if(status)
set(${FOUND_VAR} 0 PARENT_SCOPE) set(${FOUND_VAR} OFF CACHE BOOL "Failed to find python module '${module}'")
message(STATUS "Could NOT find Python module ${module}") message(STATUS "Could NOT find Python module ${module}")
else() else()
set(${FOUND_VAR} 1 PARENT_SCOPE) set(${FOUND_VAR} ON CACHE BOOL "Found python module '${module}'")
message(STATUS "Found Python module ${module}") message(STATUS "Found Python module ${module}")
endif() endif()
endfunction() endfunction()