aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-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());