# 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") 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 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(["**"]), )