# Package for C/C++ specific functionality of the Python rules.

load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
load("//python/private:bzlmod_enabled.bzl", "BZLMOD_ENABLED")
load("//python/private:current_py_cc_headers.bzl", "current_py_cc_headers", "current_py_cc_headers_abi3")
load("//python/private:current_py_cc_libs.bzl", "current_py_cc_libs")

package(
    default_visibility = ["//:__subpackages__"],
)

# This target provides the C headers for whatever the current toolchain is
# for the consuming rule. It basically acts like a cc_library by forwarding
# on the providers for the underlying cc_library that the toolchain is using.
current_py_cc_headers(
    name = "current_py_cc_headers",
    # Building this directly will fail unless a py cc toolchain is registered,
    # and it's only under bzlmod that one is registered by default.
    tags = [] if BZLMOD_ENABLED else ["manual"],
    visibility = ["//visibility:public"],
)

# This target provides the C ABI3 headers for whatever the current toolchain is
# for the consuming rule. It basically acts like a cc_library by forwarding
# on the providers for the underlying cc_library that the toolchain is using.
current_py_cc_headers_abi3(
    name = "current_py_cc_headers_abi3",
    # Building this directly will fail unless a py cc toolchain is registered,
    # and it's only under bzlmod that one is registered by default.
    tags = [] if BZLMOD_ENABLED else ["manual"],
    visibility = ["//visibility:public"],
)

# This target provides the C libraries for whatever the current toolchain is for
# the consuming rule. It basically acts like a cc_library by forwarding on the
# providers for the underlying cc_library that the toolchain is using.
current_py_cc_libs(
    name = "current_py_cc_libs",
    # Building this directly will fail unless a py cc toolchain is registered,
    # and it's only under bzlmod that one is registered by default.
    tags = [] if BZLMOD_ENABLED else ["manual"],
    visibility = ["//visibility:public"],
)

toolchain_type(
    name = "toolchain_type",
    visibility = ["//visibility:public"],
)

bzl_library(
    name = "py_cc_toolchain_bzl",
    srcs = ["py_cc_toolchain.bzl"],
    visibility = ["//visibility:public"],
    deps = ["//python/private:py_cc_toolchain_macro_bzl"],
)

bzl_library(
    name = "py_cc_toolchain_info_bzl",
    srcs = ["py_cc_toolchain_info.bzl"],
    visibility = ["//visibility:public"],
    deps = ["//python/private:py_cc_toolchain_info_bzl"],
)

filegroup(
    name = "distribution",
    srcs = glob(["**"]),
)
