Read --enable_apple_binary_native_protos to check whether to link ObjC protos into apple_static_library outputs.
RELNOTES: None
PiperOrigin-RevId: 252659365
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 5bdc511..0f2b702 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 @@
BuildConfiguration childToolchainConfig = entry.getKey();
String childCpu = entry.getKey().getCpu();
CcToolchainProvider childToolchain = entry.getValue();
- Iterable<ObjcProtoProvider> objcProtoProviders = objcProtoProvidersMap.get(childCpu);
- ProtobufSupport protoSupport =
- new ProtobufSupport(
- ruleContext,
- childToolchainConfig,
- protosToAvoid,
- ImmutableList.<ProtoInfo>of(),
- objcProtoProviders,
- ProtobufSupport.getTransitivePortableProtoFilters(objcProtoProviders),
- childToolchain)
- .registerGenerationActions()
- .registerCompilationActions();
- Optional<ObjcProvider> protosObjcProvider = protoSupport.getObjcProvider();
+ Optional<ObjcProvider> protosObjcProvider;
+ if (ObjcRuleClasses.objcConfiguration(ruleContext).enableAppleBinaryNativeProtos()) {
+ Iterable<ObjcProtoProvider> objcProtoProviders = objcProtoProvidersMap.get(childCpu);
+ ProtobufSupport protoSupport =
+ new ProtobufSupport(
+ ruleContext,
+ childToolchainConfig,
+ protosToAvoid,
+ ImmutableList.<ProtoInfo>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 75623ff..f488e81 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 @@
.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);
+ }
}