From 77f30b686b2260215a975d6dfd42a84cd6aa90f7 Mon Sep 17 00:00:00 2001 From: Yannic Date: Thu, 9 Jan 2020 19:23:02 +0100 Subject: [PATCH] Blacklist .proto source files if Bazel allows us to (#7065) * Blacklist .proto source files is Bazel allows us to This is a partial revert of https://github.com/protocolbuffers/protobuf/commit/7b28278c7d4f4175e70aef2f89d304696eb85ae3 to unblock, e.g., https://github.com/grpc/grpc/pull/21590 or https://github.com/lyft/envoy-mobile/issues/617 until Bazel is fixed. Note: this is a forward-compatible change that automatically switches to the behavior intended by https://github.com/protocolbuffers/protobuf/commit/7b28278c7d4f4175e70aef2f89d304696eb85ae3 when a compatible Bazel is released without requiring users to upgrade Protobuf. We will revert this change when Bazel is fixed. * Remove trailing , * Update BUILD --- BUILD | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/BUILD b/BUILD index 1c5236d9d8c7..e678db70151a 100644 --- a/BUILD +++ b/BUILD @@ -3,6 +3,7 @@ load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test", "objc_library") load("@rules_java//java:defs.bzl", "java_library") load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain", "proto_library") +load("@rules_proto//proto/private:native.bzl", "native_proto_common") load("@rules_python//python:defs.bzl", "py_library") licenses(["notice"]) @@ -986,9 +987,13 @@ cc_library( ], ) +# Note: We use `native_proto_common` here because we depend on an implementation-detail of +# `proto_lang_toolchain`, which may not be available on `proto_common`. +reject_blacklisted_files = not hasattr(native_proto_common, "proto_lang_toolchain_rejects_files_do_not_use_or_we_will_break_you_without_mercy") +cc_toolchain_blacklisted_protos = [proto + "_proto" for proto in WELL_KNOWN_PROTO_MAP.keys()] if reject_blacklisted_files else [":well_known_protos"] proto_lang_toolchain( name = "cc_toolchain", - blacklisted_protos = [proto + "_proto" for proto in WELL_KNOWN_PROTO_MAP.keys()], + blacklisted_protos = cc_toolchain_blacklisted_protos, command_line = "--cpp_out=$(OUT)", runtime = ":protobuf", visibility = ["//visibility:public"],