# Copyright 2022 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

load(
    "//build:source_list.bzl",
    "balsa_hdrs",
    "balsa_srcs",
    "binary_http_hdrs",
    "binary_http_srcs",
    "default_platform_impl_hdrs",
    "default_platform_impl_srcs",
    "default_platform_impl_test_support_hdrs",
    "default_platform_impl_test_support_srcs",
    "default_platform_impl_tool_support_hdrs",
    "default_platform_impl_tool_support_srcs",
    "io_test_support_hdrs",
    "io_test_support_srcs",
    "io_tests_srcs",
    "io_tool_support_hdrs",
    "io_tool_support_srcs",
    "oblivious_http_hdrs",
    "oblivious_http_srcs",
    "quiche_core_hdrs",
    "quiche_core_srcs",
    "quiche_test_support_hdrs",
    "quiche_test_support_srcs",
    "quiche_tests_srcs",
    "quiche_tool_support_hdrs",
    "quiche_tool_support_srcs",
)
load("//build:test.bzl", "test_suite_from_source_list")

licenses(["notice"])

package(
    default_visibility = ["//visibility:private"],
    features = [
        "parse_headers",
        "layering_check",
    ],
)

cc_library(
    name = "quiche_flags_list",
    textual_hdrs = [
        "common/quiche_protocol_flags_list.h",
        "common/quiche_feature_flags_list.h",
    ],
)

cc_library(
    name = "binary_http",
    srcs = binary_http_srcs,
    hdrs = binary_http_hdrs,
    deps = [
        ":quiche_core",
        "@com_google_absl//absl/base:core_headers",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/status",
        "@com_google_absl//absl/status:statusor",
        "@com_google_absl//absl/strings",
    ],
)

cc_library(
    name = "oblivious_http",
    srcs = oblivious_http_srcs,
    hdrs = oblivious_http_hdrs,
    deps = [
        ":quiche_core",
        "@boringssl//:crypto",
        "@com_google_absl//absl/base:core_headers",
        "@com_google_absl//absl/container:btree",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/memory",
        "@com_google_absl//absl/status",
        "@com_google_absl//absl/status:statusor",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/types:optional",
    ],
)

# QUICHE_EXPORT is used by all platform definitions, and thus needs to be handled separately.
cc_library(
    name = "quiche_platform_default_quiche_export",
    hdrs = [
        "common/platform/default/quiche_platform_impl/quiche_export_impl.h",
    ],
    strip_include_prefix = "common/platform/default",
)

cc_library(
    name = "quiche_platform_quiche_export",
    hdrs = [
        "common/platform/api/quiche_export.h",
    ],
    deps = [":quiche_platform_default_quiche_export"],
)

cc_library(
    name = "quiche_platform_default",
    srcs = default_platform_impl_srcs,
    hdrs = default_platform_impl_hdrs,
    strip_include_prefix = "common/platform/default",
    deps = [
        ":quiche_flags_list",
        ":quiche_platform_quiche_export",
        "@boringssl//:crypto",
        "@com_google_absl//absl/base:core_headers",
        "@com_google_absl//absl/base:log_severity",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/debugging:stacktrace",
        "@com_google_absl//absl/debugging:symbolize",
        "@com_google_absl//absl/flags:flag",
        "@com_google_absl//absl/log:absl_check",
        "@com_google_absl//absl/log:absl_log",
        "@com_google_absl//absl/log:flags",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/strings:str_format",
        "@com_google_absl//absl/synchronization",
        "@com_google_absl//absl/time",
        "@com_google_absl//absl/types:optional",
        "@com_google_absl//absl/types:span",
        "@com_google_googleurl//url",
    ],
)

cc_library(
    name = "quiche_platform_default_tools",
    srcs = default_platform_impl_tool_support_srcs,
    hdrs = default_platform_impl_tool_support_hdrs,
    strip_include_prefix = "common/platform/default",
    deps = [
        ":quiche_core",
        "@com_google_absl//absl/flags:flag",
        "@com_google_absl//absl/flags:parse",
        "@com_google_absl//absl/flags:usage",
        "@com_google_absl//absl/log:initialize",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/types:optional",
        "@com_google_googletest//:gtest",
    ],
)

