Install well-known protobuf types

This commit is contained in:
János Benjamin Antal 2023-11-15 13:21:59 +00:00
parent e92044cec0
commit 6f652133a8
3 changed files with 26 additions and 0 deletions

View File

@ -385,9 +385,25 @@ endif ()
include("${ClickHouse_SOURCE_DIR}/contrib/google-protobuf-cmake/protobuf_generate.cmake") include("${ClickHouse_SOURCE_DIR}/contrib/google-protobuf-cmake/protobuf_generate.cmake")
# These files needs to be installed to make it possible that users can use well-known protobuf types
set(google_proto_files
${protobuf_source_dir}/src/google/protobuf/any.proto
${protobuf_source_dir}/src/google/protobuf/api.proto
${protobuf_source_dir}/src/google/protobuf/descriptor.proto
${protobuf_source_dir}/src/google/protobuf/duration.proto
${protobuf_source_dir}/src/google/protobuf/empty.proto
${protobuf_source_dir}/src/google/protobuf/field_mask.proto
${protobuf_source_dir}/src/google/protobuf/source_context.proto
${protobuf_source_dir}/src/google/protobuf/struct.proto
${protobuf_source_dir}/src/google/protobuf/timestamp.proto
${protobuf_source_dir}/src/google/protobuf/type.proto
${protobuf_source_dir}/src/google/protobuf/wrappers.proto
)
add_library(_protobuf INTERFACE) add_library(_protobuf INTERFACE)
target_link_libraries(_protobuf INTERFACE _libprotobuf) target_link_libraries(_protobuf INTERFACE _libprotobuf)
target_include_directories(_protobuf INTERFACE "${Protobuf_INCLUDE_DIR}") target_include_directories(_protobuf INTERFACE "${Protobuf_INCLUDE_DIR}")
set_target_properties(_protobuf PROPERTIES google_proto_files "${google_proto_files}")
add_library(ch_contrib::protobuf ALIAS _protobuf) add_library(ch_contrib::protobuf ALIAS _protobuf)
add_library(_protoc INTERFACE) add_library(_protoc INTERFACE)

View File

@ -44,6 +44,8 @@ contents:
dst: /usr/bin/clickhouse-odbc-bridge dst: /usr/bin/clickhouse-odbc-bridge
- src: root/usr/share/bash-completion/completions - src: root/usr/share/bash-completion/completions
dst: /usr/share/bash-completion/completions dst: /usr/share/bash-completion/completions
- src: root/usr/share/clickhouse
dst: /usr/share/clickhouse
# docs # docs
- src: ../AUTHORS - src: ../AUTHORS
dst: /usr/share/doc/clickhouse-common-static/AUTHORS dst: /usr/share/doc/clickhouse-common-static/AUTHORS

View File

@ -457,3 +457,11 @@ endif()
if (ENABLE_FUZZING) if (ENABLE_FUZZING)
add_compile_definitions(FUZZING_MODE=1) add_compile_definitions(FUZZING_MODE=1)
endif () endif ()
if (TARGET ch_contrib::protobuf)
get_property(google_proto_files TARGET ch_contrib::protobuf PROPERTY google_proto_files)
message(WARNING "PROTO FILES ${google_proto_files}")
foreach (proto_file IN LISTS google_proto_files)
install(FILES ${proto_file} DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/clickhouse/proto/google/protobuf)
endforeach()
endif ()