# Copyright (c) 2009-2022, Google LLC
# All rights reserved.
#
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file or at
# https://developers.google.com/open-source/licenses/bsd

load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
load("@bazel_skylib//lib:selects.bzl", "selects")
load("@pip_deps//:requirements.bzl", "requirement")
load("@rules_pkg//pkg:mappings.bzl", "pkg_files", "strip_prefix")
load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
load("@rules_python//python:packaging.bzl", "py_wheel")
load("@system_python//:version.bzl", "SYSTEM_PYTHON_VERSION")
load("//:protobuf_version.bzl", "PROTOBUF_PYTHON_VERSION")
load(":dist.bzl", "py_dist", "py_dist_module")
load(":py_proto_library.bzl", "py_proto_library")

licenses(["notice"])

py_dist_module(
    name = "message_mod",
    extension = "//python:_message_binary",
    module_name = "google._upb._message",
)

py_proto_library(
    name = "well_known_proto_py_pb2",
    deps = [
        "//:any_proto",
        "//:api_proto",
        "//:descriptor_proto",
        "//:duration_proto",
        "//:empty_proto",
        "//:field_mask_proto",
        "//:source_context_proto",
        "//:struct_proto",
        "//:timestamp_proto",
        "//:type_proto",
        "//:wrappers_proto",
    ],
)

py_proto_library(
    name = "plugin_py_pb2",
    deps = ["//:compiler_plugin_proto"],
)

config_setting(
    name = "linux_aarch64_release",
    flag_values = {
        "//toolchain:release": "True",
    },
    values = {"cpu": "linux-aarch_64"},
)

config_setting(
    name = "linux_aarch64_local",
    constraint_values = [
        "@platforms//os:linux",
        "@platforms//cpu:aarch64",
    ],
    flag_values = {
        "//toolchain:release": "False",
    },
)

config_setting(
    name = "linux_x86_64_release",
    flag_values = {
        "//toolchain:release": "True",
    },
    values = {"cpu": "linux-x86_64"},
)

config_setting(
    name = "linux_x86_64_local",
    constraint_values = [
        "@platforms//os:linux",
        "@platforms//cpu:x86_64",
    ],
    flag_values = {
        "//toolchain:release": "False",
    },
)

# s390x support is community-maintained and not officially supported. We do not
# publish s390x wheels.
config_setting(
    name = "linux_s390x_release_unused",
    flag_values = {
        "//toolchain:release": "True",
    },
    values = {"cpu": "linux-s390x"},
)

config_setting(
    name = "linux_s390x_local_unused",
    constraint_values = [
        "@platforms//os:linux",
        "@platforms//cpu:s390x",
    ],
    flag_values = {
        "//toolchain:release": "False",
    },
)

config_setting(
    name = "osx_x86_64_release",
    flag_values = {
        "//toolchain:release": "True",
    },
    values = {"cpu": "osx-x86_64"},
)

config_setting(
    name = "osx_x86_64_local",
    constraint_values = [
        "@platforms//os:osx",
        "@platforms//cpu:x86_64",
    ],
    flag_values = {
        "//toolchain:release": "False",
    },
)

selects.config_setting_group(
    name = "osx_x86_64",
    match_any = [
        ":osx_x86_64_release",
        ":osx_x86_64_local",
    ],
)

config_setting(
    name = "osx_aarch64_release",
    flag_values = {
        "//toolchain:release": "True",
    },
    values = {"cpu": "osx-aarch_64"},
)

config_setting(
    name = "osx_aarch64_local",
    constraint_values = [
        "@platforms//os:osx",
        "@platforms//cpu:aarch64",
    ],
    flag_values = {
        "//toolchain:release": "False",
    },
)

selects.config_setting_group(
    name = "osx_aarch64",
    match_any = [
        ":osx_aarch64_release",
        ":osx_aarch64_local",
    ],
)

config_setting(
    name = "osx_universal2",
    values = {"cpu": "osx-universal2"},
)

config_setting(
    name = "windows_x86_32_release",
    flag_values = {
        "//toolchain:release": "True",
    },
    values = {"cpu": "win32"},
)

config_setting(
    name = "windows_x86_32_local",
    constraint_values = [
        "@platforms//os:windows",
        "@platforms//cpu:x86_32",
    ],
    flag_values = {
        "//toolchain:release": "False",
    },
)

selects.config_setting_group(
    name = "windows_x86_32",
    match_any = [
        ":windows_x86_32_release",
        ":windows_x86_32_local",
    ],
)

