Minor crimes to deal with platform-variable pythons
This commit is contained in:
parent
06eda8167f
commit
8a70d2b64d
3 changed files with 33 additions and 10 deletions
19
WORKSPACE
19
WORKSPACE
|
@ -53,7 +53,7 @@ load("@rules_python//python:pip.bzl", "pip_parse")
|
||||||
pip_parse(
|
pip_parse(
|
||||||
name = "arrdem_source_pypi",
|
name = "arrdem_source_pypi",
|
||||||
requirements_lock = "//tools/python:requirements.txt",
|
requirements_lock = "//tools/python:requirements.txt",
|
||||||
python_interpreter = "/usr/bin/python3.10"
|
python_interpreter_target = "//tools/python:pythonshim",
|
||||||
)
|
)
|
||||||
|
|
||||||
# Load the starlark macro which will define your dependencies.
|
# Load the starlark macro which will define your dependencies.
|
||||||
|
@ -62,13 +62,14 @@ load("@arrdem_source_pypi//:requirements.bzl", "install_deps")
|
||||||
# Call it to define repos for your requirements.
|
# Call it to define repos for your requirements.
|
||||||
install_deps()
|
install_deps()
|
||||||
|
|
||||||
# git_repository(
|
git_repository(
|
||||||
# name = "rules_zapp",
|
|
||||||
# remote = "https://github.com/arrdem/rules_zapp.git",
|
|
||||||
# tag = "0.1.2",
|
|
||||||
# )
|
|
||||||
|
|
||||||
local_repository(
|
|
||||||
name = "rules_zapp",
|
name = "rules_zapp",
|
||||||
path = "/home/arrdem/doc/hobby/programming/lang/python/rules_zapp",
|
remote = "https://github.com/arrdem/rules_zapp.git",
|
||||||
|
commit = "d7a0382927fb8a68115b560f4fee7dca743068f8",
|
||||||
|
# tag = "0.1.2",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# local_repository(
|
||||||
|
# name = "rules_zapp",
|
||||||
|
# path = "/home/arrdem/doc/hobby/programming/lang/python/rules_zapp",
|
||||||
|
# )
|
||||||
|
|
|
@ -12,12 +12,13 @@ exports_files([
|
||||||
"defs.bzl",
|
"defs.bzl",
|
||||||
"bzl_pytest_shim.py",
|
"bzl_pytest_shim.py",
|
||||||
"bzl_unittest_shim.py",
|
"bzl_unittest_shim.py",
|
||||||
|
"pythonshim",
|
||||||
])
|
])
|
||||||
|
|
||||||
py_runtime(
|
py_runtime(
|
||||||
name = "python3_runtime",
|
name = "python3_runtime",
|
||||||
files = [],
|
files = [],
|
||||||
interpreter_path = "/usr/bin/python3.10",
|
interpreter = ":pythonshim",
|
||||||
python_version = "PY3",
|
python_version = "PY3",
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
)
|
)
|
||||||
|
|
21
tools/python/pythonshim
Executable file
21
tools/python/pythonshim
Executable file
|
@ -0,0 +1,21 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Bazel STRONGLY disapproves of linking dynamically to a Python interpreter.
|
||||||
|
# But ... that's exactly what we want to do.
|
||||||
|
# So this script exists to find a 'compliant' Python install and use that.
|
||||||
|
|
||||||
|
PYTHONREV="3.10"
|
||||||
|
CMD="python${PYTHONREV}"
|
||||||
|
|
||||||
|
if [ -x "$(command -v "$CMD")" ]; then
|
||||||
|
exec "$(which "$CMD")" "$@"
|
||||||
|
else
|
||||||
|
case "$(uname)" in
|
||||||
|
Darwin)
|
||||||
|
# FIXME: What if it isn't there?
|
||||||
|
exec /opt/homebrew/bin/"$CMD" "$@"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
echo "Error: Unable to find a viable Python executable" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
Loading…
Reference in a new issue