xref: /aosp_15_r20/build/bazel/platforms/arch/variants/BUILD (revision 7594170e27e0732bc44b93d1440d87a54b6ffe7c)
1*7594170eSAndroid Build Coastguard Worker# Cpu/Arch Variants and features
2*7594170eSAndroid Build Coastguard Worker
3*7594170eSAndroid Build Coastguard Workerload(":constants.bzl", "arch_variant_to_constraints", "constants", "power_set")
4*7594170eSAndroid Build Coastguard Workerload(":constants_test.bzl", "power_set_test_suite")
5*7594170eSAndroid Build Coastguard Worker
6*7594170eSAndroid Build Coastguard Workerconstraint_setting(
7*7594170eSAndroid Build Coastguard Worker    name = "arch_variant_constraint",
8*7594170eSAndroid Build Coastguard Worker)
9*7594170eSAndroid Build Coastguard Worker
10*7594170eSAndroid Build Coastguard Workerlicenses(["notice"])
11*7594170eSAndroid Build Coastguard Worker
12*7594170eSAndroid Build Coastguard Workerpackage(
13*7594170eSAndroid Build Coastguard Worker    default_visibility = ["//visibility:public"],
14*7594170eSAndroid Build Coastguard Worker)
15*7594170eSAndroid Build Coastguard Worker
16*7594170eSAndroid Build Coastguard Worker[
17*7594170eSAndroid Build Coastguard Worker    constraint_value(
18*7594170eSAndroid Build Coastguard Worker        name = arch_variant,
19*7594170eSAndroid Build Coastguard Worker        constraint_setting = "arch_variant_constraint",
20*7594170eSAndroid Build Coastguard Worker    )
21*7594170eSAndroid Build Coastguard Worker    for arch_variant in constants.AvailableArchVariants
22*7594170eSAndroid Build Coastguard Worker]
23*7594170eSAndroid Build Coastguard Worker
24*7594170eSAndroid Build Coastguard Worker[
25*7594170eSAndroid Build Coastguard Worker    [
26*7594170eSAndroid Build Coastguard Worker        config_setting(
27*7594170eSAndroid Build Coastguard Worker            name = variant + "-" + arch,
28*7594170eSAndroid Build Coastguard Worker            constraint_values = [
29*7594170eSAndroid Build Coastguard Worker                arch_variant_to_constraints[arch],
30*7594170eSAndroid Build Coastguard Worker                ":" + variant,
31*7594170eSAndroid Build Coastguard Worker            ],
32*7594170eSAndroid Build Coastguard Worker        )
33*7594170eSAndroid Build Coastguard Worker        for variant in variants
34*7594170eSAndroid Build Coastguard Worker    ]
35*7594170eSAndroid Build Coastguard Worker    for arch, variants in constants.ArchToVariants.items()
36*7594170eSAndroid Build Coastguard Worker]
37*7594170eSAndroid Build Coastguard Worker
38*7594170eSAndroid Build Coastguard Workerconstraint_setting(
39*7594170eSAndroid Build Coastguard Worker    name = "cpu_variant_constraint",
40*7594170eSAndroid Build Coastguard Worker)
41*7594170eSAndroid Build Coastguard Worker
42*7594170eSAndroid Build Coastguard Worker[
43*7594170eSAndroid Build Coastguard Worker    constraint_value(
44*7594170eSAndroid Build Coastguard Worker        name = cpu_variant,
45*7594170eSAndroid Build Coastguard Worker        constraint_setting = "cpu_variant_constraint",
46*7594170eSAndroid Build Coastguard Worker    )
47*7594170eSAndroid Build Coastguard Worker    for cpu_variant in constants.AvailableCpuVariants
48*7594170eSAndroid Build Coastguard Worker]
49*7594170eSAndroid Build Coastguard Worker
50*7594170eSAndroid Build Coastguard Worker[
51*7594170eSAndroid Build Coastguard Worker    [
52*7594170eSAndroid Build Coastguard Worker        config_setting(
53*7594170eSAndroid Build Coastguard Worker            name = variant + "-" + arch,
54*7594170eSAndroid Build Coastguard Worker            constraint_values = [
55*7594170eSAndroid Build Coastguard Worker                arch_variant_to_constraints[arch],
56*7594170eSAndroid Build Coastguard Worker                ":" + variant,
57*7594170eSAndroid Build Coastguard Worker            ],
58*7594170eSAndroid Build Coastguard Worker        )
59*7594170eSAndroid Build Coastguard Worker        for variant in variants
60*7594170eSAndroid Build Coastguard Worker    ]
61*7594170eSAndroid Build Coastguard Worker    for arch, variants in constants.CpuToVariants.items()
62*7594170eSAndroid Build Coastguard Worker]
63*7594170eSAndroid Build Coastguard Worker
64*7594170eSAndroid Build Coastguard Worker[
65*7594170eSAndroid Build Coastguard Worker    (
66*7594170eSAndroid Build Coastguard Worker        constraint_setting(
67*7594170eSAndroid Build Coastguard Worker            name = "arch_feature_constraint_" + arch_feature,
68*7594170eSAndroid Build Coastguard Worker        ),
69*7594170eSAndroid Build Coastguard Worker        constraint_value(
70*7594170eSAndroid Build Coastguard Worker            name = arch_feature,
71*7594170eSAndroid Build Coastguard Worker            constraint_setting = "arch_feature_constraint_" + arch_feature,
72*7594170eSAndroid Build Coastguard Worker        ),
73*7594170eSAndroid Build Coastguard Worker    )
74*7594170eSAndroid Build Coastguard Worker    for arch_feature in constants.AvailableArchFeatures
75*7594170eSAndroid Build Coastguard Worker]
76*7594170eSAndroid Build Coastguard Worker
77*7594170eSAndroid Build Coastguard Worker[
78*7594170eSAndroid Build Coastguard Worker    [
79*7594170eSAndroid Build Coastguard Worker        config_setting(
80*7594170eSAndroid Build Coastguard Worker            name = arch + "-" + "-".join(sorted(features)),
81*7594170eSAndroid Build Coastguard Worker            constraint_values = [
82*7594170eSAndroid Build Coastguard Worker                arch_variant_to_constraints[arch],
83*7594170eSAndroid Build Coastguard Worker            ] + [":" + feature for feature in features],
84*7594170eSAndroid Build Coastguard Worker        )
85*7594170eSAndroid Build Coastguard Worker        for features in power_set(
86*7594170eSAndroid Build Coastguard Worker            all_features,
87*7594170eSAndroid Build Coastguard Worker            include_empty = False,
88*7594170eSAndroid Build Coastguard Worker        )
89*7594170eSAndroid Build Coastguard Worker    ]
90*7594170eSAndroid Build Coastguard Worker    for arch, all_features in constants.ArchToFeatures.items()
91*7594170eSAndroid Build Coastguard Worker]
92*7594170eSAndroid Build Coastguard Worker
93*7594170eSAndroid Build Coastguard Workerpower_set_test_suite(name = "power_set_tests")
94