aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
authorGravatar twerth <twerth@google.com>2018-08-06 03:08:23 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-08-06 03:10:07 -0700
commitddd14b78958f360bfa23eba7b9d1a0a0f492443e (patch)
tree4683f24510e0d736e65f49988c4d94ce85e3ed4f /src/main/java/com/google/devtools/build/lib/rules
parent7a3e39fc20f1fba810d8023ff1608e39f501492a (diff)
Explicitly create strict java compilation args in java_library.
Otherwise we can construct cases where we don't handle exports in different cases correctly. RELNOTES: None PiperOrigin-RevId: 207517499
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java29
2 files changed, 24 insertions, 12 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java
index 5f2fc13bdd..6ecfba7b53 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java
@@ -252,7 +252,12 @@ public class JavaCommon {
*/
public JavaCompilationArgsProvider collectJavaCompilationArgs(
boolean isNeverLink, boolean srcLessDepsExport) {
- boolean javaProtoLibraryStrictDeps = semantics.isJavaProtoLibraryStrictDeps(ruleContext);
+ return collectJavaCompilationArgs(
+ isNeverLink, srcLessDepsExport, /* javaProtoLibraryStrictDeps= */ false);
+ }
+
+ public JavaCompilationArgsProvider collectJavaCompilationArgs(
+ boolean isNeverLink, boolean srcLessDepsExport, boolean javaProtoLibraryStrictDeps) {
return collectJavaCompilationArgs(
/* isNeverLink= */ isNeverLink,
/* srcLessDepsExport= */ srcLessDepsExport,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java
index b9f7360557..317b169c97 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java
@@ -163,7 +163,12 @@ public class JavaLibrary implements RuleConfiguredTargetFactory {
javaArtifacts, attributes, neverLink, helper.getBootclasspathOrDefault()));
JavaCompilationArgsProvider javaCompilationArgs =
- common.collectJavaCompilationArgs(neverLink, false);
+ common.collectJavaCompilationArgs(
+ neverLink, /* srcLessDepsExport= */ false, /* javaProtoLibraryStrictDeps= */ false);
+ JavaStrictCompilationArgsProvider strictJavaCompilationArgs =
+ new JavaStrictCompilationArgsProvider(
+ common.collectJavaCompilationArgs(
+ neverLink, /* srcLessDepsExport= */ false, /* javaProtoLibraryStrictDeps= */ true));
NestedSet<LinkerInput> transitiveJavaNativeLibraries =
common.collectTransitiveJavaNativeLibraries();
@@ -195,16 +200,18 @@ public class JavaLibrary implements RuleConfiguredTargetFactory {
: JavaCommon.getTransitivePlugins(ruleContext);
// java_library doesn't need to return JavaRunfilesProvider
- JavaInfo javaInfo = javaInfoBuilder
- .addProvider(JavaCompilationArgsProvider.class, compilationArgsProvider)
- .addProvider(JavaSourceJarsProvider.class, sourceJarsProvider)
- .addProvider(JavaRuleOutputJarsProvider.class, ruleOutputJarsProvider)
- // TODO(bazel-team): this should only happen for java_plugin
- .addProvider(JavaPluginInfoProvider.class, pluginInfoProvider)
- .setRuntimeJars(javaArtifacts.getRuntimeJars())
- .setJavaConstraints(JavaCommon.getConstraints(ruleContext))
- .setNeverlink(neverLink)
- .build();
+ JavaInfo javaInfo =
+ javaInfoBuilder
+ .addProvider(JavaCompilationArgsProvider.class, compilationArgsProvider)
+ .addProvider(JavaStrictCompilationArgsProvider.class, strictJavaCompilationArgs)
+ .addProvider(JavaSourceJarsProvider.class, sourceJarsProvider)
+ .addProvider(JavaRuleOutputJarsProvider.class, ruleOutputJarsProvider)
+ // TODO(bazel-team): this should only happen for java_plugin
+ .addProvider(JavaPluginInfoProvider.class, pluginInfoProvider)
+ .setRuntimeJars(javaArtifacts.getRuntimeJars())
+ .setJavaConstraints(JavaCommon.getConstraints(ruleContext))
+ .setNeverlink(neverLink)
+ .build();
builder
.addSkylarkTransitiveInfo(