aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Dmitry Lomov <dslomov@google.com>2016-02-08 18:31:36 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-02-09 12:19:21 +0000
commite67b048c5f82a31b0896ab6b6a37297ff11f394c (patch)
treee5bb465a1b1a920c64dd17135adc0de8058214fc /src
parent40561f0bc889be8c0d90445befe75878ddee717b (diff)
Implement ide-resolve output group in IntelliJ info aspect.
-- MOS_MIGRATED_REVID=114124584
Diffstat (limited to 'src')
-rw-r--r--src/test/java/com/google/devtools/build/lib/ideinfo/IntelliJSkylarkAspectTest.java7
-rw-r--r--src/test/java/com/google/devtools/build/lib/ideinfo/intellij_info.bzl28
2 files changed, 27 insertions, 8 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/ideinfo/IntelliJSkylarkAspectTest.java b/src/test/java/com/google/devtools/build/lib/ideinfo/IntelliJSkylarkAspectTest.java
index 0ff44826b3..8a78ccfcd4 100644
--- a/src/test/java/com/google/devtools/build/lib/ideinfo/IntelliJSkylarkAspectTest.java
+++ b/src/test/java/com/google/devtools/build/lib/ideinfo/IntelliJSkylarkAspectTest.java
@@ -91,6 +91,12 @@ public class IntelliJSkylarkAspectTest extends AndroidStudioInfoAspectTestBase {
"com/google/example", "libsimple.jar", "libsimple-ijar.jar", "libsimple-src.jar"));
assertThat(ruleIdeInfo.getJavaRuleIdeInfo().getJdeps().getRelativePath())
.isEqualTo("com/google/example/libsimple.jdeps");
+
+ assertThat(getIdeResolveFiles()).containsExactly(
+ "com/google/example/libsimple.jar",
+ "com/google/example/libsimple-ijar.jar",
+ "com/google/example/libsimple-src.jar"
+ );
}
@Test
@@ -124,6 +130,7 @@ public class IntelliJSkylarkAspectTest extends AndroidStudioInfoAspectTestBase {
.containsExactly("com/google/example/extracomplex/ExtraComplex.java");
assertThat(extraComplexRuleIdeInfo.getDependenciesList())
.containsExactly("//com/google/example:complex");
+
}
@Override
diff --git a/src/test/java/com/google/devtools/build/lib/ideinfo/intellij_info.bzl b/src/test/java/com/google/devtools/build/lib/ideinfo/intellij_info.bzl
index 90ca5055b2..1f839d36bb 100644
--- a/src/test/java/com/google/devtools/build/lib/ideinfo/intellij_info.bzl
+++ b/src/test/java/com/google/devtools/build/lib/ideinfo/intellij_info.bzl
@@ -70,12 +70,16 @@ def java_rule_ide_info(target, ctx):
else:
sources = []
jars = [library_artifact(output) for output in target.java.outputs.jars]
+ ide_resolve_files = set([jar
+ for jar in [output.class_jar, output.ijar, output.source_jar]
+ for output in target.java.outputs.jars])
jdeps = artifact_location(target.java.outputs.jdeps)
- return struct(sources = sources,
- jars = jars,
- jdeps = jdeps,
- ) # todo(dslomov): more fields
+ return (struct(sources = sources,
+ jars = jars,
+ jdeps = jdeps,
+ ),
+ ide_resolve_files)
def _aspect_impl(target, ctx):
@@ -83,23 +87,27 @@ def _aspect_impl(target, ctx):
rule_attrs = ctx.rule.attr
ide_info_text = set()
+ ide_resolve_files = set()
all_deps = []
for attr_name in DEPENDENCY_ATTRIBUTES:
if hasattr(rule_attrs, attr_name):
deps = getattr(rule_attrs, attr_name)
for dep in deps:
- ide_info_text += dep.android_studio_info_files
+ ide_info_text = ide_info_text | dep.intellij_info_files.ide_info_text
+ ide_resolve_files = ide_resolve_files | dep.intellij_info_files.ide_resolve_files
all_deps += [str(dep.label) for dep in deps]
if kind != _unrecognized_rule:
if is_java_rule(target, ctx):
+ java_rule_ide_info, java_ide_resolve_files = java_rule_ide_info(target, ctx)
+ ide_resolve_files += java_ide_resolve_files
info = struct(
label = str(target.label),
kind = kind,
dependencies = all_deps,
# build_file = ???
- java_rule_ide_info = java_rule_ide_info(target, ctx)
+ java_rule_ide_info = java_rule_ide_info,
)
else:
info = struct(
@@ -114,9 +122,13 @@ def _aspect_impl(target, ctx):
return struct(
output_groups = {
- "ide-info-text" : ide_info_text
+ "ide-info-text" : ide_info_text,
+ "ide-resolve" : ide_resolve_files,
},
- android_studio_info_files = ide_info_text
+ intellij_info_files = struct(
+ ide_info_text = ide_info_text,
+ ide_resolve_files = ide_resolve_files,
+ )
)
intellij_info_aspect = aspect(implementation = _aspect_impl,