aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingPatchTransition.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingSplitTransition.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactory.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java6
4 files changed, 24 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingPatchTransition.java b/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingPatchTransition.java
index eade44b9e7..86461e1900 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingPatchTransition.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingPatchTransition.java
@@ -16,17 +16,25 @@ package com.google.devtools.build.lib.analysis.config.transitions;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
/**
* A {@link ComposingSplitTransition} that only supports {@link PatchTransition}s
*
* <p>Calling code that doesn't want to have to handle splits should prefer this version.
*/
+@AutoCodec
public class ComposingPatchTransition implements PatchTransition {
private final ComposingSplitTransition delegate;
public ComposingPatchTransition(PatchTransition transition1, PatchTransition transition2) {
- this.delegate = new ComposingSplitTransition(transition1, transition2);
+ this(new ComposingSplitTransition(transition1, transition2));
+ }
+
+ @AutoCodec.Instantiator
+ @AutoCodec.VisibleForSerialization
+ ComposingPatchTransition(ComposingSplitTransition delegate) {
+ this.delegate = delegate;
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingSplitTransition.java b/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingSplitTransition.java
index 1bcbebca68..dad2928e69 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingSplitTransition.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingSplitTransition.java
@@ -17,12 +17,14 @@ package com.google.devtools.build.lib.analysis.config.transitions;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import java.util.List;
/**
* A configuration transition that composes two other transitions in an ordered sequence.
*
* <p>Example:
+ *
* <pre>
* transition1: { someSetting = $oldVal + " foo" }
* transition2: { someSetting = $oldVal + " bar" }
@@ -33,16 +35,18 @@ import java.util.List;
* combination thereof. We implement this class as a {@link SplitTransition} since that abstraction
* captures all possible combinations.
*/
+@AutoCodec
public class ComposingSplitTransition implements SplitTransition {
private ConfigurationTransition transition1;
private ConfigurationTransition transition2;
/**
- * Creates a {@link ComposingSplitTransition} that applies the sequence:
- * {@code fromOptions -> transition1 -> transition2 -> toOptions }.
+ * Creates a {@link ComposingSplitTransition} that applies the sequence: {@code fromOptions ->
+ * transition1 -> transition2 -> toOptions }.
*/
- public ComposingSplitTransition(ConfigurationTransition transition1,
- ConfigurationTransition transition2) {
+ @AutoCodec.Instantiator
+ public ComposingSplitTransition(
+ ConfigurationTransition transition1, ConfigurationTransition transition2) {
this.transition1 = verifySupported(transition1);
this.transition2 = verifySupported(transition2);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactory.java b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactory.java
index cf25d972cf..3b1261daca 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactory.java
@@ -785,6 +785,7 @@ public class ResourceFilterFactory {
return new AddDynamicallyConfiguredResourceFilteringTransition(attrs);
}
+ @AutoCodec
public static final PatchTransition REMOVE_DYNAMICALLY_CONFIGURED_RESOURCE_FILTERING_TRANSITION =
new RemoveDynamicallyConfiguredResourceFilteringTransition();
@@ -796,6 +797,8 @@ public class ResourceFilterFactory {
}
}
+ // There is no codec for this class because AttributeMap can contain extremely heavyweight
+ // objects like Package.
@VisibleForTesting
static final class AddDynamicallyConfiguredResourceFilteringTransition
extends BaseDynamicallyConfiguredResourceFilteringTransition {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java
index 8284011f06..10b2198906 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java
@@ -35,6 +35,7 @@ import com.google.devtools.build.lib.rules.apple.ApplePlatform;
import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType;
import com.google.devtools.build.lib.rules.apple.DottedVersion;
import com.google.devtools.build.lib.rules.objc.ObjcRuleClasses.PlatformRule;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter;
import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
import java.util.List;
@@ -161,9 +162,10 @@ public class MultiArchSplitTransitionProvider implements SplitTransitionProvider
/**
* Transition that results in one configured target per architecture specified in the
- * platform-specific cpu flag for a particular platform type (for example, --watchos_cpus
- * for watchos platform type).
+ * platform-specific cpu flag for a particular platform type (for example, --watchos_cpus for
+ * watchos platform type).
*/
+ @AutoCodec
protected static class AppleBinaryTransition implements SplitTransition {
private final PlatformType platformType;