blob: 2742d189772fea5c4ca08062b7719d0a7d9d6cfc [file] [log] [blame]
load("@bazel_skylib//rules:common_settings.bzl", "string_flag")
load(
"//python/private:flags.bzl",
"BootstrapImplFlag",
"PrecompileAddToRunfilesFlag",
"PrecompileFlag",
"PrecompileSourceRetentionFlag",
"PycCollectionFlag",
)
load(
"//python/private:pip_flags.bzl",
"INTERNAL_FLAGS",
"UniversalWhlFlag",
"UseWhlFlag",
"WhlLibcFlag",
)
load(":config_settings.bzl", "construct_config_settings")
filegroup(
name = "distribution",
srcs = glob(["*.bzl"]) + [
"BUILD.bazel",
"//python/config_settings/private:distribution",
],
visibility = ["//python:__pkg__"],
)
construct_config_settings(
name = "construct_config_settings",
)
string_flag(
name = "precompile",
build_setting_default = PrecompileFlag.AUTO,
values = sorted(PrecompileFlag.__members__.values()),
# NOTE: Only public because it's an implicit dependency
visibility = ["//visibility:public"],
)
string_flag(
name = "precompile_source_retention",
build_setting_default = PrecompileSourceRetentionFlag.KEEP_SOURCE,
values = sorted(PrecompileSourceRetentionFlag.__members__.values()),
# NOTE: Only public because it's an implicit dependency
visibility = ["//visibility:public"],
)
string_flag(
name = "precompile_add_to_runfiles",
build_setting_default = PrecompileAddToRunfilesFlag.ALWAYS,
values = sorted(PrecompileAddToRunfilesFlag.__members__.values()),
# NOTE: Only public because it's an implicit dependency
visibility = ["//visibility:public"],
)
string_flag(
name = "pyc_collection",
build_setting_default = PycCollectionFlag.DISABLED,
values = sorted(PycCollectionFlag.__members__.values()),
# NOTE: Only public because it's an implicit dependency
visibility = ["//visibility:public"],
)
string_flag(
name = "bootstrap_impl",
build_setting_default = BootstrapImplFlag.SYSTEM_PYTHON,
values = sorted(BootstrapImplFlag.__members__.values()),
# NOTE: Only public because it's an implicit dependency
visibility = ["//visibility:public"],
)
# This is used for pip and hermetic toolchain resolution.
string_flag(
name = "py_linux_libc",
build_setting_default = WhlLibcFlag.GLIBC,
values = sorted(WhlLibcFlag.__members__.values()),
# NOTE: Only public because it is used in pip hub and toolchain repos.
visibility = ["//visibility:public"],
)
# pip.parse related flags
string_flag(
name = "pip_whl",
build_setting_default = UseWhlFlag.AUTO,
values = sorted(UseWhlFlag.__members__.values()),
# NOTE: Only public because it is used in pip hub repos.
visibility = ["//visibility:public"],
)
string_flag(
name = "pip_whl_osx_arch",
build_setting_default = UniversalWhlFlag.ARCH,
values = sorted(UniversalWhlFlag.__members__.values()),
# NOTE: Only public because it is used in pip hub repos.
visibility = ["//visibility:public"],
)
string_flag(
name = "pip_whl_glibc_version",
build_setting_default = "",
# NOTE: Only public because it is used in pip hub repos.
visibility = ["//visibility:public"],
)
string_flag(
name = "pip_whl_muslc_version",
build_setting_default = "",
# NOTE: Only public because it is used in pip hub repos.
visibility = ["//visibility:public"],
)
string_flag(
name = "pip_whl_osx_version",
build_setting_default = "",
# NOTE: Only public because it is used in pip hub repos.
visibility = ["//visibility:public"],
)
# private pip whl related flags. Their values cannot be changed and they
# are an implementation detail of how `pip_config_settings` work.
[
string_flag(
name = "_internal_pip_" + flag,
build_setting_default = "",
values = [""],
visibility = ["//visibility:public"],
)
for flag in INTERNAL_FLAGS
]