-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathworkspace.bzl
58 lines (48 loc) · 2.2 KB
/
workspace.bzl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
"Bazel Workspace (non-Bzlmod) definitions."
load(
"//internal:deps.bzl",
_rules_graalvm_repositories = "rules_graalvm_repositories",
)
load(
"//internal:toolchain.bzl",
_register_graalvm_toolchains = "register_graalvm_toolchains",
)
# Exports.
def rules_graalvm_repositories(
omit_rules_java = False,
omit_bazel_skylib = False,
omit_apple_support = False):
"""Register dependency repositories for the GraalVM Rules for Bazel.
This function only needs to be called if consuming the GraalVM Rules from a non-Bzlmod environment.
The only dependencies the rules have are: (1) `rules_java`, (2) `bazel_skylib`, and
(3) `apple_support`. Any of those can be omitted with the provided arguments.
Args:
omit_rules_java: Omit the `rules_java` dependency.
omit_bazel_skylib: Omit the `bazel_skylib` dependency.
omit_apple_support: Omit the `apple_support` dependency.
"""
_rules_graalvm_repositories(
omit_rules_java = omit_rules_java,
omit_bazel_skylib = omit_bazel_skylib,
omit_apple_support = omit_apple_support,
)
def register_graalvm_toolchains(
name = "@graalvm",
register_java_toolchain = True,
register_gvm_toolchain = True):
"""Register Bazel toolchains via the installed GraalVM repository.
The default repository `name` is `@graalvm`, but this should be set to whatever the target repository
is named (in the call to `graalvm_repository` or `graal_bindist_repository`).
The GraalVM toolchain registers a custom Bazel toolchain which allows resolution of tools like
`native-image`. If you opt out of installing the GraalVM toolchain, make sure you properly declare the
target tool in your `native_image` binary targets.
Args:
name: Name of the target repository; defaults to `@graalvm`.
register_java_toolchain: Whether to register GraalVM as a Java toolchain. Defaults to `True`.
register_gvm_toolchain: Whether to register a GraalVM-typed toolchain. Defaults to `True`.
"""
_register_graalvm_toolchains(
name = name,
register_java_toolchain = register_java_toolchain,
register_gvm_toolchain = register_gvm_toolchain,
)