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