Reid 'arrdem' McKenzie
5b0062468f
This patch teaches Zapp! to introspect the `sources` of a manifest, and look for the well-known `WHEEL` file(s) indicative of an unzipped/installed wheel in the input sources. A wheel can be (somewhat*) correctly reassembled by zipping its unzipped state, so in the presence of unzipped wheels Zapp! will re-zip them and enter them into the manifest appropriately for inclusion. This fixes #6 the nasty way, as there's no good way to make `rules_python` provide wheel dependencies or to translate unrolled wheels back to wheels during rule execution as this would violate Bazel's file dependency model.
36 lines
690 B
Python
36 lines
690 B
Python
package(default_visibility = ["//visibility:public"])
|
|
|
|
load("zapp.bzl", "zapp_binary")
|
|
|
|
# Zapp plugins used as a runtime library by rules_zapp
|
|
py_library(
|
|
name = "zapp_support",
|
|
srcs = glob(["support/**/*.py"]),
|
|
imports = [
|
|
"..",
|
|
]
|
|
)
|
|
|
|
# Bootstrapping Zapp using py_binary
|
|
py_binary(
|
|
name = "zappc",
|
|
main = "compiler/__main__.py",
|
|
srcs = glob(["support/**/*.py"]) + [
|
|
"compiler/__main__.py"
|
|
],
|
|
imports = [
|
|
"..",
|
|
],
|
|
)
|
|
|
|
# For testing of zappc
|
|
zapp_binary(
|
|
name = "zappzappc",
|
|
main = "compiler/__main__.py",
|
|
srcs = glob(["support/**/*.py"]) + [
|
|
"compiler/__main__.py"
|
|
],
|
|
imports = [
|
|
"..",
|
|
],
|
|
)
|