aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJingwen Chen <jingwen@google.com>2023-10-12 04:14:18 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-10-12 04:14:18 +0000
commitc8c3bdd88c031d8d09dcd196a37b5c4a95fbb142 (patch)
treebfdfa363e6cee8c0a684f15e0b05ce47e5bd6420
parent783a003e16a66c60c3e279eaec0d6ef5dc406bab (diff)
parent2d5df955bd373c8d1f18e6782ae3610de3697531 (diff)
downloadbazel_common_rules-c8c3bdd88c031d8d09dcd196a37b5c4a95fbb142.tar.gz
Move platform constraints to bazel_common_rules. am: 5e196a0a0f am: b0afff1145 am: e4195ae126 am: 2d5df955bd
Original change: https://android-review.googlesource.com/c/platform/build/bazel_common_rules/+/2784028 Change-Id: Ifee88250222a37db2c0429802cd134dc654c22c1 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--platforms/BUILD.bazel1
-rw-r--r--platforms/arch/BUILD63
-rw-r--r--platforms/constants.bzl49
-rw-r--r--platforms/os/BUILD68
-rw-r--r--platforms/os_arch/BUILD.bazel82
5 files changed, 263 insertions, 0 deletions
diff --git a/platforms/BUILD.bazel b/platforms/BUILD.bazel
new file mode 100644
index 0000000..fb9120c
--- /dev/null
+++ b/platforms/BUILD.bazel
@@ -0,0 +1 @@
+# Used to denote the //build/bazel_common_rules/platforms package.
diff --git a/platforms/arch/BUILD b/platforms/arch/BUILD
new file mode 100644
index 0000000..cc458d0
--- /dev/null
+++ b/platforms/arch/BUILD
@@ -0,0 +1,63 @@
+# Standard cpu name constraint_setting and constraint_values
+
+licenses(["notice"])
+
+package(
+ default_visibility = ["//visibility:public"],
+)
+
+constraint_value(
+ name = "arm",
+ constraint_setting = "@platforms//cpu:cpu",
+)
+
+constraint_value(
+ name = "arm64",
+ constraint_setting = "@platforms//cpu:cpu",
+)
+
+constraint_value(
+ name = "riscv64",
+ constraint_setting = "@platforms//cpu:cpu",
+)
+
+constraint_value(
+ name = "x86",
+ constraint_setting = "@platforms//cpu:cpu",
+)
+
+# Alias to the local_jdk's toolchain constraint to make local_jdk resolve
+# correctly with --tool_java_runtime_version=local_jdk and the checked-in JDK.
+alias(
+ name = "x86_64",
+ actual = "@platforms//cpu:x86_64",
+)
+
+constraint_setting(
+ name = "secondary_arch_constraint",
+)
+
+constraint_value(
+ name = "secondary_arm",
+ constraint_setting = ":secondary_arch_constraint",
+)
+
+constraint_value(
+ name = "secondary_arm64",
+ constraint_setting = ":secondary_arch_constraint",
+)
+
+constraint_value(
+ name = "secondary_riscv64",
+ constraint_setting = ":secondary_arch_constraint",
+)
+
+constraint_value(
+ name = "secondary_x86",
+ constraint_setting = ":secondary_arch_constraint",
+)
+
+constraint_value(
+ name = "secondary_x86_64",
+ constraint_setting = ":secondary_arch_constraint",
+)
diff --git a/platforms/constants.bzl b/platforms/constants.bzl
new file mode 100644
index 0000000..64e80fc
--- /dev/null
+++ b/platforms/constants.bzl
@@ -0,0 +1,49 @@
+"""Constants related to Bazel platforms."""
+
+# This dict denotes the suffixes for host platforms (keys) and the constraints
+# associated with them (values). Used in transitions and tests, in addition to
+# here.
+host_platforms = {
+ "linux_x86": [
+ "@//build/bazel_common_rules/platforms/arch:x86",
+ "@//build/bazel_common_rules/platforms/os:linux",
+ ],
+ "linux_x86_64": [
+ "@//build/bazel_common_rules/platforms/arch:x86_64",
+ "@//build/bazel_common_rules/platforms/os:linux",
+ ],
+ "linux_musl_x86": [
+ "@//build/bazel_common_rules/platforms/arch:x86",
+ "@//build/bazel_common_rules/platforms/os:linux_musl",
+ ],
+ "linux_musl_x86_64": [
+ "@//build/bazel_common_rules/platforms/arch:x86_64",
+ "@//build/bazel_common_rules/platforms/os:linux_musl",
+ ],
+ # linux_bionic is the OS for the Linux kernel plus the Bionic libc runtime,
+ # but without the rest of Android.
+ "linux_bionic_arm64": [
+ "@//build/bazel_common_rules/platforms/arch:arm64",
+ "@//build/bazel_common_rules/platforms/os:linux_bionic",
+ ],
+ "linux_bionic_x86_64": [
+ "@//build/bazel_common_rules/platforms/arch:x86_64",
+ "@//build/bazel_common_rules/platforms/os:linux_bionic",
+ ],
+ "darwin_arm64": [
+ "@//build/bazel_common_rules/platforms/arch:arm64",
+ "@//build/bazel_common_rules/platforms/os:darwin",
+ ],
+ "darwin_x86_64": [
+ "@//build/bazel_common_rules/platforms/arch:x86_64",
+ "@//build/bazel_common_rules/platforms/os:darwin",
+ ],
+ "windows_x86": [
+ "@//build/bazel_common_rules/platforms/arch:x86",
+ "@//build/bazel_common_rules/platforms/os:windows",
+ ],
+ "windows_x86_64": [
+ "@//build/bazel_common_rules/platforms/arch:x86_64",
+ "@//build/bazel_common_rules/platforms/os:windows",
+ ],
+}
diff --git a/platforms/os/BUILD b/platforms/os/BUILD
new file mode 100644
index 0000000..bc8759f
--- /dev/null
+++ b/platforms/os/BUILD
@@ -0,0 +1,68 @@
+# Standard constraint_setting and constraint_values to be used in platforms.
+
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+licenses(["notice"])
+
+package(
+ default_visibility = ["//visibility:public"],
+)
+
+constraint_value(
+ name = "android",
+ constraint_setting = "@platforms//os:os",
+)
+
+config_setting(
+ name = "android_config_setting",
+ constraint_values = [
+ ":android",
+ ],
+)
+
+# Alias to the local_jdk's toolchain constraint to make local_jdk resolve
+# correctly with --tool_java_runtime_version=local_jdk and the checked-in JDK.
+alias(
+ name = "linux",
+ actual = "@platforms//os:linux",
+)
+
+alias(
+ name = "linux_glibc",
+ actual = "@platforms//os:linux",
+)
+
+constraint_value(
+ name = "linux_musl",
+ constraint_setting = "@platforms//os:os",
+)
+
+constraint_value(
+ name = "linux_bionic",
+ constraint_setting = "@platforms//os:os",
+)
+
+config_setting(
+ name = "linux_bionic_config_setting",
+ constraint_values = [
+ ":linux_bionic",
+ ],
+)
+
+constraint_value(
+ name = "windows",
+ constraint_setting = "@platforms//os:os",
+)
+
+constraint_value(
+ name = "darwin",
+ constraint_setting = "@platforms//os:os",
+)
+
+selects.config_setting_group(
+ name = "bionic",
+ match_any = [
+ ":android_config_setting",
+ ":linux_bionic_config_setting",
+ ],
+)
diff --git a/platforms/os_arch/BUILD.bazel b/platforms/os_arch/BUILD.bazel
new file mode 100644
index 0000000..56360f0
--- /dev/null
+++ b/platforms/os_arch/BUILD.bazel
@@ -0,0 +1,82 @@
+load("//build/bazel_common_rules/platforms:constants.bzl", "host_platforms")
+
+config_setting(
+ name = "android_arm",
+ constraint_values = [
+ "//build/bazel_common_rules/platforms/arch:arm",
+ "//build/bazel_common_rules/platforms/os:android",
+ ],
+)
+
+config_setting(
+ name = "android_arm64",
+ constraint_values = [
+ "//build/bazel_common_rules/platforms/arch:arm64",
+ "//build/bazel_common_rules/platforms/os:android",
+ ],
+)
+
+config_setting(
+ name = "android_riscv64",
+ constraint_values = [
+ "//build/bazel_common_rules/platforms/arch:riscv64",
+ "//build/bazel_common_rules/platforms/os:android",
+ ],
+)
+
+config_setting(
+ name = "android_x86",
+ constraint_values = [
+ "//build/bazel_common_rules/platforms/arch:x86",
+ "//build/bazel_common_rules/platforms/os:android",
+ ],
+)
+
+config_setting(
+ name = "android_x86_64",
+ constraint_values = [
+ "//build/bazel_common_rules/platforms/arch:x86_64",
+ "//build/bazel_common_rules/platforms/os:android",
+ ],
+)
+
+[
+ config_setting(
+ name = name,
+ constraint_values = constraints,
+ )
+ for name, constraints in host_platforms.items()
+]
+
+# These settings must exist, but are not yet supported by our toolchains
+config_setting(
+ name = "linux_glibc_x86",
+ constraint_values = [
+ "//build/bazel_common_rules/platforms/arch:x86",
+ "//build/bazel_common_rules/platforms/os:linux_glibc",
+ ],
+)
+
+config_setting(
+ name = "linux_glibc_x86_64",
+ constraint_values = [
+ "//build/bazel_common_rules/platforms/arch:x86_64",
+ "//build/bazel_common_rules/platforms/os:linux_glibc",
+ ],
+)
+
+config_setting(
+ name = "linux_musl_arm",
+ constraint_values = [
+ "//build/bazel_common_rules/platforms/arch:arm",
+ "//build/bazel_common_rules/platforms/os:linux_musl",
+ ],
+)
+
+config_setting(
+ name = "linux_musl_arm64",
+ constraint_values = [
+ "//build/bazel_common_rules/platforms/arch:arm64",
+ "//build/bazel_common_rules/platforms/os:linux_musl",
+ ],
+)