diff options
author | 2018-02-27 14:15:45 -0800 | |
---|---|---|
committer | 2018-02-27 14:17:21 -0800 | |
commit | 860e103e37ec2765a2dce04bf05c14ba0828066c (patch) | |
tree | 08083005666b37c77f363cea078dcc35112d979a /src/main/java/com/google/devtools/build/lib/rules/cpp | |
parent | c5e36f668ae953dfec24850522b10f79bc686945 (diff) |
Add @AutoCodec to some PatchTransitions.
PiperOrigin-RevId: 187230702
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp')
3 files changed, 19 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/ContextCollectorOwnerTransition.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/ContextCollectorOwnerTransition.java index 3958974c55..a13f31991c 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/ContextCollectorOwnerTransition.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/ContextCollectorOwnerTransition.java @@ -19,10 +19,11 @@ import com.google.devtools.build.lib.analysis.config.BuildOptions; import com.google.devtools.build.lib.analysis.config.transitions.PatchTransition; import com.google.devtools.build.lib.rules.cpp.CppOptions; import com.google.devtools.build.lib.rules.cpp.CppOptions.LipoConfigurationState; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; /** - * Configuration transition that creates the "artifact owner" configuration from the LIPO - * context collector configuration. + * Configuration transition that creates the "artifact owner" configuration from the LIPO context + * collector configuration. * * <p>The context collector creates C++ output artifacts but doesn't create the actions that * generate those artifacts (this is what {@link BuildConfiguration#isActionsEnabled()} means). @@ -33,6 +34,8 @@ import com.google.devtools.build.lib.rules.cpp.CppOptions.LipoConfigurationState * <p>This is a no-op for all configurations but the context collector. */ public class ContextCollectorOwnerTransition implements PatchTransition { + + @AutoCodec public static final ContextCollectorOwnerTransition INSTANCE = new ContextCollectorOwnerTransition(); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/DisableLipoTransition.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/DisableLipoTransition.java index 3284a1b1c2..111207eb42 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/DisableLipoTransition.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/DisableLipoTransition.java @@ -17,17 +17,17 @@ package com.google.devtools.build.lib.rules.cpp.transitions; import com.google.devtools.build.lib.analysis.config.BuildOptions; import com.google.devtools.build.lib.analysis.config.transitions.PatchTransition; import com.google.devtools.build.lib.rules.cpp.CppOptions; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.LipoMode; /** * Configuration transition that turns off LIPO/FDO settings. * - * <p>Has no effect on non-LIPO-enabled configurations or the LIPO context collector - * configuration. - * + * <p>Has no effect on non-LIPO-enabled configurations or the LIPO context collector configuration. */ public final class DisableLipoTransition implements PatchTransition { - public static final DisableLipoTransition INSTANCE = new DisableLipoTransition(); + + @AutoCodec public static final DisableLipoTransition INSTANCE = new DisableLipoTransition(); private DisableLipoTransition() {} diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/EnableLipoTransition.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/EnableLipoTransition.java index 0d1295cbc5..883d59cd34 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/EnableLipoTransition.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/EnableLipoTransition.java @@ -20,6 +20,8 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.rules.cpp.CppOptions; import com.google.devtools.build.lib.rules.cpp.CppOptions.LipoConfigurationState; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization; import java.util.Objects; /** @@ -27,6 +29,7 @@ import java.util.Objects; * disabled. */ @Immutable +@AutoCodec public class EnableLipoTransition implements PatchTransition { private final Label ruleLabel; private final int hashCode; @@ -36,8 +39,14 @@ public class EnableLipoTransition implements PatchTransition { * restricting this transition to the LIPO context binary. */ public EnableLipoTransition(Label ruleLabel) { + this(ruleLabel, Objects.hashCode(ruleLabel)); + } + + @VisibleForSerialization + @AutoCodec.Instantiator + EnableLipoTransition(Label ruleLabel, int hashCode) { this.ruleLabel = ruleLabel; - this.hashCode = Objects.hashCode(ruleLabel); + this.hashCode = hashCode; } @Override |