| # Copyright 2017 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| cmake_minimum_required (VERSION 2.8.10) |
| |
| project(googleapis) |
| |
| set(BIGTABLE_PROTO_FILES |
| ${CMAKE_CURRENT_SOURCE_DIR}/google/api/annotations.proto |
| ${CMAKE_CURRENT_SOURCE_DIR}/google/api/http.proto |
| ${CMAKE_CURRENT_SOURCE_DIR}/google/bigtable/admin/v2/bigtable_instance_admin.proto |
| ${CMAKE_CURRENT_SOURCE_DIR}/google/bigtable/admin/v2/bigtable_table_admin.proto |
| ${CMAKE_CURRENT_SOURCE_DIR}/google/bigtable/admin/v2/common.proto |
| ${CMAKE_CURRENT_SOURCE_DIR}/google/bigtable/admin/v2/instance.proto |
| ${CMAKE_CURRENT_SOURCE_DIR}/google/bigtable/admin/v2/table.proto |
| ${CMAKE_CURRENT_SOURCE_DIR}/google/bigtable/v2/bigtable.proto |
| ${CMAKE_CURRENT_SOURCE_DIR}/google/bigtable/v2/data.proto |
| ${CMAKE_CURRENT_SOURCE_DIR}/google/longrunning/operations.proto |
| ${CMAKE_CURRENT_SOURCE_DIR}/google/rpc/code.proto |
| ${CMAKE_CURRENT_SOURCE_DIR}/google/rpc/error_details.proto |
| ${CMAKE_CURRENT_SOURCE_DIR}/google/rpc/status.proto |
| ) |
| set(BIGTABLE_PB_GENERATED_FILES |
| ${CMAKE_BINARY_DIR}/google/api/annotations.pb.cc |
| ${CMAKE_BINARY_DIR}/google/api/annotations.pb.h |
| ${CMAKE_BINARY_DIR}/google/api/annotations.grpc.pb.cc |
| ${CMAKE_BINARY_DIR}/google/api/annotations.grpc.pb.h |
| ${CMAKE_BINARY_DIR}/google/api/http.pb.cc |
| ${CMAKE_BINARY_DIR}/google/api/http.pb.h |
| ${CMAKE_BINARY_DIR}/google/api/http.grpc.pb.cc |
| ${CMAKE_BINARY_DIR}/google/api/http.grpc.pb.h |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/bigtable_instance_admin.pb.cc |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/bigtable_instance_admin.pb.h |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/bigtable_instance_admin.grpc.pb.cc |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/bigtable_instance_admin.grpc.pb.h |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/bigtable_table_admin.pb.cc |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/bigtable_table_admin.pb.h |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/bigtable_table_admin.grpc.pb.cc |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/bigtable_table_admin.grpc.pb.h |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/common.pb.cc |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/common.pb.h |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/common.grpc.pb.cc |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/common.grpc.pb.h |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/instance.pb.cc |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/instance.pb.h |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/instance.grpc.pb.cc |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/instance.grpc.pb.h |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/table.pb.cc |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/table.pb.h |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/table.grpc.pb.cc |
| ${CMAKE_BINARY_DIR}/google/bigtable/admin/v2/table.grpc.pb.h |
| ${CMAKE_BINARY_DIR}/google/bigtable/v2/bigtable.pb.cc |
| ${CMAKE_BINARY_DIR}/google/bigtable/v2/bigtable.pb.h |
| ${CMAKE_BINARY_DIR}/google/bigtable/v2/bigtable.grpc.pb.cc |
| ${CMAKE_BINARY_DIR}/google/bigtable/v2/bigtable.grpc.pb.h |
| ${CMAKE_BINARY_DIR}/google/bigtable/v2/data.pb.cc |
| ${CMAKE_BINARY_DIR}/google/bigtable/v2/data.pb.h |
| ${CMAKE_BINARY_DIR}/google/bigtable/v2/data.grpc.pb.cc |
| ${CMAKE_BINARY_DIR}/google/bigtable/v2/data.grpc.pb.h |
| ${CMAKE_BINARY_DIR}/google/longrunning/operations.pb.cc |
| ${CMAKE_BINARY_DIR}/google/longrunning/operations.pb.h |
| ${CMAKE_BINARY_DIR}/google/longrunning/operations.grpc.pb.cc |
| ${CMAKE_BINARY_DIR}/google/longrunning/operations.grpc.pb.h |
| ${CMAKE_BINARY_DIR}/google/rpc/code.pb.cc |
| ${CMAKE_BINARY_DIR}/google/rpc/code.pb.h |
| ${CMAKE_BINARY_DIR}/google/rpc/code.grpc.pb.cc |
| ${CMAKE_BINARY_DIR}/google/rpc/code.grpc.pb.h |
| ${CMAKE_BINARY_DIR}/google/rpc/error_details.pb.cc |
| ${CMAKE_BINARY_DIR}/google/rpc/error_details.pb.h |
| ${CMAKE_BINARY_DIR}/google/rpc/error_details.grpc.pb.cc |
| ${CMAKE_BINARY_DIR}/google/rpc/error_details.grpc.pb.h |
| ${CMAKE_BINARY_DIR}/google/rpc/status.pb.cc |
| ${CMAKE_BINARY_DIR}/google/rpc/status.pb.h |
| ${CMAKE_BINARY_DIR}/google/rpc/status.grpc.pb.cc |
| ${CMAKE_BINARY_DIR}/google/rpc/status.grpc.pb.h |
| ) |
| |
| add_custom_command(OUTPUT ${BIGTABLE_PB_GENERATED_FILES} |
| COMMAND ${PROTOC} ${BIGTABLE_PROTO_FILES} |
| -I ${CMAKE_CURRENT_SOURCE_DIR} |
| -I ${PROTOBUF_INCLUDE_DIR} |
| --cpp_out=${CMAKE_BINARY_DIR} |
| --grpc_out=${CMAKE_BINARY_DIR} |
| --plugin=protoc-gen-grpc=${GRPC_CPP_PLUGIN} |
| ) |
| |
| add_custom_target(build_bigtable_protos ALL |
| DEPENDS ${BIGTABLE_PB_GENERATED_FILES}) |
| |
| set_source_files_properties(${BIGTABLE_PB_GENERATED_FILES} PROPERTIES GENERATED TRUE) |
| include_directories(BEFORE SYSTEM ${PROTOBUF_INCLUDE_DIR}) |
| include_directories(BEFORE SYSTEM ${GRPC_INCLUDE_DIR}) |
| include_directories(BEFORE SYSTEM ${CMAKE_BINARY_DIR}) |
| link_directories(${PROTOBUF_LIB_DIR}) |
| add_library(bigtable_grpc_client |
| ${BIGTABLE_PB_GENERATED_FILES}) |
| target_link_libraries(bigtable_grpc_client protobuf_full_cobalt grpc grpc++) |
| add_dependencies(bigtable_grpc_client build_bigtable_protos) |
| |
| install(TARGETS bigtable_grpc_client |
| RUNTIME DESTINATION bin |
| LIBRARY DESTINATION lib |
| ARCHIVE DESTINATION lib) |
| |
| install(DIRECTORY ${CMAKE_BINARY_DIR}/ DESTINATION include |
| FILES_MATCHING |
| PATTERN "*.pb.cc" |
| PATTERN "*.pb.h" |
| ) |
| |
| set(GRPC_PROTO_FILES |
| ${CMAKE_CURRENT_SOURCE_DIR}/google/rpc/status.proto |
| ) |
| |
| set(GRPC_PB_GENERATED_GO_FILES |
| ${GO_PROTO_GEN_SRC_DIR}/google.golang.org/genproto/googleapis/rpc/status/status.pb.go |
| ) |
| |
| add_custom_command(OUTPUT ${GRPC_PB_GENERATED_GO_FILES} |
| COMMAND ${PROTOC} ${GRPC_PROTO_FILES} |
| -I ${CMAKE_CURRENT_SOURCE_DIR} |
| -I ${PROTOBUF_INCLUDE_DIR} |
| -I ${CMAKE_SOURCE_DIR}/third_party/go/src |
| --go_out=${GO_PROTO_GEN_SRC_DIR} |
| ) |
| |
| add_custom_target(generate_grpc_pb_go_files ALL |
| DEPENDS ${GRPC_PB_GENERATED_GO_FILES}) |