diff options
author | Jingwen Chen <jingwen@google.com> | 2023-10-12 03:40:54 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-10-12 03:40:54 +0000 |
commit | 2d5df955bd373c8d1f18e6782ae3610de3697531 (patch) | |
tree | bfdfa363e6cee8c0a684f15e0b05ce47e5bd6420 | |
parent | 74b65744293a0d6d7f876d7b657c7f144f42a79c (diff) | |
parent | e4195ae126331e4faa2c6f4209770190d1ddf61a (diff) | |
download | bazel_common_rules-2d5df955bd373c8d1f18e6782ae3610de3697531.tar.gz |
Move platform constraints to bazel_common_rules. am: 5e196a0a0f am: b0afff1145 am: e4195ae126
Original change: https://android-review.googlesource.com/c/platform/build/bazel_common_rules/+/2784028
Change-Id: Ic3e4d1af6cf7fcda60edfbf9615e9f76cf8cf2e1
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | platforms/BUILD.bazel | 1 | ||||
-rw-r--r-- | platforms/arch/BUILD | 63 | ||||
-rw-r--r-- | platforms/constants.bzl | 49 | ||||
-rw-r--r-- | platforms/os/BUILD | 68 | ||||
-rw-r--r-- | platforms/os_arch/BUILD.bazel | 82 |
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", + ], +) |