# 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",
)
