aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis
diff options
context:
space:
mode:
authorGravatar cpeyser <cpeyser@google.com>2018-03-02 10:20:15 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-02 10:22:30 -0800
commiteee53d3a33dde441f7e7adaecde81ef2d3db7c1b (patch)
tree0c6ddd2c54993b9b919e2e59faa0ddd1de117bb0 /src/main/java/com/google/devtools/build/lib/analysis
parentd1201c8e61ee77feabeb83da88e0eae049087a09 (diff)
@AutoCodec ConfiguredTargetValue.
PiperOrigin-RevId: 187635570
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java27
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/constraints/EnvironmentCollection.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/constraints/SupportedEnvironments.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionInfoFileWriteAction.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/platform/ToolchainInfo.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/test/BaselineCoverageAction.java14
8 files changed, 49 insertions, 32 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java b/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java
index 2fc824a10f..a2ba6867df 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java
@@ -24,6 +24,8 @@ import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.actions.AbstractFileWriteAction;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.events.EventHandler;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.vfs.PathFragment;
import java.io.BufferedWriter;
@@ -40,15 +42,15 @@ import java.util.Map;
import javax.annotation.Nullable;
/**
- * Action to create a manifest of input files for processing by a subsequent
- * build step (e.g. runfiles symlinking or archive building).
+ * Action to create a manifest of input files for processing by a subsequent build step (e.g.
+ * runfiles symlinking or archive building).
*
- * <p>The manifest's format is specifiable by {@link ManifestType}, in
- * accordance with the needs of the calling functionality.
+ * <p>The manifest's format is specifiable by {@link ManifestType}, in accordance with the needs of
+ * the calling functionality.
*
- * <p>Note that this action carefully avoids building the manifest content in
- * memory.
+ * <p>Note that this action carefully avoids building the manifest content in memory.
*/
+@AutoCodec
@Immutable // if all ManifestWriter implementations are immutable
public final class SourceManifestAction extends AbstractFileWriteAction {
@@ -93,17 +95,18 @@ public final class SourceManifestAction extends AbstractFileWriteAction {
private final Runfiles runfiles;
/**
- * Creates a new AbstractSourceManifestAction instance using latin1 encoding
- * to write the manifest file and with a specified root path for manifest entries.
+ * Creates a new AbstractSourceManifestAction instance using latin1 encoding to write the manifest
+ * file and with a specified root path for manifest entries.
*
* @param manifestWriter the strategy to use to write manifest entries
* @param owner the action owner
- * @param output the file to which to write the manifest
+ * @param primaryOutput the file to which to write the manifest
* @param runfiles runfiles
*/
- private SourceManifestAction(ManifestWriter manifestWriter, ActionOwner owner, Artifact output,
- Runfiles runfiles) {
- super(owner, getDependencies(runfiles), output, false);
+ @VisibleForSerialization
+ SourceManifestAction(
+ ManifestWriter manifestWriter, ActionOwner owner, Artifact primaryOutput, Runfiles runfiles) {
+ super(owner, getDependencies(runfiles), primaryOutput, false);
this.manifestWriter = manifestWriter;
this.runfiles = runfiles;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java
index d0aba38bdc..13b7aaaead 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java
@@ -76,7 +76,10 @@ public class SymlinkAction extends AbstractAction {
Artifact primaryInput,
Artifact primaryOutput,
String progressMessage) {
- super(owner, ImmutableList.of(primaryInput), ImmutableList.of(primaryOutput));
+ super(
+ owner,
+ primaryInput != null ? ImmutableList.of(primaryInput) : Artifact.NO_ARTIFACTS,
+ ImmutableList.of(primaryOutput));
this.inputPath = inputPath;
this.progressMessage = progressMessage;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java
index 372ec570e1..770fee7edd 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java
@@ -41,6 +41,7 @@ import com.google.devtools.build.lib.packages.OutputFile;
import com.google.devtools.build.lib.packages.PackageSpecification.PackageGroupContents;
import com.google.devtools.build.lib.packages.Provider;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.Instantiator;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter;
@@ -55,6 +56,7 @@ import javax.annotation.Nullable;
* analyzed rule. For more information about how analysis works, see {@link
* com.google.devtools.build.lib.analysis.RuleConfiguredTargetFactory}.
*/
+@AutoCodec
public final class RuleConfiguredTarget extends AbstractConfiguredTarget {
/**
* The configuration transition for an attribute through which a prerequisite
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/constraints/EnvironmentCollection.java b/src/main/java/com/google/devtools/build/lib/analysis/constraints/EnvironmentCollection.java
index 7dc850e254..c1ce9f0a1a 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/constraints/EnvironmentCollection.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/constraints/EnvironmentCollection.java
@@ -21,16 +21,18 @@ import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.packages.EnvironmentLabels;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import java.util.Map;
-/**
- * Contains a set of {@link Environment} labels and their associated groups.
- */
+/** Contains a set of {@link Environment} labels and their associated groups. */
+@AutoCodec
@Immutable
public class EnvironmentCollection {
private final ImmutableMultimap<EnvironmentLabels, Label> map;
- private EnvironmentCollection(ImmutableMultimap<EnvironmentLabels, Label> map) {
+ @VisibleForSerialization
+ EnvironmentCollection(ImmutableMultimap<EnvironmentLabels, Label> map) {
this.map = map;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/constraints/SupportedEnvironments.java b/src/main/java/com/google/devtools/build/lib/analysis/constraints/SupportedEnvironments.java
index 1b89bda6ba..c1eaac7419 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/constraints/SupportedEnvironments.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/constraints/SupportedEnvironments.java
@@ -17,11 +17,11 @@ package com.google.devtools.build.lib.analysis.constraints;
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.analysis.LabelAndLocation;
import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import java.util.Map;
-/**
- * Standard {@link SupportedEnvironmentsProvider} implementation.
- */
+/** Standard {@link SupportedEnvironmentsProvider} implementation. */
+@AutoCodec
public class SupportedEnvironments implements SupportedEnvironmentsProvider {
private final EnvironmentCollection staticEnvironments;
private final EnvironmentCollection refinedEnvironments;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionInfoFileWriteAction.java b/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionInfoFileWriteAction.java
index d2f080ee2a..4b2ef4bacb 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionInfoFileWriteAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionInfoFileWriteAction.java
@@ -26,6 +26,7 @@ import com.google.devtools.build.lib.actions.UserExecException;
import com.google.devtools.build.lib.analysis.actions.AbstractFileWriteAction;
import com.google.devtools.build.lib.analysis.actions.ProtoDeterministicWriter;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.util.Fingerprint;
import java.io.IOException;
@@ -34,17 +35,17 @@ import java.io.IOException;
* .xa file for use by an extra action. This can only be done at execution time because actions may
* store information only known at execution time into the protocol buffer.
*/
+@AutoCodec
@Immutable // if shadowedAction is immutable
public final class ExtraActionInfoFileWriteAction extends AbstractFileWriteAction {
private static final String UUID = "1759f81d-e72e-477d-b182-c4532bdbaeeb";
private final Action shadowedAction;
- ExtraActionInfoFileWriteAction(ActionOwner owner, Artifact extraActionInfoFile,
- Action shadowedAction) {
- super(owner, ImmutableList.<Artifact>of(), extraActionInfoFile, false);
+ ExtraActionInfoFileWriteAction(ActionOwner owner, Artifact primaryOutput, Action shadowedAction) {
+ super(owner, ImmutableList.<Artifact>of(), primaryOutput, false);
- this.shadowedAction = Preconditions.checkNotNull(shadowedAction, extraActionInfoFile);
+ this.shadowedAction = Preconditions.checkNotNull(shadowedAction, primaryOutput);
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/platform/ToolchainInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/platform/ToolchainInfo.java
index 0768a8b624..f6601af480 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/platform/ToolchainInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/platform/ToolchainInfo.java
@@ -21,6 +21,7 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.packages.NativeInfo;
import com.google.devtools.build.lib.packages.NativeProvider;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.syntax.EvalException;
@@ -38,6 +39,7 @@ import java.util.Map;
doc = "Provides access to data about a specific toolchain.",
category = SkylarkModuleCategory.PROVIDER
)
+@AutoCodec
@Immutable
public class ToolchainInfo extends NativeInfo {
@@ -57,6 +59,7 @@ public class ToolchainInfo extends NativeInfo {
/*types=*/ ImmutableList.<SkylarkType>of(SkylarkType.DICT));
/** Skylark constructor and identifier for this provider. */
+ @AutoCodec
public static final NativeProvider<ToolchainInfo> PROVIDER =
new NativeProvider<ToolchainInfo>(ToolchainInfo.class, SKYLARK_NAME, SIGNATURE) {
@Override
@@ -68,8 +71,9 @@ public class ToolchainInfo extends NativeInfo {
}
};
- public ToolchainInfo(Map<String, Object> toolchainData, Location loc) {
- super(PROVIDER, ImmutableMap.copyOf(toolchainData), loc);
+ @AutoCodec.Instantiator
+ public ToolchainInfo(Map<String, Object> values, Location location) {
+ super(PROVIDER, ImmutableMap.copyOf(values), location);
}
public static ToolchainInfo create(Map<String, Object> toolchainData) {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/BaselineCoverageAction.java b/src/main/java/com/google/devtools/build/lib/analysis/test/BaselineCoverageAction.java
index b400440ca0..9066595769 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/BaselineCoverageAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/BaselineCoverageAction.java
@@ -30,6 +30,8 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.vfs.PathFragment;
import java.io.IOException;
@@ -38,18 +40,18 @@ import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
-/**
- * Generates baseline (empty) coverage for the given non-test target.
- */
+/** Generates baseline (empty) coverage for the given non-test target. */
@VisibleForTesting
+@AutoCodec
@Immutable
public final class BaselineCoverageAction extends AbstractFileWriteAction
implements NotifyOnActionCacheHit {
private final NestedSet<Artifact> instrumentedFiles;
- private BaselineCoverageAction(
- ActionOwner owner, NestedSet<Artifact> instrumentedFiles, Artifact output) {
- super(owner, ImmutableList.<Artifact>of(), output, false);
+ @VisibleForSerialization
+ BaselineCoverageAction(
+ ActionOwner owner, NestedSet<Artifact> instrumentedFiles, Artifact primaryOutput) {
+ super(owner, ImmutableList.<Artifact>of(), primaryOutput, false);
this.instrumentedFiles = instrumentedFiles;
}