aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar Dmitry Lomov <dslomov@google.com>2015-09-15 14:03:52 +0000
committerGravatar John Field <jfield@google.com>2015-09-15 20:27:50 +0000
commit5584e381e674d9fea1469f332460019c0fd5dbf6 (patch)
tree599069baeb09503273b3296c4bd26fc1faec83e9 /src/main
parenta6434361097c0ee18c706bf7a86a93324f68e284 (diff)
Support java_test and java_binary in AndroidStudioInfoAspect.
-- MOS_MIGRATED_REVID=103089400
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java14
-rw-r--r--src/main/protobuf/android_studio_ide_info.proto5
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;