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