• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Cpu/Arch Variants and features
2
3load("//build/bazel/product_variables:constants.bzl", _product_variable_constants = "constants")
4load(":constants.bzl", "constants")
5
6constraint_setting(
7    name = "arch_variant_constraint",
8)
9
10licenses(["notice"])
11
12package(
13    default_visibility = ["//visibility:public"],
14)
15
16[
17    constraint_value(
18        name = arch_variant,
19        constraint_setting = "arch_variant_constraint",
20    )
21    for arch_variant in constants.AvailableArchVariants
22]
23
24[
25    [
26        config_setting(
27            name = variant + "-" + arch,
28            constraint_values = [
29                _product_variable_constants.ArchVariantToConstraints[arch],
30                ":" + variant,
31            ],
32        )
33        for variant in variants
34    ]
35    for arch, variants in constants.ArchToVariants.items()
36]
37
38constraint_setting(
39    name = "cpu_variant_constraint",
40)
41
42[
43    constraint_value(
44        name = cpu_variant,
45        constraint_setting = "cpu_variant_constraint",
46    )
47    for cpu_variant in constants.AvailableCpuVariants
48]
49
50[
51    [
52        config_setting(
53            name = variant + "-" + arch,
54            constraint_values = [
55                _product_variable_constants.ArchVariantToConstraints[arch],
56                ":" + variant,
57            ],
58        )
59        for variant in variants
60    ]
61    for arch, variants in constants.CpuToVariants.items()
62]
63
64[
65    (
66        constraint_setting(
67            name = "arch_feature_constraint_" + arch_feature,
68        ),
69        constraint_value(
70            name = arch_feature,
71            constraint_setting = "arch_feature_constraint_" + arch_feature,
72        ),
73    )
74    for arch_feature in constants.AvailableArchFeatures
75]
76
77[
78    [
79        config_setting(
80            name = feature + "-" + arch,
81            constraint_values = [
82                _product_variable_constants.ArchVariantToConstraints[arch],
83                ":" + feature,
84            ],
85        )
86        for feature in features
87    ]
88    for arch, features in constants.ArchToFeatures.items()
89]
90