blob: 03349ecfd4606b853c79022f04f8ab13b3b409e4 [file] [log] [blame]
# Copyright 2021 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Constraints and platforms for Fuchsia.
load("@bazel_skylib//lib:selects.bzl", "selects")
load("//:api_version.bzl", "INTERNAL_ONLY_VALID_TARGET_APIS")
package(
default_visibility = ["//:__subpackages__"],
)
# The version of the Fuchsia toolchain. Specific to particular local builds of
# Fuchsia or particular versions of the IDK.
constraint_setting(
name = "version",
visibility = ["//visibility:public"],
)
# Target API level constraints.
[
config_setting(
name = "api_level_%s" % target_api.api_level,
flag_values = {
"//fuchsia:fuchsia_api_level": target_api.api_level,
},
)
for target_api in INTERNAL_ONLY_VALID_TARGET_APIS
]
# CPU based configurations
selects.config_setting_group(
name = "cpu_arm64",
match_any = [
":cpu_arm64_flag",
"@platforms//cpu:arm64",
],
)
selects.config_setting_group(
name = "cpu_x64",
match_any = [
":cpu_x64_flag",
"@platforms//cpu:x86_64",
],
)
selects.config_setting_group(
name = "cpu_riscv64",
match_any = [
":cpu_riscv64_flag",
"@platforms//cpu:riscv64",
],
)
config_setting(
name = "cpu_arm64_flag",
values = {"cpu": "aarch64"},
)
config_setting(
name = "cpu_x64_flag",
values = {"cpu": "x86_64"},
)
config_setting(
name = "cpu_riscv64_flag",
values = {"cpu": "riscv64"},
)
selects.config_setting_group(
name = "is_fuchsia_arm64",
match_all = [
"@platforms//os:fuchsia",
":cpu_arm64",
],
)
selects.config_setting_group(
name = "is_fuchsia_x64",
match_all = [
"@platforms//os:fuchsia",
":cpu_x64",
],
)
selects.config_setting_group(
name = "is_fuchsia_riscv64",
match_all = [
"@platforms//os:fuchsia",
":cpu_riscv64",
],
)
# Variants based configuration
[
selects.config_setting_group(
name = "is_%s_api_%s" % (
cpu,
target_api.api_level,
),
match_all = [
"@platforms//os:fuchsia",
":cpu_%s" % cpu,
":api_level_%s" % target_api.api_level,
],
)
for target_api in INTERNAL_ONLY_VALID_TARGET_APIS
for cpu in [
"arm64",
"x64",
"riscv64",
]
]
# Configuration for API level HEAD
[
selects.config_setting_group(
name = "is_%s_api_HEAD" % cpu,
match_all = [
"@platforms//os:fuchsia",
":cpu_%s" % cpu,
],
)
for cpu in [
"arm64",
"x64",
"riscv64",
]
]