Skip to content
File

Blob: src/pyodide/BUILD.bazel

2.1 KB
1load("@bazel_skylib//rules:write_file.bzl", "write_file")
2load("@rules_python//python:defs.bzl", "py_test")
3load("//:build/python_metadata.bzl", "BUNDLE_VERSION_INFO")
4load("//:build/wd_cc_embed.bzl", "wd_cc_embed")
5load(":helpers.bzl", "pyodide_extra", "pyodide_static", "python_bundles")
6 
7pyodide_extra()
8 
9python_bundles()
10 
11pyodide_static()
12 
13DEV_VERSION = BUNDLE_VERSION_INFO["development"]["real_pyodide_version"]
14 
15alias(
16 name = "pyodide.capnp.bin",
17 actual = "pyodide.capnp.bin@rule@" + DEV_VERSION,
18 visibility = ["//visibility:public"],
19)
20 
21wd_cc_embed(
22 name = "python-entrypoint",
23 src = "python-entrypoint.js",
24 base_name = "python-entrypoint",
25 visibility = ["//visibility:public"],
26)
27 
28# In case we have a runner which doesn't support building pyodide.capnp.bin we
29# want to use a pre-built/cross-compiled artifact. This is just a bazel alias
30# serving as a redirect when referenced by other targets instead of changing
31# the output filename.
32alias(
33 name = "pyodide.capnp.bin_cross",
34 actual = select({
35 "@//build/config:prebuilt_binaries_arm64": "@//:bin.arm64/tmp/pyodide/pyodide.capnp.bin.aarch64-linux-gnu",
36 "//conditions:default": "pyodide.capnp.bin",
37 }),
38 visibility = ["//visibility:public"],
39)
40 
41alias(
42 name = "pyodide.capnp.bin@rule",
43 actual = "pyodide.capnp.bin@rule@" + DEV_VERSION,
44 visibility = ["//visibility:public"],
45)
46 
47alias(
48 name = "pyodide",
49 actual = "pyodide@" + DEV_VERSION,
50 visibility = ["//visibility:public"],
51)
52 
53write_file(
54 name = "bundle_version_info",
55 out = "bundle_version_info.json",
56 content = [json.encode(BUNDLE_VERSION_INFO)],
57)
58 
59py_test(
60 name = "unit-test-introspection",
61 srcs = [
62 "internal/introspection.py",
63 "internal/test_introspection.py",
64 ] + glob(["internal/workers-api/src/workers/*"]),
65 main = "internal/test_introspection.py",
66)
67 
68py_test(
69 name = "unit-test-frozen-sdk",
70 srcs = ["internal/test_frozen_sdk.py"],
71 data = glob(["internal/workers-api/**"]),
72 main = "internal/test_frozen_sdk.py",
73 target_compatible_with = ["@platforms//os:linux"],
74)