aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar allevato <allevato@google.com>2017-07-13 01:20:20 +0200
committerGravatar László Csomor <laszlocsomor@google.com>2017-07-13 09:57:05 +0200
commit05370cda96765a18986538d17ff2e07e4a5935ce (patch)
treeae60f57e435631fa03fb4905acd47dd2be7be346 /src
parent106fa1e01ea58867cbbed98f29bc2f71713bb008 (diff)
Add ObjcProvider.LINK_INPUTS as inputs to CROSSTOOL link actions.
RELNOTES: None. PiperOrigin-RevId: 161734511
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/AppleBinaryTest.java5
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/AppleDynamicLibraryTest.java6
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java29
4 files changed, 42 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java
index f047b3f7b7..ad0fed4039 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java
@@ -21,6 +21,7 @@ import static com.google.devtools.build.lib.rules.objc.ObjcProvider.HEADER;
import static com.google.devtools.build.lib.rules.objc.ObjcProvider.IMPORTED_LIBRARY;
import static com.google.devtools.build.lib.rules.objc.ObjcProvider.INCLUDE;
import static com.google.devtools.build.lib.rules.objc.ObjcProvider.INCLUDE_SYSTEM;
+import static com.google.devtools.build.lib.rules.objc.ObjcProvider.LINK_INPUTS;
import static com.google.devtools.build.lib.rules.objc.ObjcProvider.STATIC_FRAMEWORK_FILE;
import static java.util.Comparator.naturalOrder;
@@ -336,6 +337,7 @@ public class CrosstoolCompilationSupport extends CompilationSupport {
.addTransitiveActionInputs(objcProvider.get(IMPORTED_LIBRARY))
.addTransitiveActionInputs(objcProvider.get(STATIC_FRAMEWORK_FILE))
.addTransitiveActionInputs(objcProvider.get(DYNAMIC_FRAMEWORK_FILE))
+ .addTransitiveActionInputs(objcProvider.get(LINK_INPUTS))
.setCrosstoolInputs(toolchain.getLink())
.addActionInputs(prunedJ2ObjcArchives)
.addActionInputs(extraLinkInputs)
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 d387743cc5..90f42a89f8 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
@@ -861,6 +861,11 @@ public class AppleBinaryTest extends ObjcRuleTestCase {
}
@Test
+ public void testObjcProviderLinkInputsInLinkAction() throws Exception {
+ checkObjcProviderLinkInputsInLinkAction(RULE_TYPE);
+ }
+
+ @Test
public void testAppleSdkVersionEnv() throws Exception {
checkAppleSdkVersionEnv(RULE_TYPE);
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleDynamicLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleDynamicLibraryTest.java
index 3feec504a3..f128dde240 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleDynamicLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleDynamicLibraryTest.java
@@ -88,6 +88,12 @@ public class AppleDynamicLibraryTest extends ObjcRuleTestCase {
}
@Test
+ public void testObjcProviderLinkInputsInLinkAction() throws Exception {
+ checkObjcProviderLinkInputsInLinkAction(RULE_TYPE);
+ }
+
+
+ @Test
public void testAppleSdkVersionEnv() throws Exception {
checkAppleSdkVersionEnv(RULE_TYPE);
}
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 794e8404d3..005c4ee927 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
@@ -4459,6 +4459,35 @@ public abstract class ObjcRuleTestCase extends BuildViewTestCase {
.contains("-another-opt -Wl,--other-opt -one-more-opt");
}
+ protected void checkObjcProviderLinkInputsInLinkAction(RuleType ruleType) throws Exception {
+ useConfiguration("--experimental_disable_jvm", "--cpu=ios_i386");
+
+ scratch.file("bin/defs.bzl",
+ "def _custom_rule_impl(ctx):",
+ " return struct(objc=apple_common.new_objc_provider(",
+ " link_inputs=depset(ctx.files.link_inputs)))",
+ "custom_rule = rule(",
+ " _custom_rule_impl,",
+ " attrs={'link_inputs': attr.label_list(allow_files=True)},",
+ ")");
+
+ scratch.file("bin/input.txt");
+
+ scratch.file("bin/BUILD",
+ "load('//bin:defs.bzl', 'custom_rule')",
+ "custom_rule(",
+ " name = 'custom',",
+ " link_inputs = ['input.txt'],",
+ ")");
+
+ ruleType.scratchTarget(scratch,
+ "srcs", "['main.m']",
+ "deps", "['//bin:custom']");
+
+ Artifact inputFile = getSourceArtifact("bin/input.txt");
+ assertThat(linkAction("//x").getInputs()).contains(inputFile);
+ }
+
protected void checkAppleSdkVersionEnv(RuleType ruleType) throws Exception {
ruleType.scratchTarget(scratch);