diff options
author | 2015-09-15 14:03:52 +0000 | |
---|---|---|
committer | 2015-09-15 20:27:50 +0000 | |
commit | 5584e381e674d9fea1469f332460019c0fd5dbf6 (patch) | |
tree | 599069baeb09503273b3296c4bd26fc1faec83e9 /src/main | |
parent | a6434361097c0ee18c706bf7a86a93324f68e284 (diff) |
Support java_test and java_binary in AndroidStudioInfoAspect.
--
MOS_MIGRATED_REVID=103089400
Diffstat (limited to 'src/main')
3 files changed, 25 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java b/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java index 80fb82cf5a..c2fe68c467 100644 --- a/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java +++ b/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java @@ -189,7 +189,10 @@ public class AndroidStudioInfoAspect implements ConfiguredAspectFactory { outputBuilder.addAllDependencies(transform(directDependencies, LABEL_TO_STRING)); outputBuilder.addAllTransitiveDependencies(transform(transitiveDependencies, LABEL_TO_STRING)); - if (ruleKind == Kind.JAVA_LIBRARY || ruleKind == Kind.JAVA_IMPORT) { + if (ruleKind == Kind.JAVA_LIBRARY + || ruleKind == Kind.JAVA_IMPORT + || ruleKind == Kind.JAVA_TEST + || ruleKind == Kind.JAVA_BINARY) { outputBuilder.setJavaRuleIdeInfo(makeJavaRuleIdeInfo(base)); } else if (ruleKind == Kind.ANDROID_SDK) { outputBuilder.setAndroidSdkRuleInfo( @@ -323,10 +326,15 @@ public class AndroidStudioInfoAspect implements ConfiguredAspectFactory { private RuleIdeInfo.Kind getRuleKind(Rule rule, ConfiguredTarget base) { RuleIdeInfo.Kind kind; - if ("java_library".equals(rule.getRuleClassObject().getName())) { + String ruleClassName = rule.getRuleClassObject().getName(); + if ("java_library".equals(ruleClassName)) { kind = RuleIdeInfo.Kind.JAVA_LIBRARY; - } else if ("java_import".equals(rule.getRuleClassObject().getName())) { + } else if ("java_import".equals(ruleClassName)) { kind = Kind.JAVA_IMPORT; + } else if ("java_test".equals(ruleClassName)) { + kind = Kind.JAVA_TEST; + } else if ("java_binary".equals(ruleClassName)) { + kind = Kind.JAVA_BINARY; } else if (base.getProvider(AndroidSdkProvider.class) != null) { kind = RuleIdeInfo.Kind.ANDROID_SDK; } else { diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java index 48423fcaaf..f6d7b51d2a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java @@ -210,6 +210,10 @@ public class JavaBinary implements RuleConfiguredTargetFactory { semantics.addProviders(ruleContext, common, jvmFlags, classJar, srcJar, genClassJar, gensrcJar, ImmutableMap.<Artifact, Artifact>of(), helper, filesBuilder, builder); + builder.add( + JavaRuleOutputJarsProvider.class, + new JavaRuleOutputJarsProvider(classJar, srcJar, genClassJar, gensrcJar)); + NestedSet<Artifact> filesToBuild = filesBuilder.build(); collectDefaultRunfiles(runfilesBuilder, ruleContext, common, filesToBuild, launcher, @@ -276,10 +280,14 @@ public class JavaBinary implements RuleConfiguredTargetFactory { .setFilesToBuild(filesToBuild) .add(RunfilesProvider.class, runfilesProvider) .setRunfilesSupport(runfilesSupport, executable) - .add(JavaRuntimeClasspathProvider.class, + .add( + JavaRuntimeClasspathProvider.class, new JavaRuntimeClasspathProvider(common.getRuntimeClasspath())) - .add(JavaSourceJarsProvider.class, - new JavaSourceJarsProvider(transitiveSourceJars, srcJars)) + .add( + JavaSourceInfoProvider.class, + JavaSourceInfoProvider.fromJavaTargetAttributes(attributes, semantics)) + .add( + JavaSourceJarsProvider.class, new JavaSourceJarsProvider(transitiveSourceJars, srcJars)) .addOutputGroup(JavaSemantics.SOURCE_JARS_OUTPUT_GROUP, transitiveSourceJars) .addOutputGroup(JavaSemantics.GENERATED_JARS_OUTPUT_GROUP, genClassJar) .build(); diff --git a/src/main/protobuf/android_studio_ide_info.proto b/src/main/protobuf/android_studio_ide_info.proto index b7dcda2877..e81db553fc 100644 --- a/src/main/protobuf/android_studio_ide_info.proto +++ b/src/main/protobuf/android_studio_ide_info.proto @@ -52,8 +52,9 @@ message RuleIdeInfo { JAVA_LIBRARY = 4; JAVA_TEST = 5; JAVA_IMPORT = 6; - PROTO_LIBRARY = 7; - ANDROID_SDK = 8; + JAVA_BINARY = 7; + PROTO_LIBRARY = 8; + ANDROID_SDK = 9; } string label = 1; |