@@ -19,14 +19,32 @@ load(":render_pkg_aliases.bzl", "render_multiplatform_pkg_aliases")
19
19
load (":whl_config_setting.bzl" , "whl_config_setting" )
20
20
21
21
_BUILD_FILE_CONTENTS = """\
22
+ load("@rules_python//python:py_library.bzl", "py_library")
23
+
22
24
package(default_visibility = ["//visibility:public"])
23
25
24
26
# Ensure the `requirements.bzl` source can be accessed by stardoc, since users load() from it
25
27
exports_files(["requirements.bzl"])
28
+
29
+ filegroup(
30
+ name = "all_whls",
31
+ srcs = {all_whls},
32
+ )
33
+
34
+ filegroup(
35
+ name = "all_data",
36
+ srcs = {all_data},
37
+ )
38
+
39
+ py_library(
40
+ name = "all_pkgs",
41
+ deps = {all_pkgs},
42
+ )
26
43
"""
27
44
28
45
def _impl (rctx ):
29
- bzl_packages = rctx .attr .packages or rctx .attr .whl_map .keys ()
46
+ all_bzl_packages = sorted (rctx .attr .whl_map .keys ())
47
+ bzl_packages = rctx .attr .packages or all_bzl_packages
30
48
aliases = render_multiplatform_pkg_aliases (
31
49
aliases = {
32
50
key : _whl_config_settings_from_json (values )
@@ -44,7 +62,20 @@ def _impl(rctx):
44
62
# `requirement`, et al. macros.
45
63
macro_tmpl = "@@{name}//{{}}:{{}}" .format (name = rctx .attr .name )
46
64
47
- rctx .file ("BUILD.bazel" , _BUILD_FILE_CONTENTS )
65
+ rctx .file ("BUILD.bazel" , _BUILD_FILE_CONTENTS .format (
66
+ all_pkgs = render .indent (render .list ([
67
+ "//" + pkg
68
+ for pkg in all_bzl_packages
69
+ ])).lstrip (),
70
+ all_data = render .indent (render .list ([
71
+ "//{}:data" .format (pkg )
72
+ for pkg in all_bzl_packages
73
+ ])).lstrip (),
74
+ all_whls = render .indent (render .list ([
75
+ "//{}:whl" .format (pkg )
76
+ for pkg in all_bzl_packages
77
+ ])).lstrip (),
78
+ ))
48
79
rctx .template ("requirements.bzl" , rctx .attr ._template , substitutions = {
49
80
"%%ALL_DATA_REQUIREMENTS%%" : render .list ([
50
81
macro_tmpl .format (p , "data" )
0 commit comments