platform: parameterize toolchain defs
This is a series of nop changes that hopes to remove the duplication
between toolchain/platform definitions. The intent is to make each
platform definition much more compact than in prior CLs.
BUG=b:220355021
TEST=`bazel build --platforms="$x" ...` in drydock, for each $x in the
platforms we currently define.
Change-Id: I3dc11adfb6bc845800112afaa65fc212f31c9961
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/rules_cros/+/3503958
Reviewed-by: Chris McDonald <cjmcdonald@chromium.org>
Tested-by: George Burgess <gbiv@chromium.org>
diff --git a/cros/platforms/BUILD b/cros/platforms/BUILD
index 132a67c..14c7050 100644
--- a/cros/platforms/BUILD
+++ b/cros/platforms/BUILD
@@ -4,29 +4,6 @@
package(default_visibility = ["//visibility:public"])
-platform(
- name = "linux_x86_64",
- constraint_values = [
- "@platforms//os:linux",
- "@platforms//cpu:x86_64",
- "//cros/platforms/vendor:pc",
- ],
-)
+load(":platform.bzl", "define_platforms")
-platform(
- name = "cros_armv7a",
- constraint_values = [
- "@platforms//os:linux",
- "@platforms//cpu:armv7",
- "//cros/platforms/vendor:cros",
- ],
-)
-
-platform(
- name = "cros_x86_64",
- constraint_values = [
- "@platforms//os:linux",
- "@platforms//cpu:x86_64",
- "//cros/platforms/vendor:cros",
- ],
-)
+define_platforms()
diff --git a/cros/platforms/platform.bzl b/cros/platforms/platform.bzl
new file mode 100644
index 0000000..8bb1883
--- /dev/null
+++ b/cros/platforms/platform.bzl
@@ -0,0 +1,17 @@
+load("//cros/toolchain:platforms.bzl", "all_toolchain_descs", "bazel_cpu_arch", "desc_to_triple")
+
+def define_platforms():
+ for desc in all_toolchain_descs:
+ if desc.vendor == "pc":
+ platform_name = "linux"
+ else:
+ platform_name = "cros"
+
+ native.platform(
+ name = "{}_{}".format(platform_name, desc.cpu_arch),
+ constraint_values = [
+ bazel_cpu_arch(desc),
+ "@platforms//os:linux",
+ "//cros/platforms/vendor:" + desc.vendor,
+ ],
+ )