Skip to content

Commit 669ebab

Browse files
authored
[Fix] Auto-detect Python executable in cmake utils (#491)
* Fix: use Python3_EXECUTABLE consistently in cmake utils * Fix nix build
1 parent dc5437c commit 669ebab

1 file changed

Lines changed: 24 additions & 3 deletions

File tree

kernel-builder/src/pyproject/templates/utils.cmake

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,16 @@ endmacro()
2828
# python, a fatal message `ERR_MSG` is issued.
2929
#
3030
function (run_python OUT EXPR ERR_MSG)
31+
if(Python3_EXECUTABLE)
32+
set(_PYTHON_EXECUTABLE "${Python3_EXECUTABLE}")
33+
elseif(Python_EXECUTABLE)
34+
set(_PYTHON_EXECUTABLE "${Python_EXECUTABLE}")
35+
else()
36+
message(FATAL_ERROR "No Python executable found. Set Python3_EXECUTABLE or Python_EXECUTABLE.")
37+
endif()
3138
execute_process(
3239
COMMAND
33-
"${Python_EXECUTABLE}" "-c" "${EXPR}"
40+
"${_PYTHON_EXECUTABLE}" "-c" "${EXPR}"
3441
OUTPUT_VARIABLE PYTHON_OUT
3542
RESULT_VARIABLE PYTHON_ERROR_CODE
3643
ERROR_VARIABLE PYTHON_STDERR
@@ -48,9 +55,16 @@ endfunction()
4855
# non-zero code, a fatal message `ERR_MSG` is issued.
4956
#
5057
function (run_python_script OUT SCRIPT_PATH ERR_MSG)
58+
if(Python3_EXECUTABLE)
59+
set(_PYTHON_EXECUTABLE "${Python3_EXECUTABLE}")
60+
elseif(Python_EXECUTABLE)
61+
set(_PYTHON_EXECUTABLE "${Python_EXECUTABLE}")
62+
else()
63+
message(FATAL_ERROR "No Python executable found. Set Python3_EXECUTABLE or Python_EXECUTABLE.")
64+
endif()
5165
execute_process(
5266
COMMAND
53-
"${Python_EXECUTABLE}" "${SCRIPT_PATH}"
67+
"${_PYTHON_EXECUTABLE}" "${SCRIPT_PATH}"
5468
OUTPUT_VARIABLE PYTHON_OUT
5569
RESULT_VARIABLE PYTHON_ERROR_CODE
5670
ERROR_VARIABLE PYTHON_STDERR
@@ -68,9 +82,16 @@ endfunction()
6882
# python, `SUCCESS` is set to FALSE. If successful, `SUCCESS` is set to TRUE.
6983
#
7084
function (try_run_python OUT SUCCESS EXPR)
85+
if(Python3_EXECUTABLE)
86+
set(_PYTHON_EXECUTABLE "${Python3_EXECUTABLE}")
87+
elseif(Python_EXECUTABLE)
88+
set(_PYTHON_EXECUTABLE "${Python_EXECUTABLE}")
89+
else()
90+
message(FATAL_ERROR "No Python executable found. Set Python3_EXECUTABLE or Python_EXECUTABLE.")
91+
endif()
7192
execute_process(
7293
COMMAND
73-
"${Python3_EXECUTABLE}" "-c" "${EXPR}"
94+
"${_PYTHON_EXECUTABLE}" "-c" "${EXPR}"
7495
OUTPUT_VARIABLE PYTHON_OUT
7596
RESULT_VARIABLE PYTHON_ERROR_CODE
7697
ERROR_QUIET

0 commit comments

Comments
 (0)