From e7226d177b7359607bee6468559d2479f5d87cc6 Mon Sep 17 00:00:00 2001 From: Dmitry Lomov Date: Thu, 11 Feb 2016 15:10:22 +0000 Subject: Add support for java_imports to Skylark IDE info aspect. -- MOS_MIGRATED_REVID=114434073 --- .../lib/ideinfo/AndroidStudioInfoAspectTest.java | 8 -------- .../lib/ideinfo/AndroidStudioInfoAspectTestBase.java | 4 +++- .../devtools/build/lib/ideinfo/intellij_info.bzl | 19 +++++++++++++------ 3 files changed, 16 insertions(+), 15 deletions(-) (limited to 'src/test/java/com/google/devtools/build/lib/ideinfo') diff --git a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java index ea51474b4b..a72aedfdac 100644 --- a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java +++ b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java @@ -323,10 +323,6 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase @Test public void testJavaImport() throws Exception { - if (!isNativeTest()) { - return; - } - scratch.file( "com/google/example/BUILD", "java_import(", @@ -434,10 +430,6 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase @Test public void testGeneratedJavaImportFilesAreAddedToOutputGroup() throws Exception { - if (!isNativeTest()) { - return; - } - scratch.file( "com/google/example/BUILD", "java_import(", diff --git a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTestBase.java b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTestBase.java index f91eec07ea..03235a93f4 100644 --- a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTestBase.java +++ b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTestBase.java @@ -15,6 +15,7 @@ package com.google.devtools.build.lib.ideinfo; import static com.google.common.collect.Iterables.transform; import static com.google.common.truth.Truth.assertThat; +import static com.google.common.truth.Truth.assertWithMessage; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -164,7 +165,8 @@ abstract class AndroidStudioInfoAspectTestBase extends BuildViewTestCase { NestedSet artifacts = outputGroupProvider.getOutputGroup(outputGroup); for (Artifact artifact : artifacts) { - assertThat(getGeneratingAction(artifact)).isNotNull(); + assertWithMessage("Artifact %s has no generating action", artifact) + .that(getGeneratingAction(artifact)).isNotNull(); } List artifactRelativePaths = Lists.newArrayList(); 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 0fb3dc6aeb..7826fb7237 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 @@ -60,7 +60,7 @@ def artifact_location(file): ) def library_artifact(java_output): - if java_output == None: + if java_output == None or java_output.class_jar == None: return None return struct_omit_none( jar = artifact_location(java_output.class_jar), @@ -74,6 +74,11 @@ def annotation_processing_jars(annotation_processing): source_jar = artifact_location(annotation_processing.source_jar), ) +def add_jar_to_set(s, file): + if file != None and not file.is_source: + return s | set([file]) + else: + return s def java_rule_ide_info(target, ctx): if hasattr(ctx.rule.attr, "srcs"): @@ -82,11 +87,12 @@ def java_rule_ide_info(target, ctx): for file in src.files] 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 - if jar != None]) + for jar in [output.class_jar, output.ijar, output.source_jar] + if jar != None and not jar.is_source]) gen_jars = [] if target.java.annotation_processing and target.java.annotation_processing.enabled: @@ -94,11 +100,12 @@ def java_rule_ide_info(target, ctx): ide_resolve_files = ide_resolve_files | set([ jar for jar in [target.java.annotation_processing.class_jar, target.java.annotation_processing.source_jar] - if jar != None]) + if jar != None and not jar.is_source]) jdeps = artifact_location(target.java.outputs.jdeps) - return (struct(sources = sources, + return (struct_omit_none( + sources = sources, jars = jars, jdeps = jdeps, generated_jars = gen_jars @@ -125,7 +132,7 @@ def _aspect_impl(target, ctx): 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 + ide_resolve_files = ide_resolve_files | java_ide_resolve_files info = struct( label = str(target.label), kind = kind, -- cgit v1.2.3