diff --git a/WORKSPACE b/WORKSPACE index 88c212cd..9e624f1e 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -14,6 +14,7 @@ switched_rules_by_language( gapic = True, go = True, java = True, + cc = True, ) # Note gapic-generator contains java-specific and common code, that is why it is imported in common @@ -108,3 +109,18 @@ gazelle_dependencies() load("@com_google_api_codegen//rules_gapic/go:go_gapic_repositories.bzl", "go_gapic_repositories") go_gapic_repositories() + +############################################################################## +# C++ +############################################################################## + +http_archive( + name = "com_github_grpc_grpc", + urls = ["https://github.com/grpc/grpc/archive/v1.21.0.tar.gz"], + strip_prefix = "grpc-1.21.0", + sha256 = "8da7f32cc8978010d2060d740362748441b81a34e5425e108596d3fcd63a97f2", +) + +load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps") + +grpc_deps() diff --git a/google/devtools/cloudtrace/v2/BUILD.bazel b/google/devtools/cloudtrace/v2/BUILD.bazel index 41378e1a..7b0b77dc 100644 --- a/google/devtools/cloudtrace/v2/BUILD.bazel +++ b/google/devtools/cloudtrace/v2/BUILD.bazel @@ -144,3 +144,24 @@ go_gapic_assembly_pkg( ":trace_go_proto", ], ) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "trace_cc_proto", + deps = [":trace_proto"], +) + +cc_grpc_library( + name = "trace_cc_grpc", + srcs = [":trace_proto"], + deps = [":trace_cc_proto"], + grpc_only = True, +) diff --git a/google/monitoring/v3/BUILD.bazel b/google/monitoring/v3/BUILD.bazel index 7d401053..8294d525 100644 --- a/google/monitoring/v3/BUILD.bazel +++ b/google/monitoring/v3/BUILD.bazel @@ -179,3 +179,24 @@ go_gapic_assembly_pkg( ":monitoring_go_proto", ], ) + +############################################################################## +# C++ +############################################################################## +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "monitoring_cc_proto", + deps = [":monitoring_proto"], +) + +cc_grpc_library( + name = "monitoring_cc_grpc", + srcs = [":monitoring_proto"], + deps = [":monitoring_cc_proto"], + grpc_only = True, +) diff --git a/google/rpc/BUILD.bazel b/google/rpc/BUILD.bazel index 07231f1c..bd8850df 100644 --- a/google/rpc/BUILD.bazel +++ b/google/rpc/BUILD.bazel @@ -43,7 +43,7 @@ java_proto_library( ############################################################################## # Go ############################################################################## -load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") +load("@com_google_googleapis_imports//:imports.bzl", "go_proto_library") go_proto_library( name = "code_go_proto", diff --git a/repository_rules.bzl b/repository_rules.bzl index c7174348..ae3cc13d 100644 --- a/repository_rules.bzl +++ b/repository_rules.bzl @@ -92,7 +92,7 @@ def switched_rules_by_language( this rule. False by default. java (bool): Enable Java specific rules. False by default. go (bool): Enable Go specific rules. False by default. - cc (bool): Enable C++ specific rules. False by default. Not implemented yet. + cc (bool): Enable C++ specific rules. False by default. Partially implemented. python (bool): Enable Python-specific rules. False by default. Not implemented yet. php (bool): Enable PHP specific rules. False by default. Not implemented yet. ruby (bool): Enable Ruby specific rules. False by default. Not implemented yet. @@ -160,6 +160,16 @@ def switched_rules_by_language( "@com_google_api_codegen//rules_gapic/go:go_gapic_pkg.bzl", ) + rules["cc_proto_library"] = _switch( + cc, + "native.cc_proto_library", + ) + + rules["cc_grpc_library"] = _switch( + cc and grpc, + "@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", + ) + rules.update(rules_override) switched_rules(