| # Copyright 2021 The Bazel Authors. All rights reserved. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| load("@bazel_skylib//:bzl_library.bzl", "bzl_library") |
| load("@bazel_skylib//rules:common_settings.bzl", "bool_setting") |
| load("//python:py_binary.bzl", "py_binary") |
| load("//python:py_library.bzl", "py_library") |
| load("//python:versions.bzl", "print_toolchains_checksums") |
| load(":py_exec_tools_toolchain.bzl", "current_interpreter_executable") |
| load(":sentinel.bzl", "sentinel") |
| load(":stamp.bzl", "stamp_build_setting") |
| |
| package( |
| default_visibility = ["//:__subpackages__"], |
| ) |
| |
| licenses(["notice"]) |
| |
| filegroup( |
| name = "distribution", |
| srcs = glob(["**"]) + [ |
| "//python/private/common:distribution", |
| "//python/private/proto:distribution", |
| "//python/private/pypi:distribution", |
| "//python/private/whl_filegroup:distribution", |
| "//tools/build_defs/python/private:distribution", |
| ], |
| visibility = ["//python:__pkg__"], |
| ) |
| |
| filegroup( |
| name = "coverage_deps", |
| srcs = ["coverage_deps.bzl"], |
| visibility = ["//tools/private/update_deps:__pkg__"], |
| ) |
| |
| # Filegroup of bzl files that can be used by downstream rules for documentation generation |
| filegroup( |
| name = "bzl", |
| srcs = glob(["**/*.bzl"]), |
| visibility = ["//python:__pkg__"], |
| ) |
| |
| bzl_library( |
| name = "auth_bzl", |
| srcs = ["auth.bzl"], |
| deps = [":bazel_tools_bzl"], |
| ) |
| |
| bzl_library( |
| name = "runtime_env_toolchain_bzl", |
| srcs = ["runtime_env_toolchain.bzl"], |
| deps = [ |
| ":py_exec_tools_toolchain_bzl", |
| ":toolchain_types_bzl", |
| "//python:py_runtime_bzl", |
| "//python:py_runtime_pair_bzl", |
| ], |
| ) |
| |
| bzl_library( |
| name = "builders_bzl", |
| srcs = ["builders.bzl"], |
| deps = [ |
| "@bazel_skylib//lib:types", |
| ], |
| ) |
| |
| bzl_library( |
| name = "bzlmod_enabled_bzl", |
| srcs = ["bzlmod_enabled.bzl"], |
| ) |
| |
| bzl_library( |
| name = "config_settings_bzl", |
| srcs = ["config_settings.bzl"], |
| deps = [ |
| ":semver_bzl", |
| "@bazel_skylib//lib:selects", |
| "@bazel_skylib//rules:common_settings", |
| ], |
| ) |
| |
| bzl_library( |
| name = "coverage_deps_bzl", |
| srcs = ["coverage_deps.bzl"], |
| deps = [ |
| ":bazel_tools_bzl", |
| ":version_label_bzl", |
| ], |
| ) |
| |
| bzl_library( |
| name = "enum_bzl", |
| srcs = ["enum.bzl"], |
| ) |
| |
| bzl_library( |
| name = "envsubst_bzl", |
| srcs = ["envsubst.bzl"], |
| ) |
| |
| bzl_library( |
| name = "flags_bzl", |
| srcs = ["flags.bzl"], |
| deps = [ |
| ":enum_bzl", |
| "@bazel_skylib//rules:common_settings", |
| ], |
| ) |
| |
| bzl_library( |
| name = "full_version_bzl", |
| srcs = ["full_version.bzl"], |
| ) |
| |
| bzl_library( |
| name = "internal_config_repo_bzl", |
| srcs = ["internal_config_repo.bzl"], |
| deps = [":bzlmod_enabled_bzl"], |
| ) |
| |
| bzl_library( |
| name = "is_standalone_interpreter_bzl", |
| srcs = ["is_standalone_interpreter.bzl"], |
| deps = [ |
| ":repo_utils_bzl", |
| ], |
| ) |
| |
| bzl_library( |
| name = "normalize_name_bzl", |
| srcs = ["normalize_name.bzl"], |
| ) |
| |
| bzl_library( |
| name = "python_bzl", |
| srcs = ["python.bzl"], |
| deps = [ |
| ":full_version_bzl", |
| ":python_register_toolchains_bzl", |
| ":pythons_hub_bzl", |
| ":repo_utils_bzl", |
| ":semver_bzl", |
| ":toolchains_repo_bzl", |
| ":util_bzl", |
| "@bazel_features//:features", |
| ], |
| ) |
| |
| bzl_library( |
| name = "py_repositories_bzl", |
| srcs = ["py_repositories.bzl"], |
| deps = [ |
| ":bazel_tools_bzl", |
| ":internal_config_repo_bzl", |
| ":pythons_hub_bzl", |
| "//python:versions_bzl", |
| "//python/private/pypi:deps_bzl", |
| ], |
| ) |
| |
| bzl_library( |
| name = "python_register_toolchains_bzl", |
| srcs = ["python_register_toolchains.bzl"], |
| deps = [ |
| ":auth_bzl", |
| ":bazel_tools_bzl", |
| ":coverage_deps_bzl", |
| ":full_version_bzl", |
| ":internal_config_repo_bzl", |
| ":python_repository_bzl", |
| ":toolchains_repo_bzl", |
| "//python:versions_bzl", |
| "//python/private/pypi:deps_bzl", |
| ], |
| ) |
| |
| bzl_library( |
| name = "python_repository_bzl", |
| srcs = ["python_repository.bzl"], |
| deps = [ |
| ":auth_bzl", |
| ":repo_utils_bzl", |
| ":text_util_bzl", |
| "//python:versions_bzl", |
| ], |
| ) |
| |
| bzl_library( |
| name = "python_register_multi_toolchains_bzl", |
| srcs = ["python_register_multi_toolchains.bzl"], |
| deps = [ |
| ":python_register_toolchains_bzl", |
| ":toolchains_repo_bzl", |
| "//python:versions_bzl", |
| ], |
| ) |
| |
| bzl_library( |
| name = "pythons_hub_bzl", |
| srcs = ["pythons_hub.bzl"], |
| deps = [ |
| ":py_toolchain_suite_bzl", |
| ":text_util_bzl", |
| ], |
| ) |
| |
| bzl_library( |
| name = "py_cc_toolchain_macro_bzl", |
| srcs = ["py_cc_toolchain_macro.bzl"], |
| deps = [ |
| ":py_cc_toolchain_rule_bzl", |
| ], |
| ) |
| |
| bzl_library( |
| name = "py_cc_toolchain_rule_bzl", |
| srcs = ["py_cc_toolchain_rule.bzl"], |
| deps = [ |
| ":py_cc_toolchain_info_bzl", |
| ":rules_cc_srcs_bzl", |
| ":util_bzl", |
| "@bazel_skylib//rules:common_settings", |
| ], |
| ) |
| |
| bzl_library( |
| name = "py_cc_toolchain_info_bzl", |
| srcs = ["py_cc_toolchain_info.bzl"], |
| ) |
| |
| bzl_library( |
| name = "py_console_script_binary_bzl", |
| srcs = [ |
| "py_console_script_binary.bzl", |
| "py_console_script_gen.bzl", |
| ], |
| visibility = ["//python/entry_points:__pkg__"], |
| deps = [ |
| "//python:py_binary_bzl", |
| ], |
| ) |
| |
| bzl_library( |
| name = "py_exec_tools_info_bzl", |
| srcs = ["py_exec_tools_info.bzl"], |
| ) |
| |
| bzl_library( |
| name = "py_exec_tools_toolchain_bzl", |
| srcs = ["py_exec_tools_toolchain.bzl"], |
| deps = [ |
| ":py_exec_tools_info_bzl", |
| ":sentinel_bzl", |
| ":toolchain_types_bzl", |
| "//python/private/common:providers_bzl", |
| "@bazel_skylib//lib:paths", |
| "@bazel_skylib//rules:common_settings", |
| ], |
| ) |
| |
| bzl_library( |
| name = "py_executable_info_bzl", |
| srcs = ["py_executable_info.bzl"], |
| ) |
| |
| bzl_library( |
| name = "py_info_bzl", |
| srcs = ["py_info.bzl"], |
| deps = [ |
| ":builders_bzl", |
| ":reexports_bzl", |
| ":util_bzl", |
| "@rules_python_internal//:rules_python_config_bzl", |
| ], |
| ) |
| |
| bzl_library( |
| name = "py_interpreter_program_bzl", |
| srcs = ["py_interpreter_program.bzl"], |
| deps = ["@bazel_skylib//rules:common_settings"], |
| ) |
| |
| bzl_library( |
| name = "py_package_bzl", |
| srcs = ["py_package.bzl"], |
| visibility = ["//:__subpackages__"], |
| deps = [ |
| ":builders_bzl", |
| ":py_info_bzl", |
| ], |
| ) |
| |
| bzl_library( |
| name = "py_runtime_pair_macro_bzl", |
| srcs = ["py_runtime_pair_macro.bzl"], |
| visibility = ["//:__subpackages__"], |
| deps = [":py_runtime_pair_rule_bzl"], |
| ) |
| |
| bzl_library( |
| name = "py_runtime_pair_rule_bzl", |
| srcs = ["py_runtime_pair_rule.bzl"], |
| deps = [ |
| "//python:py_runtime_bzl", |
| "//python:py_runtime_info_bzl", |
| "@bazel_skylib//rules:common_settings", |
| ], |
| ) |
| |
| bzl_library( |
| name = "py_toolchain_suite_bzl", |
| srcs = ["py_toolchain_suite.bzl"], |
| deps = [ |
| ":config_settings_bzl", |
| ":text_util_bzl", |
| ":toolchain_types_bzl", |
| "@bazel_skylib//lib:selects", |
| ], |
| ) |
| |
| bzl_library( |
| name = "py_wheel_bzl", |
| srcs = ["py_wheel.bzl"], |
| visibility = ["//:__subpackages__"], |
| deps = [ |
| ":py_package_bzl", |
| ":stamp_bzl", |
| ], |
| ) |
| |
| bzl_library( |
| name = "reexports_bzl", |
| srcs = ["reexports.bzl"], |
| visibility = [ |
| "//:__subpackages__", |
| ], |
| deps = [ |
| ":bazel_tools_bzl", |
| "@rules_python_internal//:rules_python_config_bzl", |
| ], |
| ) |
| |
| bzl_library( |
| name = "register_extension_info_bzl", |
| srcs = ["register_extension_info.bzl"], |
| ) |
| |
| bzl_library( |
| name = "repo_utils_bzl", |
| srcs = ["repo_utils.bzl"], |
| ) |
| |
| bzl_library( |
| name = "semver_bzl", |
| srcs = ["semver.bzl"], |
| ) |
| |
| bzl_library( |
| name = "sentinel_bzl", |
| srcs = ["sentinel.bzl"], |
| ) |
| |
| bzl_library( |
| name = "stamp_bzl", |
| srcs = ["stamp.bzl"], |
| visibility = ["//:__subpackages__"], |
| ) |
| |
| bzl_library( |
| name = "text_util_bzl", |
| srcs = ["text_util.bzl"], |
| ) |
| |
| bzl_library( |
| name = "toolchains_repo_bzl", |
| srcs = ["toolchains_repo.bzl"], |
| deps = [ |
| ":repo_utils_bzl", |
| ":text_util_bzl", |
| "//python:versions_bzl", |
| ], |
| ) |
| |
| bzl_library( |
| name = "toolchain_types_bzl", |
| srcs = ["toolchain_types.bzl"], |
| ) |
| |
| bzl_library( |
| name = "util_bzl", |
| srcs = ["util.bzl"], |
| visibility = [ |
| "//:__subpackages__", |
| ], |
| deps = [ |
| "@bazel_skylib//lib:types", |
| "@rules_python_internal//:rules_python_config_bzl", |
| ], |
| ) |
| |
| bzl_library( |
| name = "version_label_bzl", |
| srcs = ["version_label.bzl"], |
| ) |
| |
| # @bazel_tools can't define bzl_library itself, so we just put a wrapper around it. |
| bzl_library( |
| name = "bazel_tools_bzl", |
| srcs = [ |
| # This set of sources is overly broad, but it's the only public |
| # target available across Bazel versions that has all the necessary |
| # sources. |
| "@bazel_tools//tools:bzl_srcs", |
| ], |
| ) |
| |
| # @rules_cc does not offer a bzl_library target for @rules_cc//cc:defs.bzl |
| bzl_library( |
| name = "rules_cc_srcs_bzl", |
| srcs = ["@rules_cc//cc:bzl_srcs"], |
| deps = [":bazel_tools_bzl"], |
| ) |
| |
| # Needed to define bzl_library targets for docgen. (We don't define the |
| # bzl_library target here because it'd give our users a transitive dependency |
| # on Skylib.) |
| exports_files( |
| [ |
| "coverage.patch", |
| "repack_whl.py", |
| "py_package.bzl", |
| "py_wheel.bzl", |
| "py_wheel_normalize_pep440.bzl", |
| "reexports.bzl", |
| "stamp.bzl", |
| "util.bzl", |
| ], |
| visibility = ["//:__subpackages__"], |
| ) |
| |
| exports_files( |
| ["python_bootstrap_template.txt"], |
| # Not actually public. Only public because it's an implicit dependency of |
| # py_runtime. |
| visibility = ["//visibility:public"], |
| ) |
| |
| filegroup( |
| name = "stage1_bootstrap_template", |
| srcs = ["stage1_bootstrap_template.sh"], |
| # Not actually public. Only public because it's an implicit dependency of |
| # py_runtime. |
| visibility = ["//visibility:public"], |
| ) |
| |
| filegroup( |
| name = "stage2_bootstrap_template", |
| srcs = ["stage2_bootstrap_template.py"], |
| # Not actually public. Only public because it's an implicit dependency of |
| # py_runtime. |
| visibility = ["//visibility:public"], |
| ) |
| |
| filegroup( |
| name = "zip_main_template", |
| srcs = ["zip_main_template.py"], |
| # Not actually public. Only public because it's an implicit dependency of |
| # py_runtime. |
| visibility = ["//visibility:public"], |
| ) |
| |
| # NOTE: Windows builds don't use this bootstrap. Instead, a native Windows |
| # program locates some Python exe and runs `python.exe foo.zip` which |
| # runs the __main__.py in the zip file. |
| alias( |
| name = "bootstrap_template", |
| actual = select({ |
| ":is_script_bootstrap_enabled": "stage1_bootstrap_template.sh", |
| "//conditions:default": "python_bootstrap_template.txt", |
| }), |
| # Not actually public. Only public because it's an implicit dependency of |
| # py_runtime. |
| visibility = ["//visibility:public"], |
| ) |
| |
| # Used to determine the use of `--stamp` in Starlark rules |
| stamp_build_setting(name = "stamp") |
| |
| config_setting( |
| name = "is_script_bootstrap_enabled", |
| flag_values = { |
| "//python/config_settings:bootstrap_impl": "script", |
| }, |
| ) |
| |
| # This should only be set by analysis tests to expose additional metadata to |
| # aid testing, so a setting instead of a flag. |
| bool_setting( |
| name = "visible_for_testing", |
| build_setting_default = False, |
| # This is only because it is an implicit dependency by the toolchains. |
| visibility = ["//visibility:public"], |
| ) |
| |
| print_toolchains_checksums(name = "print_toolchains_checksums") |
| |
| # Used for py_console_script_gen rule |
| py_binary( |
| name = "py_console_script_gen_py", |
| srcs = ["py_console_script_gen.py"], |
| main = "py_console_script_gen.py", |
| visibility = [ |
| "//visibility:public", |
| ], |
| ) |
| |
| py_binary( |
| name = "py_wheel_dist", |
| srcs = ["py_wheel_dist.py"], |
| visibility = ["//visibility:public"], |
| ) |
| |
| py_library( |
| name = "py_console_script_gen_lib", |
| srcs = ["py_console_script_gen.py"], |
| imports = ["../.."], |
| visibility = [ |
| "//tests/entry_points:__pkg__", |
| ], |
| ) |
| |
| # The current toolchain's interpreter as an excutable, usable with |
| # executable=True attributes. |
| current_interpreter_executable( |
| name = "current_interpreter_executable", |
| # Not actually public. Only public because it's an implicit dependency of |
| # py_exec_tools_toolchain. |
| visibility = ["//visibility:public"], |
| ) |
| |
| sentinel( |
| name = "sentinel", |
| ) |