diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe')
4 files changed, 32 insertions, 9 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionValue.java index 9232f7a5ba..fcaa762be7 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionValue.java @@ -14,8 +14,11 @@ package com.google.devtools.build.lib.skyframe; import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.Interner; +import com.google.devtools.build.lib.actions.ActionAnalysisMetadata; import com.google.devtools.build.lib.actions.Actions.GeneratingActions; +import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.BasicActionLookupValue; import com.google.devtools.build.lib.analysis.buildinfo.BuildInfoCollection; import com.google.devtools.build.lib.analysis.buildinfo.BuildInfoFactory; @@ -24,12 +27,14 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.concurrent.BlazeInterners; import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.skyframe.SkyFunctionName; +import java.util.ArrayList; import java.util.Objects; /** * Value that stores {@link BuildInfoCollection}s generated by {@link BuildInfoFactory} instances. * These collections are used during analysis (see {@code CachingAnalysisEnvironment}). */ +@AutoCodec public class BuildInfoCollectionValue extends BasicActionLookupValue { private final BuildInfoCollection collection; @@ -41,6 +46,17 @@ public class BuildInfoCollectionValue extends BasicActionLookupValue { this.collection = collection; } + @AutoCodec.Instantiator + @AutoCodec.VisibleForSerialization + BuildInfoCollectionValue( + ArrayList<ActionAnalysisMetadata> actions, + ImmutableMap<Artifact, Integer> generatingActionIndex, + BuildInfoCollection collection, + boolean removeActionsAfterEvaluation) { + super(actions, generatingActionIndex, removeActionsAfterEvaluation); + this.collection = collection; + } + public BuildInfoCollection getCollection() { return collection; } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsValue.java index 1f6023d5dd..0796a56495 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsValue.java @@ -28,6 +28,7 @@ import java.util.Objects; /** * A value which represents every toolchain known to Bazel and available for toolchain resolution. */ +@AutoCodec @AutoValue public abstract class RegisteredToolchainsValue implements SkyValue { @@ -77,9 +78,10 @@ public abstract class RegisteredToolchainsValue implements SkyValue { } } + @AutoCodec.Instantiator public static RegisteredToolchainsValue create( - Iterable<DeclaredToolchainInfo> registeredToolchains) { - return new AutoValue_RegisteredToolchainsValue(ImmutableList.copyOf(registeredToolchains)); + ImmutableList<DeclaredToolchainInfo> registeredToolchains) { + return new AutoValue_RegisteredToolchainsValue(registeredToolchains); } public abstract ImmutableList<DeclaredToolchainInfo> registeredToolchains(); diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionValue.java index de8d329d79..abaa41f2bf 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionValue.java @@ -30,6 +30,7 @@ import java.util.List; * type. Callers will need to consider all toolchain types that are required and merge the results * together appropriately. */ +@AutoCodec @AutoValue public abstract class ToolchainResolutionValue implements SkyValue { @@ -76,6 +77,7 @@ public abstract class ToolchainResolutionValue implements SkyValue { } } + @AutoCodec.Instantiator public static ToolchainResolutionValue create( ImmutableMap<ConfiguredTargetKey, Label> availableToolchainLabels) { return new AutoValue_ToolchainResolutionValue(availableToolchainLabels); diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceStatusValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceStatusValue.java index 0a748f9ea2..20ef47d75b 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceStatusValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceStatusValue.java @@ -26,19 +26,20 @@ import com.google.devtools.build.skyframe.SkyKey; */ // TODO(bazel-team): This seems to be superfluous now, but it cannot be removed without making // PrecomputedValue public instead of package-private +@AutoCodec public class WorkspaceStatusValue extends BasicActionLookupValue { private final Artifact stableArtifact; private final Artifact volatileArtifact; // There should only ever be one BuildInfo value in the graph. - public static final BuildInfoKey BUILD_INFO_KEY = BuildInfoKey.INSTANCE; + @AutoCodec public static final BuildInfoKey BUILD_INFO_KEY = new BuildInfoKey(); WorkspaceStatusValue( Artifact stableArtifact, Artifact volatileArtifact, - WorkspaceStatusAction action, - boolean removeActionAfterEvaluation) { - super(action, removeActionAfterEvaluation); + WorkspaceStatusAction workspaceStatusAction, + boolean removeActionsAfterEvaluation) { + super(workspaceStatusAction, removeActionsAfterEvaluation); this.stableArtifact = stableArtifact; this.volatileArtifact = volatileArtifact; } @@ -51,11 +52,13 @@ public class WorkspaceStatusValue extends BasicActionLookupValue { return volatileArtifact; } + @AutoCodec.VisibleForSerialization + WorkspaceStatusAction getWorkspaceStatusAction() { + return (WorkspaceStatusAction) getAction(0); + } + /** {@link SkyKey} for {@link WorkspaceStatusValue}. */ public static class BuildInfoKey extends ActionLookupKey { - @AutoCodec @AutoCodec.VisibleForSerialization - static final BuildInfoKey INSTANCE = new BuildInfoKey(); - private BuildInfoKey() {} @Override |