microsoft / vcpkg

C++ Library Manager for Windows, Linux, and MacOS
MIT License
22.9k stars 6.33k forks source link

[protobuf] installation of compiler headers is incomplete #28284

Open globberwops opened 1 year ago

globberwops commented 1 year ago

Is your feature request related to a problem? Please describe.

The protobuf port installs an incomplete set of headers. Compare the list of headers in protobuf to protobuf_3.21.8_x64-linux.list:

x64-linux/include/
x64-linux/include/google/
x64-linux/include/google/protobuf/
x64-linux/include/google/protobuf/any.h
x64-linux/include/google/protobuf/any.pb.h
x64-linux/include/google/protobuf/any.proto
x64-linux/include/google/protobuf/api.pb.h
x64-linux/include/google/protobuf/api.proto
x64-linux/include/google/protobuf/arena.h
x64-linux/include/google/protobuf/arena_impl.h
x64-linux/include/google/protobuf/arenastring.h
x64-linux/include/google/protobuf/arenaz_sampler.h
x64-linux/include/google/protobuf/compiler/
x64-linux/include/google/protobuf/compiler/code_generator.h
x64-linux/include/google/protobuf/compiler/command_line_interface.h
x64-linux/include/google/protobuf/compiler/cpp/
x64-linux/include/google/protobuf/compiler/cpp/cpp_generator.h
x64-linux/include/google/protobuf/compiler/cpp/file.h
x64-linux/include/google/protobuf/compiler/cpp/generator.h
x64-linux/include/google/protobuf/compiler/cpp/helpers.h
x64-linux/include/google/protobuf/compiler/cpp/names.h
x64-linux/include/google/protobuf/compiler/csharp/
x64-linux/include/google/protobuf/compiler/csharp/csharp_doc_comment.h
x64-linux/include/google/protobuf/compiler/csharp/csharp_generator.h
x64-linux/include/google/protobuf/compiler/csharp/csharp_names.h
x64-linux/include/google/protobuf/compiler/csharp/csharp_options.h
x64-linux/include/google/protobuf/compiler/importer.h
x64-linux/include/google/protobuf/compiler/java/
x64-linux/include/google/protobuf/compiler/java/generator.h
x64-linux/include/google/protobuf/compiler/java/java_generator.h
x64-linux/include/google/protobuf/compiler/java/kotlin_generator.h
x64-linux/include/google/protobuf/compiler/java/names.h
x64-linux/include/google/protobuf/compiler/objectivec/
x64-linux/include/google/protobuf/compiler/objectivec/objectivec_generator.h
x64-linux/include/google/protobuf/compiler/objectivec/objectivec_helpers.h
x64-linux/include/google/protobuf/compiler/parser.h
x64-linux/include/google/protobuf/compiler/php/
x64-linux/include/google/protobuf/compiler/php/php_generator.h
x64-linux/include/google/protobuf/compiler/plugin.h
x64-linux/include/google/protobuf/compiler/plugin.pb.h
x64-linux/include/google/protobuf/compiler/plugin.proto
x64-linux/include/google/protobuf/compiler/python/
x64-linux/include/google/protobuf/compiler/python/generator.h
x64-linux/include/google/protobuf/compiler/python/pyi_generator.h
x64-linux/include/google/protobuf/compiler/python/python_generator.h
x64-linux/include/google/protobuf/compiler/ruby/
x64-linux/include/google/protobuf/compiler/ruby/ruby_generator.h
x64-linux/include/google/protobuf/descriptor.h
x64-linux/include/google/protobuf/descriptor.pb.h
x64-linux/include/google/protobuf/descriptor.proto
x64-linux/include/google/protobuf/descriptor_database.h
x64-linux/include/google/protobuf/duration.pb.h
x64-linux/include/google/protobuf/duration.proto
x64-linux/include/google/protobuf/dynamic_message.h
x64-linux/include/google/protobuf/empty.pb.h
x64-linux/include/google/protobuf/empty.proto
x64-linux/include/google/protobuf/endian.h
x64-linux/include/google/protobuf/explicitly_constructed.h
x64-linux/include/google/protobuf/extension_set.h
x64-linux/include/google/protobuf/extension_set_inl.h
x64-linux/include/google/protobuf/field_access_listener.h
x64-linux/include/google/protobuf/field_mask.pb.h
x64-linux/include/google/protobuf/field_mask.proto
x64-linux/include/google/protobuf/generated_enum_reflection.h
x64-linux/include/google/protobuf/generated_enum_util.h
x64-linux/include/google/protobuf/generated_message_bases.h
x64-linux/include/google/protobuf/generated_message_reflection.h
x64-linux/include/google/protobuf/generated_message_tctable_decl.h
x64-linux/include/google/protobuf/generated_message_tctable_impl.h
x64-linux/include/google/protobuf/generated_message_util.h
x64-linux/include/google/protobuf/has_bits.h
x64-linux/include/google/protobuf/implicit_weak_message.h
x64-linux/include/google/protobuf/inlined_string_field.h
x64-linux/include/google/protobuf/io/
x64-linux/include/google/protobuf/io/coded_stream.h
x64-linux/include/google/protobuf/io/gzip_stream.h
x64-linux/include/google/protobuf/io/io_win32.h
x64-linux/include/google/protobuf/io/printer.h
x64-linux/include/google/protobuf/io/strtod.h
x64-linux/include/google/protobuf/io/tokenizer.h
x64-linux/include/google/protobuf/io/zero_copy_stream.h
x64-linux/include/google/protobuf/io/zero_copy_stream_impl.h
x64-linux/include/google/protobuf/io/zero_copy_stream_impl_lite.h
x64-linux/include/google/protobuf/map.h
x64-linux/include/google/protobuf/map_entry.h
x64-linux/include/google/protobuf/map_entry_lite.h
x64-linux/include/google/protobuf/map_field.h
x64-linux/include/google/protobuf/map_field_inl.h
x64-linux/include/google/protobuf/map_field_lite.h
x64-linux/include/google/protobuf/map_type_handler.h
x64-linux/include/google/protobuf/message.h
x64-linux/include/google/protobuf/message_lite.h
x64-linux/include/google/protobuf/metadata.h
x64-linux/include/google/protobuf/metadata_lite.h
x64-linux/include/google/protobuf/parse_context.h
x64-linux/include/google/protobuf/port.h
x64-linux/include/google/protobuf/port_def.inc
x64-linux/include/google/protobuf/port_undef.inc
x64-linux/include/google/protobuf/reflection.h
x64-linux/include/google/protobuf/reflection_ops.h
x64-linux/include/google/protobuf/repeated_field.h
x64-linux/include/google/protobuf/repeated_ptr_field.h
x64-linux/include/google/protobuf/service.h
x64-linux/include/google/protobuf/source_context.pb.h
x64-linux/include/google/protobuf/source_context.proto
x64-linux/include/google/protobuf/struct.pb.h
x64-linux/include/google/protobuf/struct.proto
x64-linux/include/google/protobuf/stubs/
x64-linux/include/google/protobuf/stubs/bytestream.h
x64-linux/include/google/protobuf/stubs/callback.h
x64-linux/include/google/protobuf/stubs/casts.h
x64-linux/include/google/protobuf/stubs/common.h
x64-linux/include/google/protobuf/stubs/hash.h
x64-linux/include/google/protobuf/stubs/logging.h
x64-linux/include/google/protobuf/stubs/macros.h
x64-linux/include/google/protobuf/stubs/map_util.h
x64-linux/include/google/protobuf/stubs/mutex.h
x64-linux/include/google/protobuf/stubs/once.h
x64-linux/include/google/protobuf/stubs/platform_macros.h
x64-linux/include/google/protobuf/stubs/port.h
x64-linux/include/google/protobuf/stubs/status.h
x64-linux/include/google/protobuf/stubs/stl_util.h
x64-linux/include/google/protobuf/stubs/stringpiece.h
x64-linux/include/google/protobuf/stubs/strutil.h
x64-linux/include/google/protobuf/stubs/template_util.h
x64-linux/include/google/protobuf/text_format.h
x64-linux/include/google/protobuf/timestamp.pb.h
x64-linux/include/google/protobuf/timestamp.proto
x64-linux/include/google/protobuf/type.pb.h
x64-linux/include/google/protobuf/type.proto
x64-linux/include/google/protobuf/unknown_field_set.h
x64-linux/include/google/protobuf/util/
x64-linux/include/google/protobuf/util/delimited_message_util.h
x64-linux/include/google/protobuf/util/field_comparator.h
x64-linux/include/google/protobuf/util/field_mask_util.h
x64-linux/include/google/protobuf/util/json_util.h
x64-linux/include/google/protobuf/util/message_differencer.h
x64-linux/include/google/protobuf/util/time_util.h
x64-linux/include/google/protobuf/util/type_resolver.h
x64-linux/include/google/protobuf/util/type_resolver_util.h
x64-linux/include/google/protobuf/wire_format.h
x64-linux/include/google/protobuf/wire_format_lite.h
x64-linux/include/google/protobuf/wrappers.pb.h
x64-linux/include/google/protobuf/wrappers.proto

Especially google/protobuf/compiler/cpp is incomplete and missing among many others e.g.

Proposed solution Install the full set of protobuf headers, incl. the compiler headers.

Additional context I want to implement a custom CodeGenerator based on the CppGenerator.

FrankXie05 commented 1 year ago

@globberwops Upstream has changed the installation mode of cmake header files and exported the required header files. Let's wait for a new version. I will ask the upstream whether a new version has been released recently. If it takes a long time, we will consider using patches to solve the problem :) https://github.com/protocolbuffers/protobuf/pull/10306 https://github.com/protocolbuffers/protobuf/blob/1f58f1d7b83ec333ab6076bf2e76797dd8de3e45/cmake/install.cmake#L47

github-actions[bot] commented 1 year ago

This is an automated message. Per our repo policy, stale issues get closed if there has been no activity in the past 180 days. The issue will be automatically closed in 14 days. If you wish to keep this issue open, please add a new comment.

github-actions[bot] commented 5 months ago

This is an automated message. Per our repo policy, stale issues get closed if there has been no activity in the past 180 days. The issue will be automatically closed in 14 days. If you wish to keep this issue open, please add a new comment.