diff options
author | 2017-09-19 13:20:17 +0200 | |
---|---|---|
committer | 2017-09-19 14:45:01 +0200 | |
commit | 655a529db693e0d3c89a68ca81fc4858147b90f0 (patch) | |
tree | b6b266a4076e8ea7ebc15e145db36a64b3bfa5a4 /src/test/java/com/google/devtools/build/lib | |
parent | f20ae6b20816df6a393c6e8352befba9b158fdf4 (diff) |
Expose full compile time jars in Skylark
There are several use cases for using full compile time jars instead of ijars (scala macros cannot use ijar, kotlin dependencies, etc). This change allows creating a provider with or without creating interface jars for compile time, exposing the right full/interface jars on target[JavaInfo].compile_jars and target[JavaInfo].full_compile_jars.
For more details see https://github.com/bazelbuild/bazel/issues/3528.
Fixes #3528
RELNOTES: java_common.create_provider is now supported with creating ijars by default. This introduces incompatibilities for existing users. Please set use_ijar=False if you don't want to use ijars.
PiperOrigin-RevId: 169222793
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java index fe486d6bf0..4ed01420ba 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java @@ -272,6 +272,7 @@ public class JavaSkylarkApiTest extends BuildViewTestCase { "def _impl(ctx):", " my_provider = java_common.create_provider(", " compile_time_jars = ctx.files.compile_time_jars,", + " use_ijar = False,", " runtime_jars = ctx.files.runtime_jars,", " transitive_compile_time_jars = ctx.files.transitive_compile_time_jars,", " transitive_runtime_jars = ctx.files.transitive_runtime_jars,", @@ -280,6 +281,7 @@ public class JavaSkylarkApiTest extends BuildViewTestCase { "my_rule = rule(_impl, ", " attrs = { ", " 'compile_time_jars' : attr.label_list(allow_files=['.jar']),", + " 'full_compile_time_jars' : attr.label_list(allow_files=['.jar']),", " 'runtime_jars': attr.label_list(allow_files=['.jar']),", " 'transitive_compile_time_jars': attr.label_list(allow_files=['.jar']),", " 'transitive_runtime_jars': attr.label_list(allow_files=['.jar']),", @@ -300,6 +302,10 @@ public class JavaSkylarkApiTest extends BuildViewTestCase { SkylarkNestedSet compileJars = info.getCompileTimeJars(); assertThat(prettyJarNames(compileJars.getSet(Artifact.class))).containsExactly("foo/liba.jar"); + SkylarkNestedSet fullCompileJars = info.getFullCompileTimeJars(); + assertThat( + prettyJarNames(fullCompileJars.getSet(Artifact.class))).containsExactly("foo/liba.jar"); + SkylarkNestedSet transitiveCompileTimeJars = info.getTransitiveCompileTimeJars(); assertThat(prettyJarNames( transitiveCompileTimeJars.getSet(Artifact.class))).containsExactly("foo/libc.jar"); @@ -316,6 +322,7 @@ public class JavaSkylarkApiTest extends BuildViewTestCase { "def _impl(ctx):", " my_provider = java_common.create_provider(", " compile_time_jars = ctx.files.compile_time_jars,", + " use_ijar = False,", " runtime_jars = [],", " transitive_compile_time_jars = [],", " transitive_runtime_jars = ctx.files.transitive_runtime_jars)", @@ -339,7 +346,8 @@ public class JavaSkylarkApiTest extends BuildViewTestCase { assertThat(prettyJarNames(compileJars.getSet(Artifact.class))).containsExactly("foo/liba.jar"); SkylarkNestedSet transitiveCompileTimeJars = info.getTransitiveCompileTimeJars(); - assertThat(prettyJarNames(transitiveCompileTimeJars.getSet(Artifact.class))).isEmpty(); + assertThat(prettyJarNames( + transitiveCompileTimeJars.getSet(Artifact.class))).containsExactly("foo/liba.jar"); SkylarkNestedSet transitiveRuntimeJars = info.getTransitiveRuntimeJars(); assertThat(prettyJarNames( @@ -353,6 +361,7 @@ public class JavaSkylarkApiTest extends BuildViewTestCase { "def _impl(ctx):", " my_provider = java_common.create_provider(", " compile_time_jars = depset(ctx.files.compile_time_jars),", + " use_ijar = False,", " runtime_jars = depset(ctx.files.runtime_jars),", " transitive_compile_time_jars = depset(ctx.files.transitive_compile_time_jars),", " transitive_runtime_jars = depset(ctx.files.transitive_runtime_jars),", @@ -409,6 +418,7 @@ public class JavaSkylarkApiTest extends BuildViewTestCase { " [dep[JavaInfo] for dep in ctx.attr.deps])", " my_provider = java_common.create_provider(", " compile_time_jars = depset(ctx.files.compile_time_jars),", + " use_ijar = False,", " runtime_jars = depset(ctx.files.runtime_jars))", " return [java_common.merge([my_provider, transitive_provider])]", "my_rule = rule(_impl, ", |