aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp
diff options
context:
space:
mode:
authorGravatar mjhalupka <mjhalupka@google.com>2018-02-27 14:15:45 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-27 14:17:21 -0800
commit860e103e37ec2765a2dce04bf05c14ba0828066c (patch)
tree08083005666b37c77f363cea078dcc35112d979a /src/main/java/com/google/devtools/build/lib/rules/cpp
parentc5e36f668ae953dfec24850522b10f79bc686945 (diff)
Add @AutoCodec to some PatchTransitions.
PiperOrigin-RevId: 187230702
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/ContextCollectorOwnerTransition.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/DisableLipoTransition.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/EnableLipoTransition.java11
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