diff options
author | 2015-09-17 16:01:15 +0000 | |
---|---|---|
committer | 2015-09-17 19:36:00 +0000 | |
commit | 083fe29f9b3b74a369cfe594247f89abe751ce97 (patch) | |
tree | d7829af45ff17a5d179e21e35092947badfcdadf /src/main/java/com/google/devtools | |
parent | 4f9a96629be5310d8b6983f8abc98da94abf9394 (diff) |
Propogate J2ObjC files from runtime_deps in Java rules.
--
MOS_MIGRATED_REVID=103294328
Diffstat (limited to 'src/main/java/com/google/devtools')
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(); } /** |