diff options
author | twerth <twerth@google.com> | 2018-07-25 05:47:05 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-07-25 05:48:45 -0700 |
commit | 54a381b2bca74988c01b7e4bb7cf4c3e1507ac14 (patch) | |
tree | 9f302f7992e99fa2a36e1e83fcff30c6b9074fc1 /src/main/java/com/google/devtools/build/lib/rules/java | |
parent | 8fd1afd9ce02b5c6b058064c11e92bc0e3cd3145 (diff) |
Fake a JavaStrictCompilationArgsProvider if there's none.
There were convoluted cases with multiple JavaInfo created from Skylark that
didn't have the JavaStrictCompilationArgsProvider. If these were to be merged
and later forwarded with exports we would miss them as dependencies.
RELNOTES: None
PiperOrigin-RevId: 205980933
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java index ab6d409b1f..ec3ad4727f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java @@ -553,6 +553,16 @@ public final class JavaInfo extends NativeInfo implements JavaInfoApi<Artifact> } public JavaInfo build() { + // TODO(twerth): Clean up after we remove java_proto_library.strict_deps. + // Instead of teaching every (potential Skylark) caller to also create the provider for strict + // deps we wrap the non strict provider instead. + if (!providerMap.contains(JavaStrictCompilationArgsProvider.class) + && providerMap.contains(JavaCompilationArgsProvider.class)) { + JavaStrictCompilationArgsProvider javaStrictCompilationArgsProvider = + new JavaStrictCompilationArgsProvider( + providerMap.getProvider(JavaCompilationArgsProvider.class)); + addProvider(JavaStrictCompilationArgsProvider.class, javaStrictCompilationArgsProvider); + } return new JavaInfo(providerMap.build(), runtimeJars, neverlink, javaConstraints, location); } } |