diff options
author | cushon <cushon@google.com> | 2018-07-05 12:51:34 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-07-05 12:53:22 -0700 |
commit | 2b62182c9854321396d7d287e8b645261d9cda82 (patch) | |
tree | 1cc2882b55183587ae29aaa3a6a34149382b17d0 /src/main/java/com/google/devtools/build/lib/rules/java | |
parent | 6e0466f2c9d76d1ad9c1ee8ef7b3013e002765f1 (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.java | 23 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java | 5 |
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()); |