# Generated by devtools/yamaker from nixpkgs 22.11.

LIBRARY()

LICENSE(
    BSD-3-Clause AND
    MIT AND
    Protobuf-License
)

LICENSE_TEXTS(.yandex_meta/licenses.list.txt)

PROVIDES(protobuf)

VERSION(3.22.5)

ORIGINAL_SOURCE(https://github.com/protocolbuffers/protobuf/archive/v3.22.5.tar.gz)

IF (OPENSOURCE_REPLACE_PROTOBUF AND EXPORT_CMAKE)
    OPENSOURCE_EXPORT_REPLACEMENT(
        CMAKE
        Protobuf
        CMAKE_TARGET
        protobuf::libprotobuf
        protobuf::libprotoc
        CONAN
        protobuf/${OPENSOURCE_REPLACE_PROTOBUF}
        CONAN_ADDITIONAL_SEMS
        "&& conan_require_tool"
        protobuf/${OPENSOURCE_REPLACE_PROTOBUF}
        "&& conan-tool_requires"
        protobuf/${OPENSOURCE_REPLACE_PROTOBUF}
        "&& conan_import \"bin, protoc* -> ./bin\" && conan-imports 'bin, protoc* -> ./bin' && vanilla_protobuf"
    )
ELSE()
    ADDINCL(
        GLOBAL contrib/libs/protobuf/src
        GLOBAL FOR
        proto
        contrib/libs/protobuf/src
    )
ENDIF()

PEERDIR(
    contrib/libs/zlib
    contrib/restricted/abseil-cpp-tstring/y_absl/log
    contrib/restricted/abseil-cpp-tstring/y_absl/status
    library/cpp/sanitizer/include
)

ADDINCL(
    contrib/libs/protobuf/third_party/utf8_range
)

NO_COMPILER_WARNINGS()

CFLAGS(
    -DGOOGLE_PROTOBUF_CMAKE_BUILD
    -DHAVE_ZLIB
)

IF (OS_ANDROID)
    EXTRALIBS(log)
ENDIF()

SRCS(
    GLOBAL src/google/protobuf/generated_message_util.cc
    src/google/protobuf/any.cc
    src/google/protobuf/any.pb.cc
    src/google/protobuf/any_lite.cc
    src/google/protobuf/api.pb.cc
    src/google/protobuf/arena.cc
    src/google/protobuf/arena_align.cc
    src/google/protobuf/arena_config.cc
    src/google/protobuf/arenastring.cc
    src/google/protobuf/arenaz_sampler.cc
    src/google/protobuf/descriptor.cc
    src/google/protobuf/descriptor.pb.cc
    src/google/protobuf/descriptor_database.cc
    src/google/protobuf/duration.pb.cc
    src/google/protobuf/dynamic_message.cc
    src/google/protobuf/empty.pb.cc
    src/google/protobuf/extension_set.cc
    src/google/protobuf/extension_set_heavy.cc
    src/google/protobuf/field_mask.pb.cc
    src/google/protobuf/generated_enum_util.cc
    src/google/protobuf/generated_message_bases.cc
    src/google/protobuf/generated_message_reflection.cc
    src/google/protobuf/generated_message_tctable_full.cc
    src/google/protobuf/generated_message_tctable_gen.cc
    src/google/protobuf/generated_message_tctable_lite.cc
    src/google/protobuf/implicit_weak_message.cc
    src/google/protobuf/inlined_string_field.cc
    src/google/protobuf/io/coded_stream.cc
    src/google/protobuf/io/gzip_stream.cc
    src/google/protobuf/io/io_win32.cc
    src/google/protobuf/io/printer.cc
    src/google/protobuf/io/strtod.cc
    src/google/protobuf/io/tokenizer.cc
    src/google/protobuf/io/zero_copy_sink.cc
    src/google/protobuf/io/zero_copy_stream.cc
    src/google/protobuf/io/zero_copy_stream_impl.cc
    src/google/protobuf/io/zero_copy_stream_impl_lite.cc
    src/google/protobuf/json/internal/lexer.cc
    src/google/protobuf/json/internal/message_path.cc
    src/google/protobuf/json/internal/parser.cc
    src/google/protobuf/json/internal/unparser.cc
    src/google/protobuf/json/internal/untyped_message.cc
    src/google/protobuf/json/internal/writer.cc
    src/google/protobuf/json/internal/zero_copy_buffered_stream.cc
    src/google/protobuf/json/json.cc
    src/google/protobuf/json/old_json.cc
    src/google/protobuf/json_util.cc
    src/google/protobuf/map.cc
    src/google/protobuf/map_field.cc
    src/google/protobuf/message.cc
    src/google/protobuf/message_lite.cc
    src/google/protobuf/messagext.cc
    src/google/protobuf/parse_context.cc
    src/google/protobuf/reflection_ops.cc
    src/google/protobuf/repeated_field.cc
    src/google/protobuf/repeated_ptr_field.cc
    src/google/protobuf/service.cc
    src/google/protobuf/source_context.pb.cc
    src/google/protobuf/struct.pb.cc
    src/google/protobuf/stubs/common.cc
    src/google/protobuf/stubs/status.cc
    src/google/protobuf/stubs/stringpiece.cc
    src/google/protobuf/stubs/structurally_valid.cc
    src/google/protobuf/stubs/strutil.cc
    src/google/protobuf/stubs/substitute.cc
    src/google/protobuf/text_format.cc
    src/google/protobuf/timestamp.pb.cc
    src/google/protobuf/type.pb.cc
    src/google/protobuf/unknown_field_set.cc
    src/google/protobuf/util/delimited_message_util.cc
    src/google/protobuf/util/field_comparator.cc
    src/google/protobuf/util/field_mask_util.cc
    src/google/protobuf/util/message_differencer.cc
    src/google/protobuf/util/time_util.cc
    src/google/protobuf/util/type_resolver_util.cc
    src/google/protobuf/wire_format.cc
    src/google/protobuf/wire_format_lite.cc
    src/google/protobuf/wrappers.pb.cc
    third_party/utf8_range/utf8_validity.cc
)

FILES(
    src/google/protobuf/any.proto
    src/google/protobuf/api.proto
    src/google/protobuf/descriptor.proto
    src/google/protobuf/duration.proto
    src/google/protobuf/empty.proto
    src/google/protobuf/field_mask.proto
    src/google/protobuf/source_context.proto
    src/google/protobuf/struct.proto
    src/google/protobuf/timestamp.proto
    src/google/protobuf/type.proto
    src/google/protobuf/wrappers.proto
)

END()

RECURSE(
    builtin_proto
)