diff options
author | Chuck Atkins <chuck.atkins@kitware.com> | 2021-02-12 13:52:44 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-12 10:52:44 -0800 |
commit | 5a771bc8ad3ddb1b3f550f1685c451cc6cb49e64 (patch) | |
tree | 67216810f4f0f0d94d805110f1ffe4e5fb757a99 /share | |
parent | 7add9de2e531e7a498cff85c20ff474d6d4eddec (diff) | |
download | spack-5a771bc8ad3ddb1b3f550f1685c451cc6cb49e64.tar.gz spack-5a771bc8ad3ddb1b3f550f1685c451cc6cb49e64.tar.bz2 spack-5a771bc8ad3ddb1b3f550f1685c451cc6cb49e64.tar.xz spack-5a771bc8ad3ddb1b3f550f1685c451cc6cb49e64.zip |
Introduce a SPACK_PYTHON environment variable (#21222)
The SPACK_PYTHON environment variable can be set to a python interpreter to be
used by the spack command. This allows the spack command itself to use a
consistent and separate interpreter from whatever python might be used for package
building.
Diffstat (limited to 'share')
-rwxr-xr-x | share/spack/setup-env.csh | 12 | ||||
-rwxr-xr-x | share/spack/setup-env.fish | 15 | ||||
-rwxr-xr-x | share/spack/setup-env.sh | 8 |
3 files changed, 34 insertions, 1 deletions
diff --git a/share/spack/setup-env.csh b/share/spack/setup-env.csh index 8368274912..4ac0503947 100755 --- a/share/spack/setup-env.csh +++ b/share/spack/setup-env.csh @@ -58,6 +58,18 @@ alias spack 'set _sp_args = (\!*); source $_spack_share_dir/csh/spack.c alias spacktivate 'spack env activate' alias _spack_pathadd 'set _pa_args = (\!*) && source $_spack_share_dir/csh/pathadd.csh' +# Identify and lock the python interpreter +if (! $?SPACK_PYTHON) then + setenv SPACK_PYTHON "" +endif +foreach cmd ("$SPACK_PYTHON" python3 python python2) + command -v "$cmd" >& /dev/null + if ($status == 0) then + setenv SPACK_PYTHON `command -v "$cmd"` + break + endif +end + # Set variables needed by this script _spack_pathadd PATH "$SPACK_ROOT/bin" eval `spack --print-shell-vars csh` diff --git a/share/spack/setup-env.fish b/share/spack/setup-env.fish index 15eff90dd2..190934531d 100755 --- a/share/spack/setup-env.fish +++ b/share/spack/setup-env.fish @@ -253,7 +253,7 @@ function match_flag -d "checks all combinations of flags ocurring inside of a st set -l _a (string sub -s 2 (string trim "x$argv[1]")) set -l _b (string sub -s 2 (string trim "x$argv[2]")) - if test -z "$_a" || test -z "$_b" + if test -z "$_a" or test -z "$_b" return 0 end @@ -668,6 +668,19 @@ set -l sp_source_file (status -f) # name of current file # +# Identify and lock the python interpreter +# +for cmd in "$SPACK_PYTHON" python3 python python2 + set -l _sp_python (command -s "$cmd") + if test $status -eq 0 + set -x SPACK_PYTHON $_sp_python + break + end +end + + + +# # Find root directory and add bin to path. # set -l sp_share_dir (realpath (dirname $sp_source_file)) diff --git a/share/spack/setup-env.sh b/share/spack/setup-env.sh index c4c7af4b0a..cbee4428d0 100755 --- a/share/spack/setup-env.sh +++ b/share/spack/setup-env.sh @@ -326,6 +326,14 @@ if [ "$_sp_shell" = bash ]; then export -f _spack_shell_wrapper fi +# Identify and lock the python interpreter +for cmd in "${SPACK_PYTHON:-}" python3 python python2; do + if command -v > /dev/null "$cmd"; then + export SPACK_PYTHON="$(command -v "$cmd")" + break + fi +done + # # make available environment-modules # |