diff options
author | Dmitry Lomov <dslomov@google.com> | 2016-02-08 18:31:36 +0000 |
---|---|---|
committer | Dmitry Lomov <dslomov@google.com> | 2016-02-09 12:19:21 +0000 |
commit | e67b048c5f82a31b0896ab6b6a37297ff11f394c (patch) | |
tree | e5bb465a1b1a920c64dd17135adc0de8058214fc /src | |
parent | 40561f0bc889be8c0d90445befe75878ddee717b (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.java | 7 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/ideinfo/intellij_info.bzl | 28 |
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, |