aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar Michael Thvedt <mthvedt@google.com>2015-09-17 16:01:15 +0000
committerGravatar David Chen <dzc@google.com>2015-09-17 19:36:00 +0000
commit083fe29f9b3b74a369cfe594247f89abe751ce97 (patch)
treed7829af45ff17a5d179e21e35092947badfcdadf /src/main/java/com/google/devtools
parent4f9a96629be5310d8b6983f8abc98da94abf9394 (diff)
Propogate J2ObjC files from runtime_deps in Java rules.
-- MOS_MIGRATED_REVID=103294328
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcSrcsProvider.java25
3 files changed, 21 insertions, 13 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java
index 1570d7f82e..0db2fc69b9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java
@@ -145,12 +145,7 @@ public class J2ObjcAspect implements ConfiguredAspectFactory {
depsHeaderMappings, depsClassMappings, depsDependencyMappings);
}
- for (J2ObjcSrcsProvider provider :
- ruleContext.getPrerequisites("exports", Mode.TARGET, J2ObjcSrcsProvider.class)) {
- srcsBuilder.addTransitive(provider);
- }
-
- srcsBuilder.addTransitiveFromDeps(ruleContext);
+ srcsBuilder.addTransitiveJ2ObjcSrcs(ruleContext);
return builder
.addProvider(J2ObjcSrcsProvider.class, srcsBuilder.build())
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java
index 2e2b23eca0..b4649b5b56 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java
@@ -53,7 +53,7 @@ public class J2ObjcLibrary implements RuleConfiguredTargetFactory {
}
J2ObjcSrcsProvider j2ObjcSrcsProvider = new J2ObjcSrcsProvider.Builder()
- .addTransitiveFromDeps(ruleContext)
+ .addTransitiveJ2ObjcSrcs(ruleContext)
.addEntryClasses(ruleContext.attributes().get("entry_classes", Type.STRING_LIST))
.build();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcSrcsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcSrcsProvider.java
index 9c745276e5..886721fbbc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcSrcsProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcSrcsProvider.java
@@ -62,15 +62,28 @@ public final class J2ObjcSrcsProvider implements TransitiveInfoProvider {
/**
* Transitively adds all the J2ObjcSrcsProviders and all their properties
- * that can be reached through the "deps" attribute of the given RuleContext.
+ * that can be reached through the "deps", "exports" and "runtime_deps" attributes.
*
- * @param ruleContext the rule context in which to look for deps
+ * @param ruleContext the rule context
* @return this builder
*/
- public Builder addTransitiveFromDeps(RuleContext ruleContext) {
- if (ruleContext.attributes().has("deps", Type.LABEL_LIST)) {
+ public Builder addTransitiveJ2ObjcSrcs(RuleContext ruleContext) {
+ return addTransitiveJ2ObjcSrcs(ruleContext, "deps")
+ .addTransitiveJ2ObjcSrcs(ruleContext, "exports")
+ .addTransitiveJ2ObjcSrcs(ruleContext, "runtime_deps");
+ }
+
+ /**
+ * Transitively adds the J2ObjCSrcsProviders of a given attribute to this Builder.
+ *
+ * @param ruleContext the rule context
+ * @param attribute the attribute to which to add sources
+ * @return this builder
+ */
+ public Builder addTransitiveJ2ObjcSrcs(RuleContext ruleContext, String attribute) {
+ if (ruleContext.attributes().has(attribute, Type.LABEL_LIST)) {
for (J2ObjcSrcsProvider provider :
- ruleContext.getPrerequisites("deps", Mode.TARGET, J2ObjcSrcsProvider.class)) {
+ ruleContext.getPrerequisites(attribute, Mode.TARGET, J2ObjcSrcsProvider.class)) {
addTransitive(provider);
}
}
@@ -118,7 +131,7 @@ public final class J2ObjcSrcsProvider implements TransitiveInfoProvider {
* @param ruleContext the rule context in which to look for deps
*/
public static J2ObjcSrcsProvider buildFrom(RuleContext ruleContext) {
- return new Builder().addTransitiveFromDeps(ruleContext).build();
+ return new Builder().addTransitiveJ2ObjcSrcs(ruleContext).build();
}
/**