aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/AppleBinaryTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java4
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/IosTestTest.java21
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/ObjcBinaryTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java13
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java9
9 files changed, 42 insertions, 15 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java
index d296905dfc..c7fe14fa3b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java
@@ -164,8 +164,6 @@ public class AppleBinary implements RuleConfiguredTargetFactory {
objcProviderBuilder.add(MULTI_ARCH_LINKED_BINARIES, outputArtifact);
ObjcProvider objcProvider = objcProviderBuilder.build();
- // TODO(cparsons): Stop propagating ObjcProvider directly from this rule.
- targetBuilder.addProvider(ObjcProvider.class, objcProvider);
switch (getBinaryType(ruleContext)) {
case EXECUTABLE:
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 49575aa0de..9aeb22456b 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
@@ -180,8 +180,6 @@ public class AppleStaticLibrary implements RuleConfiguredTargetFactory {
ObjcProvider objcProvider = objcProviderBuilder.build();
targetBuilder
- // TODO(cparsons): Remove ObjcProvider as a direct provider.
- .addProvider(ObjcProvider.class, objcProvider)
.addNativeDeclaredProvider(
new AppleStaticLibraryProvider(
ruleIntermediateArtifacts.combinedArchitectureArchive(),
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleBinaryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleBinaryTest.java
index c58c64972c..fd5b7dda98 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleBinaryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleBinaryTest.java
@@ -1440,7 +1440,7 @@ public class AppleBinaryTest extends ObjcRuleTestCase {
@Test
public void testCustomModuleMap() throws Exception {
- checkCustomModuleMap(RULE_TYPE);
+ checkCustomModuleMap(RULE_TYPE, true);
}
@Test
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 6d8a4125ab..af648730ff 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
@@ -149,7 +149,9 @@ public class AppleStaticLibraryTest extends ObjcRuleTestCase {
" resources = [':avoid.png']",
")");
- ObjcProvider provider = providerForTarget("//package:test");
+ ObjcProvider provider = getConfiguredTarget("//package:test")
+ .get(AppleStaticLibraryProvider.SKYLARK_CONSTRUCTOR)
+ .getDepsObjcProvider();
// Do not remove SDK_FRAMEWORK or GENERAL_RESOURCE_FILE values in avoid_deps.
assertThat(provider.get(ObjcProvider.SDK_FRAMEWORK))
.containsAllOf(new SdkFramework("AvoidSDK"), new SdkFramework("BaseSDK"));
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/IosTestTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/IosTestTest.java
index 8427e72fd8..8744460e4f 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/IosTestTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/IosTestTest.java
@@ -1167,7 +1167,22 @@ public class IosTestTest extends ObjcRuleTestCase {
// Usually, an ios_test would depend on apple_binary through a skylark_ios_application in its
// 'binary' attribute. Since we don't have skylark_ios_application here, we use the 'deps'
// attribute instead.
+ scratch.file("skylarkstub/BUILD");
+ scratch.file("skylarkstub/skylark_stub.bzl",
+ "def skylark_ios_application_stub_impl(ctx):",
+ " bin_provider = ctx.attr.binary[apple_common.AppleExecutableBinary]",
+ " return struct(objc=bin_provider.objc)",
+ "skylark_ios_application_stub = rule(",
+ " skylark_ios_application_stub_impl,",
+ // Both 'binary' and 'deps' are needed because ObjcProtoAspect is applied transitively
+ // along attribute 'deps' only.
+ " attrs = {'binary': attr.label(mandatory=True,",
+ " providers=[apple_common.AppleExecutableBinary])},",
+ " fragments = ['apple', 'objc'],",
+ ")");
+
scratch.file("x/BUILD",
+ "load('//skylarkstub:skylark_stub.bzl', 'skylark_ios_application_stub')",
"genrule(",
" name = 'gen_hdrs',",
" outs = ['generated.h'],",
@@ -1179,6 +1194,10 @@ public class IosTestTest extends ObjcRuleTestCase {
" platform_type = 'ios',",
" hdrs = ['generated.h'],",
")",
+ "skylark_ios_application_stub(",
+ " name = 'stub_application',",
+ " binary = ':apple_bin',",
+ ")",
"objc_binary(",
" name = 'bin',",
" srcs = ['bin.m'],",
@@ -1192,7 +1211,7 @@ public class IosTestTest extends ObjcRuleTestCase {
" srcs = ['test.m'],",
" xctest = 1,",
" xctest_app = ':testApp',",
- " deps = [':apple_bin']",
+ " deps = [':stub_application']",
")");
CommandAction compileAction = compileAction("//x:test", "test.o");
// The genfiles root for child configurations must be present in the compile action so that
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcBinaryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcBinaryTest.java
index acc33621bd..b645e72ebb 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcBinaryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcBinaryTest.java
@@ -928,7 +928,7 @@ public class ObjcBinaryTest extends ObjcRuleTestCase {
@Test
public void testCustomModuleMap() throws Exception {
- checkCustomModuleMap(RULE_TYPE);
+ checkCustomModuleMap(RULE_TYPE, false);
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
index 5b7155528c..0de742a796 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
@@ -1596,6 +1596,6 @@ public class ObjcLibraryTest extends ObjcRuleTestCase {
@Test
public void testCustomModuleMap() throws Exception {
- checkCustomModuleMap(RULE_TYPE);
+ checkCustomModuleMap(RULE_TYPE, false);
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java
index a2689cd8fc..4a87049350 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java
@@ -679,12 +679,12 @@ public class ObjcProtoLibraryTest extends ObjcRuleTestCase {
@Test
public void testModulemapCreatedForNonLinkingTargets() throws Exception {
- checkOnlyLibModuleMapsArePresentForTarget("//package:opl_protobuf");
+ checkOnlyLibModuleMapsArePresentForTarget("//package:opl_protobuf", false);
}
@Test
public void testModulemapNotCreatedForLinkingTargets() throws Exception {
- checkOnlyLibModuleMapsArePresentForTarget("//package:opl_binary");
+ checkOnlyLibModuleMapsArePresentForTarget("//package:opl_binary", true);
}
@Test
@@ -760,7 +760,8 @@ public class ObjcProtoLibraryTest extends ObjcRuleTestCase {
return Joiner.on('\n').join(Ordering.natural().immutableSortedCopy(elements));
}
- private void checkOnlyLibModuleMapsArePresentForTarget(String target) throws Exception {
+ private void checkOnlyLibModuleMapsArePresentForTarget(String target,
+ boolean fromBinary) throws Exception {
Artifact libModuleMap =
getGenfilesArtifact(
"opl_protobuf.modulemaps/module.modulemap",
@@ -770,7 +771,11 @@ public class ObjcProtoLibraryTest extends ObjcRuleTestCase {
"protobuf_lib.modulemaps/module.modulemap",
getConfiguredTarget("//objcproto:protobuf_lib"));
- ObjcProvider provider = providerForTarget(target);
+ ObjcProvider provider = fromBinary
+ ? getConfiguredTarget(target)
+ .get(AppleExecutableBinaryProvider.SKYLARK_CONSTRUCTOR)
+ .getDepsObjcProvider()
+ : providerForTarget(target);
assertThat(Artifact.toRootRelativePaths(provider.get(ObjcProvider.MODULE_MAP).toSet()))
.containsExactlyElementsIn(
Artifact.toRootRelativePaths(ImmutableSet.of(libModuleMap, protolibModuleMap)));
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java
index 9ae12ffe0f..b8877ab46f 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java
@@ -4896,7 +4896,7 @@ public abstract class ObjcRuleTestCase extends BuildViewTestCase {
.isEqualTo("a.o");
}
- protected void checkCustomModuleMap(RuleType ruleType) throws Exception {
+ protected void checkCustomModuleMap(RuleType ruleType, boolean fromBinary) throws Exception {
useConfiguration("--experimental_objc_enable_module_maps");
ruleType.scratchTarget(scratch, "srcs", "['a.m']", "deps", "['//z:testModuleMap']");
scratch.file("x/a.m");
@@ -4921,10 +4921,15 @@ public abstract class ObjcRuleTestCase extends BuildViewTestCase {
assertThat(compileActionA.getArguments()).doesNotContain("-fmodule-name");
ObjcProvider provider = providerForTarget("//z:testModuleMap");
+
assertThat(Artifact.toExecPaths(provider.get(MODULE_MAP)))
.containsExactly("y/module.modulemap");
- provider = providerForTarget("//x:x");
+ provider = fromBinary
+ ? getConfiguredTarget("//x:x")
+ .get(AppleExecutableBinaryProvider.SKYLARK_CONSTRUCTOR)
+ .getDepsObjcProvider()
+ : providerForTarget("//x:x");
assertThat(Artifact.toExecPaths(provider.get(MODULE_MAP))).contains("y/module.modulemap");
}