aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar mjhalupka <mjhalupka@google.com>2018-02-15 14:59:32 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-15 15:01:28 -0800
commitdb985d145c6a3496721359d6af0139c3eae2b8dc (patch)
tree937e000d31068c0104686ac7c6df8bd32827700d /src/main
parente1c7d33efcd640f8ad2bf8a718d5976a5f3cef4e (diff)
Tag for classes with @AutoCodec.
PiperOrigin-RevId: 185906605
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/BUILD3
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/MiddlemanProvider.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/ConfigMatchingProvider.java23
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/platform/BUILD1
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/platform/DeclaredToolchainInfo.java15
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/LipoContextProvider.java23
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/filegroup/FilegroupPathProvider.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeInfo.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeToolchainInfo.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/platform/Toolchain.java6
10 files changed, 75 insertions, 32 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD
index ee703b78eb..a72df83bb3 100644
--- a/src/main/java/com/google/devtools/build/lib/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/BUILD
@@ -426,6 +426,8 @@ java_library(
":transitive-info-provider",
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/concurrent",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//third_party:guava",
],
)
@@ -927,6 +929,7 @@ java_library(
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/collect",
"//src/main/java/com/google/devtools/build/lib/collect/nestedset",
+ "//src/main/java/com/google/devtools/build/lib/collect/nestedset:serialization",
"//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/rules/cpp",
"//src/main/java/com/google/devtools/build/lib/shell",
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/MiddlemanProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/MiddlemanProvider.java
index 9661ab7b9f..452c26bfae 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/MiddlemanProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/MiddlemanProvider.java
@@ -16,15 +16,18 @@ package com.google.devtools.build.lib.analysis;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
-/**
- * A provider class that supplies an aggregating middleman to the targets that depend on it.
- */
+/** A provider class that supplies an aggregating middleman to the targets that depend on it. */
@Immutable
+@AutoCodec
public final class MiddlemanProvider implements TransitiveInfoProvider {
+ public static final ObjectCodec<MiddlemanProvider> CODEC = new MiddlemanProvider_AutoCodec();
private final NestedSet<Artifact> middlemanArtifact;
+ @AutoCodec.Instantiator
public MiddlemanProvider(NestedSet<Artifact> middlemanArtifact) {
this.middlemanArtifact = middlemanArtifact;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigMatchingProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigMatchingProvider.java
index c1a28bca67..832f39f605 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigMatchingProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigMatchingProvider.java
@@ -14,29 +14,33 @@
package com.google.devtools.build.lib.analysis.config;
+import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Multimap;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import java.util.Map;
import java.util.Set;
/**
- * A "configuration target" that asserts whether or not it matches the
- * configuration it's bound to.
+ * A "configuration target" that asserts whether or not it matches the configuration it's bound to.
*
- * <p>This can be used, e.g., to declare a BUILD target that defines the
- * conditions which trigger a configurable attribute branch. In general,
- * this can be used to trigger for any user-configurable build behavior.
+ * <p>This can be used, e.g., to declare a BUILD target that defines the conditions which trigger a
+ * configurable attribute branch. In general, this can be used to trigger for any user-configurable
+ * build behavior.
*/
@Immutable
+@AutoCodec
public final class ConfigMatchingProvider implements TransitiveInfoProvider {
+ public static final ObjectCodec<ConfigMatchingProvider> CODEC =
+ new ConfigMatchingProvider_AutoCodec();
private final Label label;
- private final boolean matches;
- private final Multimap<String, String> settingsMap;
+ private final ImmutableMultimap<String, String> settingsMap;
private final Map<Label, String> flagSettingsMap;
+ private final boolean matches;
/**
* @param label the build label corresponding to this matcher
@@ -45,9 +49,10 @@ public final class ConfigMatchingProvider implements TransitiveInfoProvider {
* @param matches whether or not this matcher matches the configuration associated with its
* configured target
*/
+ @AutoCodec.Instantiator
public ConfigMatchingProvider(
Label label,
- Multimap<String, String> settingsMap,
+ ImmutableMultimap<String, String> settingsMap,
Map<Label, String> flagSettingsMap,
boolean matches) {
this.label = label;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/platform/BUILD b/src/main/java/com/google/devtools/build/lib/analysis/platform/BUILD
index b36b478b73..01ecda876d 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/platform/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/analysis/platform/BUILD
@@ -23,6 +23,7 @@ java_library(
"//src/main/java/com/google/devtools/build/lib:skylarkinterface",
"//src/main/java/com/google/devtools/build/lib:transitive-info-provider",
"//src/main/java/com/google/devtools/build/lib/concurrent",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//third_party:auto_value",
"//third_party:guava",
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/platform/DeclaredToolchainInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/platform/DeclaredToolchainInfo.java
index 30931a4211..8d0b4d7f39 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/platform/DeclaredToolchainInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/platform/DeclaredToolchainInfo.java
@@ -18,6 +18,8 @@ import com.google.auto.value.AutoValue;
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
/**
* Provider for a toolchain declaration, which assosiates a toolchain type, the execution and target
@@ -26,7 +28,10 @@ import com.google.devtools.build.lib.cmdline.Label;
* are exposed to Skylark and Bazel via {@link ToolchainInfo} providers.
*/
@AutoValue
+@AutoCodec
public abstract class DeclaredToolchainInfo implements TransitiveInfoProvider {
+ public static final ObjectCodec<DeclaredToolchainInfo> CODEC =
+ new DeclaredToolchainInfo_AutoCodec();
/**
* The type of the toolchain being declared. This will be a label of a toolchain_type() target.
@@ -43,15 +48,13 @@ public abstract class DeclaredToolchainInfo implements TransitiveInfoProvider {
public abstract Label toolchainLabel();
/** Returns a new {@link DeclaredToolchainInfo} with the given data. */
+ @AutoCodec.Instantiator
public static DeclaredToolchainInfo create(
Label toolchainType,
- Iterable<ConstraintValueInfo> execConstraints,
- Iterable<ConstraintValueInfo> targetConstraints,
+ ImmutableList<ConstraintValueInfo> execConstraints,
+ ImmutableList<ConstraintValueInfo> targetConstraints,
Label toolchainLabel) {
return new AutoValue_DeclaredToolchainInfo(
- toolchainType,
- ImmutableList.copyOf(execConstraints),
- ImmutableList.copyOf(targetConstraints),
- toolchainLabel);
+ toolchainType, execConstraints, targetConstraints, toolchainLabel);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/LipoContextProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/LipoContextProvider.java
index 0edb0094ea..4f4389a3e6 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/LipoContextProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/LipoContextProvider.java
@@ -17,32 +17,37 @@ import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.PathFragment;
-
import java.util.Map;
/**
* Provides LIPO context information to the LIPO-enabled target configuration.
*
- * <p>This is a rollup of the data collected in the LIPO context collector configuration.
- * Each target in the LIPO context collector configuration has a {@link TransitiveLipoInfoProvider}
- * which is used to transitively collect the data, then the {@code cc_binary} that is referred to
- * in {@code --lipo_context} puts the collected data into {@link LipoContextProvider}, of which
- * there is only one in any given build.
+ * <p>This is a rollup of the data collected in the LIPO context collector configuration. Each
+ * target in the LIPO context collector configuration has a {@link TransitiveLipoInfoProvider} which
+ * is used to transitively collect the data, then the {@code cc_binary} that is referred to in
+ * {@code --lipo_context} puts the collected data into {@link LipoContextProvider}, of which there
+ * is only one in any given build.
*/
@Immutable
+@AutoCodec
public final class LipoContextProvider implements TransitiveInfoProvider {
+ public static final ObjectCodec<LipoContextProvider> CODEC = new LipoContextProvider_AutoCodec();
private final CppCompilationContext cppCompilationContext;
private final ImmutableMap<Artifact, IncludeScannable> includeScannables;
private final ImmutableMap<PathFragment, Artifact> sourceArtifactMap;
- public LipoContextProvider(CppCompilationContext cppCompilationContext,
- Map<Artifact, IncludeScannable> scannables,
+ @AutoCodec.Instantiator
+ public LipoContextProvider(
+ CppCompilationContext cppCompilationContext,
+ Map<Artifact, IncludeScannable> includeScannables,
Map<PathFragment, Artifact> sourceArtifactMap) {
this.cppCompilationContext = cppCompilationContext;
- this.includeScannables = ImmutableMap.copyOf(scannables);
+ this.includeScannables = ImmutableMap.copyOf(includeScannables);
this.sourceArtifactMap = ImmutableMap.copyOf(sourceArtifactMap);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/filegroup/FilegroupPathProvider.java b/src/main/java/com/google/devtools/build/lib/rules/filegroup/FilegroupPathProvider.java
index 80e96b895e..35447dc223 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/filegroup/FilegroupPathProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/filegroup/FilegroupPathProvider.java
@@ -16,15 +16,20 @@ package com.google.devtools.build.lib.rules.filegroup;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.PathFragment;
-/**
- * A transitive info provider for dependent targets to query {@code path} attributes.
- */
+/** A transitive info provider for dependent targets to query {@code path} attributes. */
@Immutable
+@AutoCodec
public final class FilegroupPathProvider implements TransitiveInfoProvider {
+ public static final ObjectCodec<FilegroupPathProvider> CODEC =
+ new FilegroupPathProvider_AutoCodec();
+
private final PathFragment pathFragment;
+ @AutoCodec.Instantiator
public FilegroupPathProvider(PathFragment pathFragment) {
this.pathFragment = pathFragment;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeInfo.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeInfo.java
index 2cf8b9afa4..5489498ba3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeInfo.java
@@ -25,6 +25,9 @@ import com.google.devtools.build.lib.packages.BuildType;
import com.google.devtools.build.lib.packages.NativeInfo;
import com.google.devtools.build.lib.packages.NativeProvider;
import com.google.devtools.build.lib.packages.RuleErrorConsumer;
+import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
+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.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -33,7 +36,10 @@ import javax.annotation.Nullable;
/** Information about the Java runtime used by the <code>java_*</code> rules. */
@SkylarkModule(name = "JavaRuntimeInfo", doc = "Information about the Java runtime being used.")
@Immutable
+@AutoCodec
public class JavaRuntimeInfo extends NativeInfo {
+ public static final ObjectCodec<JavaRuntimeInfo> CODEC = new JavaRuntimeInfo_AutoCodec();
+
public static final String SKYLARK_NAME = "JavaRuntimeInfo";
public static final NativeProvider<JavaRuntimeInfo> PROVIDER =
@@ -96,7 +102,9 @@ public class JavaRuntimeInfo extends NativeInfo {
private final PathFragment javaBinaryExecPath;
private final PathFragment javaBinaryRunfilesPath;
- private JavaRuntimeInfo(
+ @AutoCodec.Instantiator
+ @VisibleForSerialization
+ JavaRuntimeInfo(
NestedSet<Artifact> javaBaseInputs,
NestedSet<Artifact> javaBaseInputsMiddleman,
PathFragment javaHome,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeToolchainInfo.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeToolchainInfo.java
index 18e6e908e9..e44bdac30d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeToolchainInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeToolchainInfo.java
@@ -18,15 +18,21 @@ import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.analysis.platform.ToolchainInfo;
import com.google.devtools.build.lib.concurrent.ThreadSafety;
import com.google.devtools.build.lib.events.Location;
+import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
/**
* A wrapper class for {@link JavaRuntimeInfo} that can be used to expose it to the toolchain
* resolution system.
*/
@ThreadSafety.Immutable
+@AutoCodec
public final class JavaRuntimeToolchainInfo extends ToolchainInfo {
+ public static final ObjectCodec<JavaRuntimeToolchainInfo> CODEC =
+ new JavaRuntimeToolchainInfo_AutoCodec();
private final JavaRuntimeInfo javaRuntime;
+ @AutoCodec.Instantiator
public JavaRuntimeToolchainInfo(JavaRuntimeInfo javaRuntime) {
super(ImmutableMap.of(), Location.BUILTIN);
this.javaRuntime = javaRuntime;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/platform/Toolchain.java b/src/main/java/com/google/devtools/build/lib/rules/platform/Toolchain.java
index e6e2d0a890..28a4c57671 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/platform/Toolchain.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/platform/Toolchain.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.rules.platform;
+import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.FileProvider;
import com.google.devtools.build.lib.analysis.FilesToRunProvider;
@@ -50,7 +51,10 @@ public class Toolchain implements RuleConfiguredTargetFactory {
DeclaredToolchainInfo registeredToolchain =
DeclaredToolchainInfo.create(
- toolchainType, execConstraints, targetConstraints, toolchainLabel);
+ toolchainType,
+ ImmutableList.copyOf(execConstraints),
+ ImmutableList.copyOf(targetConstraints),
+ toolchainLabel);
return new RuleConfiguredTargetBuilder(ruleContext)
.addProvider(RunfilesProvider.class, RunfilesProvider.EMPTY)