config_setting(
    name = "windows_x86_64_release",
    flag_values = {
        "//toolchain:release": "True",
    },
    values = {"cpu": "win64"},
)

config_setting(
    name = "windows_x86_64_local",
    constraint_values = [
        "@platforms//os:windows",
        "@platforms//cpu:x86_64",
    ],
    flag_values = {
        "//toolchain:release": "False",
    },
)

selects.config_setting_group(
    name = "windows_x86_64",
    match_any = [
        ":windows_x86_64_release",
        ":windows_x86_64_local",
    ],
)

pkg_files(
    name = "generated_wkt",
    srcs = [
        ":well_known_proto_py_pb2",
        "//src/google/protobuf:descriptor_upb_c_proto",
        "//src/google/protobuf:descriptor_upb_minitable_proto",
        "//src/google/protobuf:descriptor_upb_reflection_proto",
        "//upb/reflection:descriptor_upb_proto",
    ],
    prefix = "google/protobuf",
)

pkg_files(
    name = "generated_wkt_compiler",
    srcs = [
        ":plugin_py_pb2",
    ],
    prefix = "google/protobuf/compiler",
)

pkg_files(
    name = "utf8_range_source_files",
    srcs = ["//third_party/utf8_range:utf8_range_srcs"],
    prefix = "utf8_range",
)

pkg_files(
    name = "dist_source_files",
    srcs = [
        "MANIFEST.in",
        "setup.py",
    ],
)

# Passing filegroups to pkg_tar directly results in incorrect
# `protobuf/external/upb/` directory structure when built from the protobuf
# repo. This can be removed once repositories are merged.
pkg_files(
    name = "filegroup_source_files",
    srcs = [
        "//:LICENSE",
        "//python:message_srcs",
        "//upb:source_files",
        "//upb/base:source_files",
        "//upb/hash:source_files",
        "//upb/lex:source_files",
        "//upb/mem:source_files",
        "//upb/message:source_files",
        "//upb/mini_descriptor:source_files",
        "//upb/mini_table:source_files",
        "//upb/port:source_files",
        "//upb/reflection:source_files",
        "//upb/text:source_files",
        "//upb/util:source_files",
        "//upb/wire:source_files",
    ],
    strip_prefix = strip_prefix.from_root(""),
)

# NOTE: This package currently only works for macos and ubuntu, MSVC users
# should use a binary wheel.
pkg_tar(
    name = "source_tarball",
    srcs = [
        ":dist_source_files",
        ":filegroup_source_files",
        ":generated_wkt",
        ":generated_wkt_compiler",
        ":utf8_range_source_files",
        "//python:python_source_files",
    ],
    extension = "tar.gz",
    package_dir = "protobuf",
    package_file_name = "protobuf.tar.gz",
    strip_prefix = ".",
    target_compatible_with = select({
        "@system_python//:none": ["@platforms//:incompatible"],
        "//conditions:default": [],
    }),
)

genrule(
    name = "source_wheel",
    srcs = [":source_tarball"],
    outs = ["protobuf-%s.tar.gz" % PROTOBUF_PYTHON_VERSION],
    cmd = """
        export PYTHONPATH=$$PWD/external/pip_deps_setuptools/site-packages
        set -eux
        tar -xzvf $(location :source_tarball)
        cd protobuf/
        python3 setup.py sdist
        cd ..
        mv protobuf/dist/*.tar.gz $@
    """,
    target_compatible_with = select({
        "@system_python//:none": ["@platforms//:incompatible"],
        "//conditions:default": [],
    }),
    tools = [requirement("setuptools")],
)

