# Internal Starlark definitions for Protobuf.

load("@bazel_skylib//lib:selects.bzl", "selects")
load("@rules_pkg//pkg:mappings.bzl", "pkg_files", "strip_prefix")
load("//bazel:cc_proto_library.bzl", starlark_cc_proto_library = "cc_proto_library")
load(":cc_proto_blacklist_test.bzl", "cc_proto_blacklist_test")
load(":compiler_config_setting.bzl", "create_compiler_config_setting")

package(
    default_visibility = [
        # Public, but Protobuf only visibility.
        "//:__subpackages__",
    ],
)

create_compiler_config_setting(
    name = "config_msvc",
    value = "msvc-cl",
)

config_setting(
    name = "aarch64",
    values = {"cpu": "linux-aarch_64"},
)

config_setting(
    name = "x86_64",
    values = {"cpu": "linux-x86_64"},
)

# Android NDK builds can specify different crosstool_top flags to choose which
# STL they use for C++. We need these multiple variants to catch all of those
# versions of crosstool_top and reliably detect Android.
#
# For more info on the various crosstool_tops used by NDK Bazel builds, see:
# https://docs.bazel.build/versions/master/android-ndk.html#configuring-the-stl

# When using https://bazel.build/concepts/platforms
config_setting(
    name = "config_android",
    constraint_values = ["@platforms//os:android"],
)

# When using legacy flags like --android_crosstool_top, --android_cpu, and --fat_apk_cpu
config_setting(
    name = "config_android-legacy-default-crosstool",
    values = {
        # Default of `--android_crosstool_top`
        "crosstool_top": "//external:android/crosstool",
    },
)

config_setting(
    name = "config_android-stlport",
    values = {
        "crosstool_top": "@androidndk//:toolchain-stlport",
    },
)

config_setting(
    name = "config_android-libcpp",
    values = {
        "crosstool_top": "@androidndk//:toolchain-libcpp",
    },
)

config_setting(
    name = "config_android-gnu-libstdcpp",
    values = {
        "crosstool_top": "@androidndk//:toolchain-gnu-libstdcpp",
    },
)

config_setting(
    name = "config_android-default",
    values = {
        "crosstool_top": "@androidndk//:default_crosstool",
    },
)

config_setting(
    name = "config_win32",
    values = {
        "cpu": "win32",
    },
)

config_setting(
    name = "config_win64",
    values = {
        "cpu": "win64",
    },
)

selects.config_setting_group(
    name = "config_win",
    match_any = [
        ":config_win32",
        ":config_win64",
    ],
)

config_setting(
    name = "config_osx_aarch64",
    values = {"cpu": "osx-aarch_64"},
)

config_setting(
    name = "config_osx_x86_64",
    values = {"cpu": "osx-x86_64"},
)

selects.config_setting_group(
    name = "config_osx",
    match_any = [
        ":config_osx_aarch64",
        ":config_osx_x86_64",
    ],
)

# Internal testing:

starlark_cc_proto_library(
    name = "any_cc_proto",
    visibility = ["//visibility:private"],
    deps = ["//:any_proto"],
)

starlark_cc_proto_library(
    name = "api_cc_proto",
    visibility = ["//visibility:private"],
    deps = ["//:api_proto"],
)

starlark_cc_proto_library(
    name = "compiler_plugin_cc_proto",
    visibility = ["//visibility:private"],
    deps = ["//:compiler_plugin_proto"],
)

starlark_cc_proto_library(
    name = "descriptor_cc_proto",
    visibility = ["//visibility:private"],
    deps = ["//:descriptor_proto"],
)

starlark_cc_proto_library(
    name = "duration_cc_proto",
    visibility = ["//visibility:private"],
    deps = ["//:duration_proto"],
)

starlark_cc_proto_library(
    name = "empty_cc_proto",
    visibility = ["//visibility:private"],
    deps = ["//:empty_proto"],
)

starlark_cc_proto_library(
    name = "field_mask_cc_proto",
    visibility = ["//visibility:private"],
    deps = ["//:field_mask_proto"],
)

starlark_cc_proto_library(
    name = "source_context_cc_proto",
    visibility = ["//visibility:private"],
    deps = ["//:source_context_proto"],
)

starlark_cc_proto_library(
    name = "struct_cc_proto",
    visibility = ["//visibility:private"],
    deps = ["//:struct_proto"],
)

starlark_cc_proto_library(
    name = "timestamp_cc_proto",
    visibility = ["//visibility:private"],
    deps = ["//:timestamp_proto"],
)

starlark_cc_proto_library(
    name = "type_cc_proto",
    visibility = ["//visibility:private"],
    deps = ["//:type_proto"],
)

starlark_cc_proto_library(
    name = "wrappers_cc_proto",
    visibility = ["//visibility:private"],
    deps = ["//:wrappers_proto"],
)

cc_proto_blacklist_test(
    name = "cc_proto_blacklist_test",
    deps = [
        ":any_cc_proto",
        ":api_cc_proto",
        ":compiler_plugin_cc_proto",
        ":descriptor_cc_proto",
        ":duration_cc_proto",
        ":empty_cc_proto",
        ":field_mask_cc_proto",
        ":source_context_cc_proto",
        ":struct_cc_proto",
        ":timestamp_cc_proto",
        ":type_cc_proto",
        ":wrappers_cc_proto",
    ],
)

pkg_files(
    name = "dist_files",
    srcs = glob(["*"]),
    strip_prefix = strip_prefix.from_root(""),
    visibility = ["//pkg:__pkg__"],
)
