aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/java
diff options
context:
space:
mode:
authorGravatar cushon <cushon@google.com>2018-07-05 12:51:34 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-05 12:53:22 -0700
commit2b62182c9854321396d7d287e8b645261d9cda82 (patch)
tree1cc2882b55183587ae29aaa3a6a34149382b17d0 /src/main/java/com/google/devtools/build/lib/rules/java
parent6e0466f2c9d76d1ad9c1ee8ef7b3013e002765f1 (diff)
Reverse the order of java_toolchain.compatible_with and java_toolchain.package_configuration javacopts
to allow package_configuration to override compatible_with javacopts. PiperOrigin-RevId: 203396587
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/JavaCommon.java23
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java5
2 files changed, 12 insertions, 16 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 db528fc26f..e88782951d 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
@@ -20,7 +20,6 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
-import com.google.common.collect.Streams;
import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.AnalysisEnvironment;
@@ -431,25 +430,21 @@ public class JavaCommon {
/** Computes javacopts for the current rule. */
private ImmutableList<String> computeJavacOpts(Collection<String> extraRuleJavacOpts) {
return ImmutableList.<String>builder()
- .addAll(computeToolchainJavacOpts(ruleContext, javaToolchain))
+ .addAll(javaToolchain.getJavacOptions())
.addAll(extraRuleJavacOpts)
+ .addAll(computePerPackageJavacOpts(ruleContext, javaToolchain))
.addAll(ruleContext.getExpander().withDataLocations().tokenized("javacopts"))
.build();
}
- /**
- * Returns the toolchain javacopts for the current rule, including global defaults as well as any
- * per-package configuration.
- */
- public static ImmutableList<String> computeToolchainJavacOpts(
+ /** Returns the per-package configured javacopts. */
+ public static ImmutableList<String> computePerPackageJavacOpts(
RuleContext ruleContext, JavaToolchainProvider toolchain) {
- return Streams.concat(
- toolchain.getJavacOptions().stream(),
- toolchain
- .packageConfiguration()
- .stream()
- .filter(p -> p.matches(ruleContext.getLabel()))
- .flatMap(p -> p.javacopts().stream()))
+ return toolchain
+ .packageConfiguration()
+ .stream()
+ .filter(p -> p.matches(ruleContext.getLabel()))
+ .flatMap(p -> p.javacopts().stream())
.collect(toImmutableList());
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java
index 802d86ca98..0bab58e1ec 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java
@@ -448,11 +448,12 @@ final class JavaInfoBuildHelper {
.setSourcePathEntries(sourcepathEntries)
.setJavacOpts(
ImmutableList.<String>builder()
+ .addAll(toolchainProvider.getJavacOptions())
.addAll(
- JavaCommon.computeToolchainJavacOpts(
+ javaSemantics.getCompatibleJavacOptions(
skylarkRuleContext.getRuleContext(), toolchainProvider))
.addAll(
- javaSemantics.getCompatibleJavacOptions(
+ JavaCommon.computePerPackageJavacOpts(
skylarkRuleContext.getRuleContext(), toolchainProvider))
.addAll(javacOpts)
.build());