py_wheel(
    name = "binary_wheel",
    abi = select({
        "//python:full_api_3.9": "cp39",
        "//conditions:default": "abi3",
    }),
    author = "protobuf@googlegroups.com",
    author_email = "protobuf@googlegroups.com",
    classifiers = [
        "Programming Language :: Python",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.9",
        "Programming Language :: Python :: 3.10",
        "Programming Language :: Python :: 3.11",
        "Programming Language :: Python :: 3.12",
        "Programming Language :: Python :: 3.13",
    ],
    distribution = "protobuf",
    extra_distinfo_files = {
        "//:LICENSE": "LICENSE",
    },
    homepage = "https://developers.google.com/protocol-buffers/",
    license = "3-Clause BSD License",
    platform = select({
        ":linux_x86_64_local": "linux_x86_64",
        ":linux_x86_64_release": "manylinux2014_x86_64",
        ":linux_aarch64_local": "linux_aarch64",
        ":linux_aarch64_release": "manylinux2014_aarch64",
        ":linux_s390x_local_unused": "linux_s390x",
        ":linux_s390x_release_unused": "manylinux2014_s390x",
        ":osx_universal2": "macosx_10_9_universal2",
        ":osx_aarch64": "macosx_11_0_arm64",
        ":windows_x86_32": "win32",
        ":windows_x86_64": "win_amd64",
        "//conditions:default": "any",
    }),
    python_requires = ">=3.9",
    # LINT.IfChange(python_tag)
    python_tag = selects.with_or({
        ("//python:limited_api_3.9", "//python:full_api_3.9"): "cp39",
        "//python:limited_api_3.10": "cp310",
        "//conditions:default": "cp" + SYSTEM_PYTHON_VERSION,
    }),
    # LINT.ThenChange(
    #    :full_api_version,
    #    :limited_api_wheels,
    # )
    strip_path_prefixes = [
        "python/dist/",
        "python/",
        "src/",
    ],
    target_compatible_with = select({
        "@system_python//:none": ["@platforms//:incompatible"],
        "//conditions:default": [],
    }),
    version = PROTOBUF_PYTHON_VERSION,
    deps = [
        ":message_mod",
        ":plugin_py_pb2",
        ":well_known_proto_py_pb2",
        "//:python_srcs",
    ],
)

py_wheel(
    name = "pure_python_wheel",
    abi = "none",
    author = "protobuf@googlegroups.com",
    author_email = "protobuf@googlegroups.com",
    classifiers = [
        "Programming Language :: Python",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.9",
        "Programming Language :: Python :: 3.10",
        "Programming Language :: Python :: 3.11",
        "Programming Language :: Python :: 3.12",
        "Programming Language :: Python :: 3.13",
    ],
    distribution = "protobuf",
    extra_distinfo_files = {
        "//:LICENSE": "LICENSE",
    },
    homepage = "https://developers.google.com/protocol-buffers/",
    license = "3-Clause BSD License",
    platform = "any",
    python_requires = ">=3.9",
    python_tag = "py3",
    strip_path_prefixes = [
        "python/",
        "src/",
    ],
    target_compatible_with = select({
        "@system_python//:none": ["@platforms//:incompatible"],
        "//conditions:default": [],
    }),
    version = PROTOBUF_PYTHON_VERSION,
    deps = [
        ":plugin_py_pb2",
        ":well_known_proto_py_pb2",
        "//:python_srcs",
    ],
)

py_wheel(
    name = "test_wheel",
    testonly = True,
    abi = "none",
    distribution = "protobuftests",
    extra_distinfo_files = {
        "//:LICENSE": "LICENSE",
    },
    platform = "any",
    python_tag = "py3",
    strip_path_prefixes = [
        "python/",
        "src/",
    ],
    target_compatible_with = select({
        "@system_python//:none": ["@platforms//:incompatible"],
        "//conditions:default": [],
    }),
    version = PROTOBUF_PYTHON_VERSION,
    deps = [
        "//:python_common_test_protos",
        "//:python_specific_test_protos",
        "//:python_test_srcs",
        "//python/pb_unit_tests:test_files",
        "//src/google/protobuf:testdata",
        "@com_google_absl_py//absl/testing:parameterized",
    ],
)

py_dist(
    name = "dist",
    binary_wheel = ":binary_wheel",
    full_api_cpus = [
        "win32",
        "win64",
    ],
    # Windows needs version-specific wheels until 3.10.
    # LINT.IfChange(full_api_version)
    full_api_versions = [
        "39",
    ],
    # LINT.ThenChange(:python_tag)
    # Limited API: these wheels will satisfy any Python version >= the
    # given version.
    #
    # Technically the limited API doesn't have the functions we need until
    # 3.10, but on Linux we can get away with using 3.1+ (see ../python_api.h for
    # details).
    # LINT.IfChange(limited_api_wheels)
    limited_api_wheels = {
        "win32": "310",
        "win64": "310",
        "linux-x86_64": "39",
        "linux-aarch_64": "39",
        "osx-universal2": "39",
    },
    # LINT.ThenChange(:python_tag)
    pure_python_wheel = ":pure_python_wheel",
    tags = ["manual"],
)

# py_proto_library() is private rule, only intended for internal use by upb.
# Hopefully py_proto_library() will eventually be available in rules_proto or
# another upstream package.
bzl_library(
    name = "py_proto_library_bzl",
    srcs = ["py_proto_library.bzl"],
    deps = [
        "@rules_python//python:py_info_bzl",
    ],
)
