1load("@bazel_skylib//rules:common_settings.bzl", "string_flag") 2load("//python:versions.bzl", "MINOR_MAPPING", "TOOL_VERSIONS") 3load( 4 "//python/private:flags.bzl", 5 "BootstrapImplFlag", 6 "ExecToolsToolchainFlag", 7 "PrecompileAddToRunfilesFlag", 8 "PrecompileFlag", 9 "PrecompileSourceRetentionFlag", 10 "PycCollectionFlag", 11) 12load( 13 "//python/private/pypi:flags.bzl", 14 "UniversalWhlFlag", 15 "UseWhlFlag", 16 "WhlLibcFlag", 17 "define_pypi_internal_flags", 18) 19load(":config_settings.bzl", "construct_config_settings") 20 21filegroup( 22 name = "distribution", 23 srcs = glob(["**"]) + [ 24 "//python/config_settings/private:distribution", 25 ], 26 visibility = ["//python:__pkg__"], 27) 28 29construct_config_settings( 30 name = "construct_config_settings", 31 minor_mapping = MINOR_MAPPING, 32 versions = TOOL_VERSIONS.keys(), 33) 34 35string_flag( 36 name = "exec_tools_toolchain", 37 build_setting_default = ExecToolsToolchainFlag.DISABLED, 38 values = sorted(ExecToolsToolchainFlag.__members__.values()), 39 # NOTE: Only public because it is used in py_toolchain_suite from toolchain 40 # repositories 41 visibility = ["//visibility:private"], 42) 43 44config_setting( 45 name = "is_exec_tools_toolchain_enabled", 46 flag_values = { 47 "exec_tools_toolchain": ExecToolsToolchainFlag.ENABLED, 48 }, 49 # NOTE: Only public because it is used in py_toolchain_suite from toolchain 50 # repositories 51 visibility = ["//visibility:public"], 52) 53 54string_flag( 55 name = "precompile", 56 build_setting_default = PrecompileFlag.AUTO, 57 values = sorted(PrecompileFlag.__members__.values()), 58 # NOTE: Only public because it's an implicit dependency 59 visibility = ["//visibility:public"], 60) 61 62string_flag( 63 name = "precompile_source_retention", 64 build_setting_default = PrecompileSourceRetentionFlag.AUTO, 65 values = sorted(PrecompileSourceRetentionFlag.__members__.values()), 66 # NOTE: Only public because it's an implicit dependency 67 visibility = ["//visibility:public"], 68) 69 70string_flag( 71 name = "precompile_add_to_runfiles", 72 build_setting_default = PrecompileAddToRunfilesFlag.ALWAYS, 73 values = sorted(PrecompileAddToRunfilesFlag.__members__.values()), 74 # NOTE: Only public because it's an implicit dependency 75 visibility = ["//visibility:public"], 76) 77 78string_flag( 79 name = "pyc_collection", 80 build_setting_default = PycCollectionFlag.DISABLED, 81 values = sorted(PycCollectionFlag.__members__.values()), 82 # NOTE: Only public because it's an implicit dependency 83 visibility = ["//visibility:public"], 84) 85 86string_flag( 87 name = "bootstrap_impl", 88 build_setting_default = BootstrapImplFlag.SYSTEM_PYTHON, 89 values = sorted(BootstrapImplFlag.__members__.values()), 90 # NOTE: Only public because it's an implicit dependency 91 visibility = ["//visibility:public"], 92) 93 94# This is used for pip and hermetic toolchain resolution. 95string_flag( 96 name = "py_linux_libc", 97 build_setting_default = WhlLibcFlag.GLIBC, 98 values = sorted(WhlLibcFlag.__members__.values()), 99 # NOTE: Only public because it is used in pip hub and toolchain repos. 100 visibility = ["//visibility:public"], 101) 102 103# pip.parse related flags 104 105string_flag( 106 name = "pip_whl", 107 build_setting_default = UseWhlFlag.AUTO, 108 values = sorted(UseWhlFlag.__members__.values()), 109 # NOTE: Only public because it is used in pip hub repos. 110 visibility = ["//visibility:public"], 111) 112 113config_setting( 114 name = "is_pip_whl_auto", 115 flag_values = { 116 ":pip_whl": UseWhlFlag.AUTO, 117 }, 118 # NOTE: Only public because it is used in pip hub repos. 119 visibility = ["//visibility:public"], 120) 121 122config_setting( 123 name = "is_pip_whl_no", 124 flag_values = { 125 ":pip_whl": UseWhlFlag.NO, 126 }, 127 # NOTE: Only public because it is used in pip hub repos. 128 visibility = ["//visibility:public"], 129) 130 131config_setting( 132 name = "is_pip_whl_only", 133 flag_values = { 134 ":pip_whl": UseWhlFlag.ONLY, 135 }, 136 # NOTE: Only public because it is used in pip hub repos. 137 visibility = ["//visibility:public"], 138) 139 140string_flag( 141 name = "pip_whl_osx_arch", 142 build_setting_default = UniversalWhlFlag.ARCH, 143 values = sorted(UniversalWhlFlag.__members__.values()), 144 # NOTE: Only public because it is used in pip hub repos. 145 visibility = ["//visibility:public"], 146) 147 148string_flag( 149 name = "pip_whl_glibc_version", 150 build_setting_default = "", 151 # NOTE: Only public because it is used in pip hub repos. 152 visibility = ["//visibility:public"], 153) 154 155string_flag( 156 name = "pip_whl_muslc_version", 157 build_setting_default = "", 158 # NOTE: Only public because it is used in pip hub repos. 159 visibility = ["//visibility:public"], 160) 161 162string_flag( 163 name = "pip_whl_osx_version", 164 build_setting_default = "", 165 # NOTE: Only public because it is used in pip hub repos. 166 visibility = ["//visibility:public"], 167) 168 169define_pypi_internal_flags( 170 name = "define_pypi_internal_flags", 171) 172