| # 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:versions.bzl", "print_toolchains_checksums") | |
| load(":py_exec_tools_toolchain.bzl", "current_interpreter_executable") | |
| 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 = "bzlmod_enabled_bzl", | |
| srcs = ["bzlmod_enabled.bzl"], | |
| ) | |
| bzl_library( | |
| name = "config_settings_bzl", | |
| srcs = ["config_settings.bzl"], | |
| deps = [ | |
| "//python:versions_bzl", | |
| "@bazel_skylib//lib:selects", | |
| ], | |
| ) | |
| 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"], | |
| deps = ["//python:versions_bzl"], | |
| ) | |
| bzl_library( | |
| name = "internal_config_repo_bzl", | |
| srcs = ["internal_config_repo.bzl"], | |
| deps = [":bzlmod_enabled_bzl"], | |
| ) | |
| bzl_library( | |
| name = "normalize_name_bzl", | |
| srcs = ["normalize_name.bzl"], | |
| ) | |
| bzl_library( | |
| name = "python_bzl", | |
| srcs = ["python.bzl"], | |
| deps = [ | |
| ":pythons_hub_bzl", | |
| ":toolchains_repo_bzl", | |
| ":util_bzl", | |
| "//python:repositories_bzl", | |
| "@bazel_features//:features", | |
| ], | |
| ) | |
| bzl_library( | |
| name = "pythons_hub_bzl", | |
| srcs = ["pythons_hub.bzl"], | |
| deps = [ | |
| ":full_version_bzl", | |
| ":py_toolchain_suite_bzl", | |
| "//python:versions_bzl", | |
| ], | |
| ) | |
| bzl_library( | |
| name = "py_cc_toolchain_bzl", | |
| srcs = [ | |
| "py_cc_toolchain_macro.bzl", | |
| "py_cc_toolchain_rule.bzl", | |
| ], | |
| visibility = [ | |
| "//docs:__subpackages__", | |
| "//python/cc:__pkg__", | |
| ], | |
| 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"], | |
| visibility = ["//python/cc:__pkg__"], | |
| ) | |
| bzl_library( | |
| name = "py_exec_tools_toolchain_bzl", | |
| srcs = ["py_exec_tools_toolchain.bzl"], | |
| deps = [ | |
| ":toolchain_types_bzl", | |
| "//python/private/common:providers_bzl", | |
| "@bazel_skylib//rules:common_settings", | |
| ], | |
| ) | |
| 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__"], | |
| ) | |
| 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"], | |
| ) | |
| 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 = "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", | |
| "//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"], | |
| ) | |
| 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_cc_toolchain_rule.bzl", | |
| "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") | |
| # 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"], | |
| ) |