Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • bazel/toolchain_utils
1 result
Show changes
Commits on Source (7)
# [1.1.0](https://git.gitlab.arm.com/bazel/toolchain_utils/compare/v1.0.2...v1.1.0) (2025-02-17)
### Bug Fixes
- make `//toolchain/platform` couplets public ([7a53fdc](https://git.gitlab.arm.com/bazel/toolchain_utils/commit/7a53fdc8dacd042706c21a828d61d1ce8710e823))
### Features
- add `//toolchain/constaint` couplets ([4d3aa97](https://git.gitlab.arm.com/bazel/toolchain_utils/commit/4d3aa9778cca519716f8cd55d5b91c477bb30ebe))
- add `ToolchainCoupletInfo` ([e92a95a](https://git.gitlab.arm.com/bazel/toolchain_utils/commit/e92a95ac88d1b3e089f1b2bf0144d3ecb4f92de9))
- add more common triplets ([c62af22](https://git.gitlab.arm.com/bazel/toolchain_utils/commit/c62af229b67cb4f33803af95aeba966e4733d9bb))
## [1.0.2](https://git.gitlab.arm.com/bazel/toolchain_utils/compare/v1.0.1...v1.0.2) (2025-02-06)
### Bug Fixes
......
module(
name = "toolchain_utils",
version = "1.0.2",
version = "1.1.0",
bazel_compatibility = [
">=7.1.0",
],
......
load("//toolchain/couplet:couplets.bzl", "COUPLETS")
load("//toolchain/triplet:triplets.bzl", "TRIPLETS")
[
......@@ -9,6 +10,15 @@ load("//toolchain/triplet:triplets.bzl", "TRIPLETS")
for t in TRIPLETS
]
[
config_setting(
name = c.value,
constraint_values = c.constraints,
visibility = ["//visibility:public"],
)
for c in COUPLETS
]
alias(
name = "local",
actual = "//toolchain/local:constraint",
......
load("@bazel_skylib//lib:types.bzl", "types")
load("//toolchain:VersionedInfo.bzl", "VersionedInfo")
load("//toolchain:split.bzl", "split")
visibility("//toolchain/...")
def init(value):
"""
Initializes a `CoupletInfo` provider.
Processes `value` into the constituent parts.
Args:
value: A machine couplet which can be kebab-separated such as `aarch64-linux.6.13`
Returns:
A mapping of keywords for the `couplet_info` raw constructor.
"""
if not types.is_string(value):
fail("`CoupletInfo.value` must be a `str`: {}".format(value))
cpu, vendor, os = split(value, "-", {
2: lambda c, o: (c, None, o),
3: lambda c, v, o: (c, v, o),
})
os = VersionedInfo(os)
constraints = [
"cpu:{}".format(cpu),
"os:{}".format(os.kind),
]
if os.version:
constraints.append("os/{}:{}".format(os.kind, os.version.value))
return {
"value": value,
"cpu": cpu,
"vendor": vendor,
"os": os,
"constraints": tuple([
Label("//toolchain/constraint/{}".format(c))
for c in constraints
]),
}
CoupletInfo, couplet_info = provider(
"A machine couplet. Has the associated compatible Bazel constraints.",
fields = ("value", "cpu", "vendor", "os", "constraints"),
init = init,
)
load("@local//:triplet.bzl", LOCAL = "TRIPLET")
load(":CoupletInfo.bzl", "CoupletInfo")
visibility("//toolchain/...")
COUPLETS = (
CoupletInfo("{}-{}".format(LOCAL.cpu, LOCAL.os.value)),
CoupletInfo("arm64-linux"),
CoupletInfo("amd64-linux"),
CoupletInfo("arm64-windows"),
CoupletInfo("amd64-windows"),
CoupletInfo("arm64-macos"),
CoupletInfo("amd64-macos"),
)
load(":CoupletInfo.bzl", _CoupletInfo = "CoupletInfo")
visibility("public")
ToolchainCoupletInfo = _CoupletInfo
load("//toolchain/triplet:split.bzl", "split")
load("//toolchain/triplet:VersionedInfo.bzl", "VersionedInfo")
load("//toolchain:split.bzl", "split")
load("//toolchain:VersionedInfo.bzl", "VersionedInfo")
visibility("//toolchain/local/triplet/...")
......
load("//toolchain/triplet:split.bzl", "split")
load("//toolchain/triplet:VersionedInfo.bzl", "VersionedInfo")
load("//toolchain:split.bzl", "split")
load("//toolchain:VersionedInfo.bzl", "VersionedInfo")
visibility("//toolchain/local/triplet/...")
......
load("//toolchain/couplet:couplets.bzl", "COUPLETS")
load("//toolchain/triplet:triplets.bzl", "TRIPLETS")
[
......@@ -11,20 +12,11 @@ load("//toolchain/triplet:triplets.bzl", "TRIPLETS")
[
platform(
name = "{}-{}".format(cpu, os),
constraint_values = [
"//toolchain/constraint/cpu:{}".format(cpu),
"//toolchain/constraint/os:{}".format(os),
],
)
for cpu, os in (
("amd64", "linux"),
("arm64", "linux"),
("amd64", "windows"),
("arm64", "windows"),
("amd64", "macos"),
("arm64", "macos"),
name = c.value,
constraint_values = c.constraints,
visibility = ["//visibility:public"],
)
for c in COUPLETS
]
alias(
......
File moved
load("@bazel_skylib//lib:types.bzl", "types")
load(":VersionedInfo.bzl", "VersionedInfo")
load(":split.bzl", "split")
load("//toolchain:VersionedInfo.bzl", "VersionedInfo")
load("//toolchain:split.bzl", "split")
visibility("//toolchain/...")
......
......@@ -7,4 +7,10 @@ TRIPLETS = (
LOCAL,
TripletInfo("arm64-linux-gnu"),
TripletInfo("amd64-linux-gnu"),
TripletInfo("arm64-linux-musl"),
TripletInfo("amd64-linux-musl"),
TripletInfo("arm64-macos-darwin"),
TripletInfo("amd64-macos-darwin"),
TripletInfo("arm64-windows-ucrt"),
TripletInfo("amd64-windows-ucrt"),
)