• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("@rules_python//python:defs.bzl", "py_runtime")
2load("@rules_python//python:py_exec_tools_toolchain.bzl", "py_exec_tools_toolchain")
3load("@rules_python//python:py_runtime_pair.bzl", "py_runtime_pair")
4load(":prebuilt_tool.bzl", "prebuilt_tool")
5
6filegroup(
7    name = "linux-x86",
8    srcs = glob([
9        "common/**",
10        "linux-x86/bin/*",
11        "path/linux-x86/*",
12    ]) + [":linux-x86-libs"],
13    visibility = ["//visibility:public"],
14)
15
16filegroup(
17    name = "linux-x86-libs",
18    srcs = glob(["linux-x86/lib64/*"]),
19    visibility = ["//visibility:private"],
20)
21
22filegroup(
23    name = "linux_musl-x86-libs",
24    srcs = glob(["linux_musl-x86/lib64/*"]),
25    visibility = ["//visibility:private"],
26)
27
28# Used in prebuilt_tool()
29alias(
30    name = "libs",
31    actual = select({
32        "//build/kernel/kleaf/platforms/libc:glibc": ":linux-x86-libs",
33        "//build/kernel/kleaf/platforms/libc:musl": ":linux_musl-x86-libs",
34    }),
35    target_compatible_with = select({
36        "//build/kernel/kleaf/platforms/libc:glibc": [],
37        "//build/kernel/kleaf/platforms/libc:musl": [],
38        "//conditions:default": ["@platforms//:incompatible"],
39    }),
40    visibility = ["//visibility:private"],
41)
42
43py_runtime(
44    name = "python3",
45    files = ["linux-x86/bin/py3-cmd"],
46    interpreter = "linux-x86/bin/py3-cmd",
47    python_version = "PY3",
48    visibility = ["//visibility:public"],
49)
50
51py_runtime_pair(
52    name = "py_runtime_pair",
53    py3_runtime = ":python3",
54    visibility = ["//visibility:public"],
55)
56
57toolchain(
58    name = "py_toolchain",
59    toolchain = ":py_runtime_pair",
60    toolchain_type = "@rules_python//python:toolchain_type",
61    visibility = ["//visibility:public"],
62)
63
64py_runtime(
65    name = "python3_musl",
66    files = [
67        "linux_musl-x86/bin/py3-cmd",
68        "linux_musl-x86/lib64/libc_musl.so",
69    ],
70    interpreter = "linux_musl-x86/bin/py3-cmd",
71    python_version = "PY3",
72    visibility = ["//visibility:private"],
73)
74
75py_runtime_pair(
76    name = "py_runtime_pair_musl",
77    py3_runtime = ":python3_musl",
78    visibility = ["//visibility:private"],
79)
80
81toolchain(
82    name = "py_toolchain_musl",
83    exec_compatible_with = [
84        "@platforms//os:linux",
85        "@platforms//cpu:x86_64",
86        "//build/kernel/kleaf/platforms/libc:musl",
87    ],
88    toolchain = ":py_runtime_pair_musl",
89    toolchain_type = "@rules_python//python:toolchain_type",
90    visibility = ["//visibility:private"],
91)
92
93py_exec_tools_toolchain(
94    name = "py_exec_tools_toolchain_impl",
95    # Use the interpreter from //python:toolchain_type
96    exec_interpreter = None,
97    visibility = ["//visibility:private"],
98)
99
100toolchain(
101    name = "py_exec_tools_toolchain",
102    exec_compatible_with = [
103        "@platforms//os:linux",
104        "@platforms//cpu:x86_64",
105    ],
106    toolchain = ":py_exec_tools_toolchain_impl",
107    toolchain_type = "@rules_python//python:exec_tools_toolchain_type",
108    visibility = ["//visibility:private"],
109)
110
111prebuilt_tool(
112    name = "awk",
113    actual = "one-true-awk",
114    visibility = ["//visibility:public"],
115)
116
117prebuilt_tool(
118    name = "bc",
119    actual = "gavinhoward-bc",
120    visibility = ["//visibility:public"],
121)
122
123prebuilt_tool(
124    name = "bison",
125    visibility = ["//visibility:public"],
126)
127
128prebuilt_tool(
129    name = "bzip2",
130    visibility = ["//visibility:public"],
131)
132
133prebuilt_tool(
134    name = "flex",
135    visibility = ["//visibility:public"],
136)
137
138prebuilt_tool(
139    name = "m4",
140    visibility = ["//visibility:public"],
141)
142
143prebuilt_tool(
144    name = "make",
145    visibility = ["//visibility:public"],
146)
147
148prebuilt_tool(
149    name = "openssl",
150    visibility = ["//visibility:public"],
151)
152
153prebuilt_tool(
154    name = "runextractor",
155    visibility = ["//visibility:public"],
156)
157
158prebuilt_tool(
159    name = "soong_zip",
160    visibility = ["//visibility:public"],
161)
162
163prebuilt_tool(
164    name = "toybox",
165    visibility = ["//visibility:public"],
166)
167
168prebuilt_tool(
169    name = "xz",
170    visibility = ["//visibility:public"],
171)
172
173prebuilt_tool(
174    name = "ziptool",
175    visibility = ["//visibility:public"],
176)
177
178# Additional runfiles required by bison
179filegroup(
180    name = "bison.runfiles",
181    srcs = glob([
182        "common/bison/**",
183    ]),
184    visibility = ["//visibility:public"],
185)
186
187# Point to the directory so variables can know where to set BISON_PKGDATADIR to
188filegroup(
189    name = "bison.runfiles_dir",
190    srcs = ["common/bison"],
191    visibility = ["//visibility:public"],
192)
193