# Protobuf IO library.

load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
load("//build_defs:cpp_opts.bzl", "COPTS")

package(
    default_visibility = ["//visibility:public"],
)

cc_library(
    name = "io",
    srcs = [
        "coded_stream.cc",
        "zero_copy_stream.cc",
        "zero_copy_stream_impl.cc",
        "zero_copy_stream_impl_lite.cc",
    ],
    hdrs = [
        "coded_stream.h",
        "zero_copy_stream.h",
        "zero_copy_stream_impl.h",
        "zero_copy_stream_impl_lite.h",
    ],
    copts = COPTS,
    include_prefix = "google/protobuf/io",
    deps = [
        ":io_win32",
        "//src/google/protobuf:arena",
        "//src/google/protobuf/stubs:lite",
        "@com_google_absl//absl/strings:internal",
    ],
)

cc_library(
    name = "zero_copy_sink",
    srcs = ["zero_copy_sink.cc"],
    hdrs = ["zero_copy_sink.h"],
    copts = COPTS,
    strip_include_prefix = "/src",
    deps = [
        ":io",
        "//src/google/protobuf/stubs",
    ],
)

cc_test(
    name = "zero_copy_sink_test",
    srcs = ["zero_copy_sink_test.cc"],
    copts = COPTS,
    deps = [
        ":zero_copy_sink",
        "//src/google/protobuf/stubs",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_library(
    name = "printer",
    srcs = ["printer.cc"],
    hdrs = ["printer.h"],
    copts = COPTS,
    include_prefix = "google/protobuf/io",
    deps = [
        ":zero_copy_sink",
        "//src/google/protobuf/stubs",
        "@com_google_absl//absl/base:core_headers",
        "@com_google_absl//absl/cleanup",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/functional:function_ref",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/strings:str_format",
        "@com_google_absl//absl/types:optional",
        "@com_google_absl//absl/types:span",
        "@com_google_absl//absl/types:variant",
    ],
)

cc_library(
    name = "tokenizer",
    srcs = [
        "strtod.cc",
        "tokenizer.cc",
    ],
    hdrs = [
        "strtod.h",
        "tokenizer.h",
    ],
    copts = COPTS,
    include_prefix = "google/protobuf/io",
    deps = [
        ":io",
        "//src/google/protobuf/stubs",
    ],
)

cc_library(
    name = "gzip_stream",
    srcs = ["gzip_stream.cc"],
    hdrs = ["gzip_stream.h"],
    copts = COPTS,
    include_prefix = "google/protobuf/io",
    deps = [
        ":io",
        "//src/google/protobuf/stubs",
    ] + select({
        "//build_defs:config_msvc": [],
        "//conditions:default": ["@zlib//:zlib"],
    }),
)

cc_library(
    name = "io_win32",
    srcs = ["io_win32.cc"],
    hdrs = ["io_win32.h"],
    copts = COPTS,
    include_prefix = "google/protobuf/io",
    visibility = ["//pkg:__pkg__"],
    deps = [
        "//src/google/protobuf:arena",
        "//src/google/protobuf/stubs:lite",
    ],
)

cc_test(
    name = "io_test",
    srcs = [
        "coded_stream_unittest.cc",
        "printer_death_test.cc",
        "printer_unittest.cc",
        "tokenizer_unittest.cc",
        "zero_copy_stream_unittest.cc",
    ],
    copts = COPTS,
    data = [
        "//src/google/protobuf:testdata",
    ],
    deps = [
        ":gzip_stream",
        ":io",
        "//:protobuf",
        "//src/google/protobuf:test_util2",
        "//src/google/protobuf/testing",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/strings:str_format",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

cc_test(
    name = "win32_test",
    srcs = ["io_win32_unittest.cc"],
    tags = [
        "manual",
        "windows",
    ],
    deps = [
        "//:protobuf_lite",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

################################################################################
# Distribution packaging
################################################################################

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

filegroup(
    name = "test_srcs",
    srcs = glob([
        "*_test.cc",
        "*unittest.cc",
    ]),
    visibility = ["//pkg:__pkg__"],
)