cc_library(
    name = "quiche_platform_default_testonly",
    testonly = 1,
    srcs = default_platform_impl_test_support_srcs,
    hdrs = default_platform_impl_test_support_hdrs,
    strip_include_prefix = "common/platform/default",
    deps = [
        ":quiche_core",
        "@com_google_absl//absl/flags:flag",
        "@com_google_absl//absl/flags:parse",
        "@com_google_absl//absl/flags:usage",
        "@com_google_googletest//:gtest",
    ],
)

proto_library(
    name = "quiche_protobufs",
    srcs = [
        "quic/core/proto/cached_network_parameters.proto",
        "quic/core/proto/crypto_server_config.proto",
        "quic/core/proto/source_address_token.proto",
    ],
)

cc_proto_library(
    name = "quiche_protobufs_cc_proto",
    deps = [":quiche_protobufs"],
)

proto_library(
    name = "quiche_protobufs_testonly",
    srcs = [
        "quic/test_tools/send_algorithm_test_result.proto",
    ],
)

cc_proto_library(
    name = "quiche_protobufs_testonly_cc_proto",
    deps = [":quiche_protobufs_testonly"],
)

cc_library(
    name = "quiche_core",
    srcs = quiche_core_srcs,
    hdrs = quiche_core_hdrs,
    textual_hdrs = ["http2/hpack/hpack_static_table_entries.inc"],
    deps = [
        ":quiche_platform_default",
        ":quiche_protobufs_cc_proto",
        "@boringssl//:crypto",
        "@boringssl//:ssl",
        "@com_google_absl//absl/algorithm:container",
        "@com_google_absl//absl/base:core_headers",
        "@com_google_absl//absl/base:nullability",
        "@com_google_absl//absl/cleanup",
        "@com_google_absl//absl/container:btree",
        "@com_google_absl//absl/container:fixed_array",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/container:inlined_vector",
        "@com_google_absl//absl/container:node_hash_map",
        "@com_google_absl//absl/functional:any_invocable",
        "@com_google_absl//absl/functional:function_ref",
        "@com_google_absl//absl/hash",
        "@com_google_absl//absl/memory",
        "@com_google_absl//absl/numeric:bits",
        "@com_google_absl//absl/numeric:int128",
        "@com_google_absl//absl/status",
        "@com_google_absl//absl/status:statusor",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/strings:str_format",
        "@com_google_absl//absl/time",
        "@com_google_absl//absl/types:optional",
        "@com_google_absl//absl/types:span",
        "@com_google_absl//absl/types:variant",
        "@zlib",
    ],
)

