diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java index 5bdc511e9f8a2f..0f2b702b0a4ff1 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java @@ -114,20 +114,26 @@ public final ConfiguredTarget create(RuleContext ruleContext) BuildConfiguration childToolchainConfig = entry.getKey(); String childCpu = entry.getKey().getCpu(); CcToolchainProvider childToolchain = entry.getValue(); - Iterable objcProtoProviders = objcProtoProvidersMap.get(childCpu); - ProtobufSupport protoSupport = - new ProtobufSupport( - ruleContext, - childToolchainConfig, - protosToAvoid, - ImmutableList.of(), - objcProtoProviders, - ProtobufSupport.getTransitivePortableProtoFilters(objcProtoProviders), - childToolchain) - .registerGenerationActions() - .registerCompilationActions(); - - Optional protosObjcProvider = protoSupport.getObjcProvider(); + + Optional protosObjcProvider; + if (ObjcRuleClasses.objcConfiguration(ruleContext).enableAppleBinaryNativeProtos()) { + Iterable objcProtoProviders = objcProtoProvidersMap.get(childCpu); + ProtobufSupport protoSupport = + new ProtobufSupport( + ruleContext, + childToolchainConfig, + protosToAvoid, + ImmutableList.of(), + objcProtoProviders, + ProtobufSupport.getTransitivePortableProtoFilters(objcProtoProviders), + childToolchain) + .registerGenerationActions() + .registerCompilationActions(); + + protosObjcProvider = protoSupport.getObjcProvider(); + } else { + protosObjcProvider = Optional.absent(); + } IntermediateArtifacts intermediateArtifacts = ObjcRuleClasses.intermediateArtifacts(ruleContext, childToolchainConfig); diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java index 75623ff3f75bb7..f488e81eba49e1 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java @@ -702,4 +702,15 @@ public void testAppleStaticLibraryProvider_invalidArgs() throws Exception { .hasMessageThat() .contains("unexpected keyword 'foo', for call to function AppleStaticLibrary"); } + + @Test + public void testProtoBundlingWithTargetsWithNoDeps() throws Exception { + checkProtoBundlingWithTargetsWithNoDeps(RULE_TYPE); + } + + @Test + public void testProtoBundlingDoesNotHappen() throws Exception { + useConfiguration("--noenable_apple_binary_native_protos"); + checkProtoBundlingDoesNotHappen(RULE_TYPE); + } }