95 lines
2.2 KiB
Python
95 lines
2.2 KiB
Python
# Cpu/Arch Variants and features
|
|
|
|
load("//build/bazel/product_variables:constants.bzl", _product_variable_constants = "constants")
|
|
load(":constants.bzl", "constants", "power_set")
|
|
load(":constants_test.bzl", "power_set_test_suite")
|
|
|
|
constraint_setting(
|
|
name = "arch_variant_constraint",
|
|
)
|
|
|
|
licenses(["notice"])
|
|
|
|
package(
|
|
default_visibility = ["//visibility:public"],
|
|
)
|
|
|
|
[
|
|
constraint_value(
|
|
name = arch_variant,
|
|
constraint_setting = "arch_variant_constraint",
|
|
)
|
|
for arch_variant in constants.AvailableArchVariants
|
|
]
|
|
|
|
[
|
|
[
|
|
config_setting(
|
|
name = variant + "-" + arch,
|
|
constraint_values = [
|
|
_product_variable_constants.ArchVariantToConstraints[arch],
|
|
":" + variant,
|
|
],
|
|
)
|
|
for variant in variants
|
|
]
|
|
for arch, variants in constants.ArchToVariants.items()
|
|
]
|
|
|
|
constraint_setting(
|
|
name = "cpu_variant_constraint",
|
|
)
|
|
|
|
[
|
|
constraint_value(
|
|
name = cpu_variant,
|
|
constraint_setting = "cpu_variant_constraint",
|
|
)
|
|
for cpu_variant in constants.AvailableCpuVariants
|
|
]
|
|
|
|
[
|
|
[
|
|
config_setting(
|
|
name = variant + "-" + arch,
|
|
constraint_values = [
|
|
_product_variable_constants.ArchVariantToConstraints[arch],
|
|
":" + variant,
|
|
],
|
|
)
|
|
for variant in variants
|
|
]
|
|
for arch, variants in constants.CpuToVariants.items()
|
|
]
|
|
|
|
[
|
|
(
|
|
constraint_setting(
|
|
name = "arch_feature_constraint_" + arch_feature,
|
|
),
|
|
constraint_value(
|
|
name = arch_feature,
|
|
constraint_setting = "arch_feature_constraint_" + arch_feature,
|
|
),
|
|
)
|
|
for arch_feature in constants.AvailableArchFeatures
|
|
]
|
|
|
|
[
|
|
[
|
|
config_setting(
|
|
name = arch + "-" + "-".join(sorted(features)),
|
|
constraint_values = [
|
|
_product_variable_constants.ArchVariantToConstraints[arch],
|
|
] + [":" + feature for feature in features],
|
|
)
|
|
for features in power_set(
|
|
all_features,
|
|
include_empty = False,
|
|
)
|
|
]
|
|
for arch, all_features in constants.ArchToFeatures.items()
|
|
]
|
|
|
|
power_set_test_suite(name = "power_set_tests")
|