cc_library(
    name = "balsa",
    srcs = balsa_srcs,
    hdrs = balsa_hdrs,
    deps = [
        ":quiche_core",
        "@com_google_absl//absl/algorithm:container",
        "@com_google_absl//absl/base:core_headers",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/container:inlined_vector",
        "@com_google_absl//absl/memory",
        "@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 = "quiche_tool_support",
    srcs = quiche_tool_support_srcs,
    hdrs = quiche_tool_support_hdrs,
    deps = [
        ":quiche_core",
        ":quiche_platform_default_tools",
        "@boringssl//:crypto",
        "@com_google_absl//absl/base:core_headers",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/functional:bind_front",
        "@com_google_absl//absl/memory",
        "@com_google_absl//absl/status",
        "@com_google_absl//absl/status:statusor",
        "@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_googletest//:gtest",
        "@com_google_quic_trace//quic_trace:quic_trace_cc_proto",
    ],
)

cc_library(
    name = "quiche_test_support",
    testonly = 1,
    srcs = quiche_test_support_srcs,
    hdrs = quiche_test_support_hdrs,
    deps = [
        ":binary_http",
        ":quiche_core",
        ":quiche_platform_default_testonly",
        ":quiche_protobufs_testonly_cc_proto",
        ":quiche_tool_support",
        "@boringssl//:crypto",
        "@boringssl//:ssl",
        "@com_google_absl//absl/base:core_headers",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/memory",
        "@com_google_absl//absl/status",
        "@com_google_absl//absl/status:statusor",
        "@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_googletest//:gtest",
    ],
)

cc_library(
    name = "quic_toy_client",
    srcs = [
        "quic/tools/quic_toy_client.cc",
    ],
    hdrs = [
        "quic/tools/quic_toy_client.h",
    ],
    deps = [
        ":io_tool_support",
        ":quiche_core",
        ":quiche_platform_default",
        ":quiche_tool_support",
        "@com_google_absl//absl/strings",
    ],
)

cc_library(
    name = "quic_toy_server",
    srcs = [
        "quic/tools/quic_toy_server.cc",
    ],
    hdrs = [
        "quic/tools/quic_toy_server.h",
    ],
    deps = [
        ":io_tool_support",
        ":quiche_core",
        ":quiche_platform_default_tools",
        ":quiche_tool_support",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/strings",
    ],
)

cc_library(
    name = "quic_server_factory",
    srcs = [
        "quic/tools/quic_server_factory.cc",
    ],
    hdrs = [
        "quic/tools/quic_server_factory.h",
    ],
    deps = [
        ":io_tool_support",
        ":quic_toy_server",
    ],
)

test_suite_from_source_list(
    name = "quiche_tests",
    srcs = quiche_tests_srcs,
    data = glob([
        "common/platform/api/testdir/**",
        "quic/test_tools/quic_http_response_cache_data/**",
    ]),
    deps = [
        ":balsa",
        ":binary_http",
        ":oblivious_http",
        ":quiche_core",
        ":quiche_platform_default_testonly",
        ":quiche_protobufs_testonly_cc_proto",
        ":quiche_test_support",
        ":quiche_tool_support",
        "@boringssl//:crypto",
        "@boringssl//:ssl",
        "@com_google_absl//absl/algorithm:container",
        "@com_google_absl//absl/base:core_headers",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/container:node_hash_map",
        "@com_google_absl//absl/functional:bind_front",
        "@com_google_absl//absl/hash",
        "@com_google_absl//absl/memory",
        "@com_google_absl//absl/numeric:int128",
        "@com_google_absl//absl/status",
        "@com_google_absl//absl/status:statusor",
        "@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_googletest//:gtest_main",
    ],
)

cc_library(
    name = "io_tool_support",
    srcs = io_tool_support_srcs,
    hdrs = io_tool_support_hdrs,
    deps = [
        ":quiche_core",
        ":quiche_platform_default",
        ":quiche_platform_default_tools",
        ":quiche_tool_support",
        "@boringssl//:crypto",
        "@com_google_absl//absl/algorithm:container",
        "@com_google_absl//absl/base:core_headers",
        "@com_google_absl//absl/cleanup",
        "@com_google_absl//absl/container:btree",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/memory",
        "@com_google_absl//absl/status",
        "@com_google_absl//absl/status:statusor",
        "@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 = "io_test_support",
    testonly = 1,
    srcs = io_test_support_srcs,
    hdrs = io_test_support_hdrs,
    deps = [
        ":io_tool_support",
        ":quiche_core",
        ":quiche_platform_default_tools",
        ":quiche_test_support",
        ":quiche_tool_support",
        "@boringssl//:crypto",
        "@com_google_absl//absl/algorithm:container",
        "@com_google_absl//absl/base:core_headers",
        "@com_google_absl//absl/cleanup",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/memory",
        "@com_google_absl//absl/status",
        "@com_google_absl//absl/status:statusor",
        "@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",
        "@com_google_googletest//:gtest",
    ],
)

test_suite_from_source_list(
    name = "io_tests",
    srcs = io_tests_srcs,
    data = glob([
        "common/platform/api/testdir/**",
        "quic/test_tools/quic_http_response_cache_data/**",
    ]),
    deps = [
        ":binary_http",
        ":io_test_support",
        ":io_tool_support",
        ":quiche_core",
        ":quiche_platform_default_testonly",
        ":quiche_protobufs_testonly_cc_proto",
        ":quiche_test_support",
        ":quiche_tool_support",
        "@boringssl//:crypto",
        "@boringssl//:ssl",
        "@com_google_absl//absl/algorithm:container",
        "@com_google_absl//absl/base:core_headers",
        "@com_google_absl//absl/cleanup",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/container:node_hash_map",
        "@com_google_absl//absl/functional:bind_front",
        "@com_google_absl//absl/hash",
        "@com_google_absl//absl/memory",
        "@com_google_absl//absl/numeric:int128",
        "@com_google_absl//absl/status",
        "@com_google_absl//absl/status:statusor",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/strings:str_format",
        "@com_google_absl//absl/time",
        "@com_google_absl//absl/types:optional",
        "@com_google_absl//absl/types:span",
        "@com_google_absl//absl/types:variant",
        "@com_google_googletest//:gtest",
        "@com_google_googletest//:gtest_main",
    ],
)

# TODO(vasilvv): make a rule that generates cc_binary rules for all _bin targets.
cc_binary(
    name = "quic_packet_printer",
    srcs = ["quic/tools/quic_packet_printer_bin.cc"],
    deps = [
        ":quiche_core",
        ":quiche_tool_support",
        "@com_google_absl//absl/strings",
    ],
)

cc_binary(
    name = "crypto_message_printer",
    srcs = ["quic/tools/crypto_message_printer_bin.cc"],
    deps = [
        ":quiche_core",
        ":quiche_tool_support",
        "@com_google_absl//absl/strings",
    ],
)

cc_binary(
    name = "quic_client",
    srcs = ["quic/tools/quic_client_bin.cc"],
    deps = [
        ":io_tool_support",
        ":quic_toy_client",
        ":quiche_core",
        ":quiche_tool_support",
        "@com_google_absl//absl/strings",
    ],
)

cc_binary(
    name = "quic_server",
    srcs = ["quic/tools/quic_server_bin.cc"],
    deps = [
        ":io_tool_support",
        ":quic_server_factory",
        ":quic_toy_server",
        ":quiche_core",
        ":quiche_platform_default",
        ":quiche_platform_default_tools",
        ":quiche_tool_support",
        "@com_google_absl//absl/strings",
    ],
)

cc_binary(
    name = "masque_client",
    srcs = ["quic/masque/masque_client_bin.cc"],
    deps = [
        ":io_tool_support",
        ":quiche_core",
        ":quiche_tool_support",
        "@boringssl//:crypto",
        "@com_google_absl//absl/strings",
    ],
)

cc_binary(
    name = "masque_server",
    srcs = ["quic/masque/masque_server_bin.cc"],
    deps = [
        ":io_tool_support",
        ":quiche_core",
        ":quiche_platform_default",
        ":quiche_platform_default_tools",
        ":quiche_tool_support",
        "@com_google_absl//absl/strings",
    ],
)

cc_binary(
    name = "web_transport_test_server",
    srcs = ["quic/tools/web_transport_test_server.cc"],
    deps = [
        ":io_tool_support",
        ":quic_server_factory",
        ":quic_toy_server",
        ":quiche_core",
        ":quiche_platform_default",
        ":quiche_platform_default_tools",
        ":quiche_tool_support",
        "@com_google_absl//absl/status",
        "@com_google_absl//absl/status:statusor",
        "@com_google_absl//absl/strings",
    ],
)

# Indicate that QUICHE APIs are explicitly unstable by providing only
# appropriately named aliases as publicly visible targets.
alias(
    name = "quiche_unstable_api",
    actual = ":quiche_core",
    visibility = ["//visibility:public"],
)

alias(
    name = "binary_http_unstable_api",
    actual = ":binary_http",
    visibility = ["//visibility:public"],
)

alias(
    name = "oblivious_http_unstable_api",
    actual = ":oblivious_http",
    visibility = ["//visibility:public"],
)

alias(
    name = "quiche_unstable_api_tool_support",
    actual = ":quiche_tool_support",
    visibility = ["//visibility:public"],
)

alias(
    name = "quiche_unstable_api_test_support",
    actual = ":quiche_test_support",
    visibility = ["//visibility:public"],
)
