diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
9 files changed, 44 insertions, 59 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java index 410fb41fbd..c89164a8c2 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java @@ -38,13 +38,11 @@ import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException; 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.InjectingObjectCodec; 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.Strategy; import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization; import com.google.devtools.build.lib.util.Pair; -import com.google.devtools.build.lib.vfs.FileSystemProvider; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.CToolchain; import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.CToolchain.WithFeatureSet; @@ -1129,9 +1127,9 @@ public class CcToolchainFeatures implements Serializable { * instance could serve as a top level View used to expand all flag_groups. */ @Immutable - @AutoCodec(dependency = FileSystemProvider.class) + @AutoCodec public static class Variables { - public static final InjectingObjectCodec<Variables, FileSystemProvider> CODEC = + public static final ObjectCodec<Variables> CODEC = new CcToolchainFeatures_Variables_AutoCodec(); /** An empty variables instance. */ @@ -1165,9 +1163,9 @@ public class CcToolchainFeatures implements Serializable { * <p>Implementations must be immutable and without any side-effects. They will be expanded and * queried multiple times. */ - @AutoCodec(strategy = Strategy.POLYMORPHIC, dependency = FileSystemProvider.class) + @AutoCodec(strategy = Strategy.POLYMORPHIC) interface VariableValue { - public static final InjectingObjectCodec<VariableValue, FileSystemProvider> CODEC = + public static final ObjectCodec<VariableValue> CODEC = new CcToolchainFeatures_Variables_VariableValue_AutoCodec(); /** @@ -1381,9 +1379,9 @@ public class CcToolchainFeatures implements Serializable { * significantly reduces memory overhead. */ @Immutable - @AutoCodec(dependency = FileSystemProvider.class) + @AutoCodec public static class LibraryToLinkValue extends VariableValueAdapter { - public static final InjectingObjectCodec<LibraryToLinkValue, FileSystemProvider> CODEC = + public static final ObjectCodec<LibraryToLinkValue> CODEC = new CcToolchainFeatures_Variables_LibraryToLinkValue_AutoCodec(); public static final String OBJECT_FILES_FIELD_NAME = "object_files"; @@ -1514,10 +1512,10 @@ public class CcToolchainFeatures implements Serializable { /** Sequence of arbitrary VariableValue objects. */ @Immutable - @AutoCodec(dependency = FileSystemProvider.class) + @AutoCodec @VisibleForSerialization static final class Sequence extends VariableValueAdapter { - public static final InjectingObjectCodec<Sequence, FileSystemProvider> CODEC = + public static final ObjectCodec<Sequence> CODEC = new CcToolchainFeatures_Variables_Sequence_AutoCodec(); private static final String SEQUENCE_VARIABLE_TYPE_NAME = "sequence"; @@ -1550,10 +1548,10 @@ public class CcToolchainFeatures implements Serializable { * significantly reduces memory overhead. */ @Immutable - @AutoCodec(dependency = FileSystemProvider.class) + @AutoCodec @VisibleForSerialization static final class StructureSequence extends VariableValueAdapter { - public static final InjectingObjectCodec<StructureSequence, FileSystemProvider> CODEC = + public static final ObjectCodec<StructureSequence> CODEC = new CcToolchainFeatures_Variables_StructureSequence_AutoCodec(); private final ImmutableList<ImmutableMap<String, VariableValue>> values; @@ -1627,10 +1625,10 @@ public class CcToolchainFeatures implements Serializable { * memory overhead is prohibitively big. Use optimized {@link StructureSequence} instead. */ @Immutable - @AutoCodec(dependency = FileSystemProvider.class) + @AutoCodec @VisibleForSerialization static final class StructureValue extends VariableValueAdapter { - public static final InjectingObjectCodec<StructureValue, FileSystemProvider> CODEC = + public static final ObjectCodec<StructureValue> CODEC = new CcToolchainFeatures_Variables_StructureValue_AutoCodec(); private static final String STRUCTURE_VARIABLE_TYPE_NAME = "structure"; diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java index 7eef57f135..a3d55e2f22 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java @@ -21,11 +21,10 @@ import com.google.devtools.build.lib.rules.cpp.CcCommon.CoptsFilter; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.Variables; import com.google.devtools.build.lib.rules.cpp.CppCompileAction.DotdFile; -import com.google.devtools.build.lib.skyframe.serialization.InjectingObjectCodec; +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.util.Pair; -import com.google.devtools.build.lib.vfs.FileSystemProvider; import com.google.devtools.build.lib.vfs.PathFragment; import java.util.ArrayList; import java.util.List; @@ -33,10 +32,9 @@ import java.util.Map; import javax.annotation.Nullable; /** The compile command line for the C++ compile action. */ -@AutoCodec(dependency = FileSystemProvider.class) +@AutoCodec public final class CompileCommandLine { - public static final InjectingObjectCodec<CompileCommandLine, FileSystemProvider> CODEC = - new CompileCommandLine_AutoCodec(); + public static final ObjectCodec<CompileCommandLine> CODEC = new CompileCommandLine_AutoCodec(); private final Artifact sourceFile; private final CoptsFilter coptsFilter; diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompilationContext.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompilationContext.java index ea12fadece..9ef128c3f2 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompilationContext.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompilationContext.java @@ -29,11 +29,9 @@ 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.rules.cpp.CppHelper.PregreppedHeader; -import com.google.devtools.build.lib.skyframe.serialization.InjectingObjectCodec; 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.vfs.FileSystemProvider; import com.google.devtools.build.lib.vfs.PathFragment; import java.util.ArrayList; import java.util.Collection; @@ -47,9 +45,9 @@ import javax.annotation.Nullable; * Immutable store of information needed for C++ compilation that is aggregated across dependencies. */ @Immutable -@AutoCodec(dependency = FileSystemProvider.class) +@AutoCodec public final class CppCompilationContext implements TransitiveInfoProvider { - public static final InjectingObjectCodec<CppCompilationContext, FileSystemProvider> CODEC = + public static final ObjectCodec<CppCompilationContext> CODEC = new CppCompilationContext_AutoCodec(); /** An empty compilation context. */ @@ -782,9 +780,9 @@ public final class CppCompilationContext implements TransitiveInfoProvider { * either gather data on PIC or on no-PIC .pcm files. */ @Immutable - @AutoCodec(dependency = FileSystemProvider.class) + @AutoCodec public static final class ModuleInfo { - public static final InjectingObjectCodec<ModuleInfo, FileSystemProvider> CODEC = + public static final ObjectCodec<ModuleInfo> CODEC = new CppCompilationContext_ModuleInfo_AutoCodec(); /** @@ -918,9 +916,9 @@ public final class CppCompilationContext implements TransitiveInfoProvider { /** Collects data for a specific module in a special format that makes pruning easy. */ @Immutable - @AutoCodec(dependency = FileSystemProvider.class) + @AutoCodec public static final class TransitiveModuleHeaders { - public static final InjectingObjectCodec<TransitiveModuleHeaders, FileSystemProvider> CODEC = + public static final ObjectCodec<TransitiveModuleHeaders> CODEC = new CppCompilationContext_TransitiveModuleHeaders_AutoCodec(); /** diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java index 8b26bad06b..79df9f4582 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java @@ -58,13 +58,12 @@ import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfig import com.google.devtools.build.lib.rules.cpp.CppCompileActionContext.Reply; import com.google.devtools.build.lib.rules.cpp.CppConfiguration.Tool; import com.google.devtools.build.lib.rules.cpp.CppHelper.PregreppedHeader; -import com.google.devtools.build.lib.skyframe.serialization.InjectingObjectCodec; +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.util.DependencySet; import com.google.devtools.build.lib.util.Fingerprint; import com.google.devtools.build.lib.util.ShellEscaper; -import com.google.devtools.build.lib.vfs.FileSystemProvider; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; @@ -1337,15 +1336,15 @@ public class CppCompileAction extends AbstractAction /** * A reference to a .d file. There are two modes: + * * <ol> * <li>an Artifact that represents a real on-disk file * <li>just an execPath that refers to a virtual .d file that is not written to disk * </ol> */ - @AutoCodec(dependency = FileSystemProvider.class) + @AutoCodec public static class DotdFile { - public static final InjectingObjectCodec<DotdFile, FileSystemProvider> CODEC = - new CppCompileAction_DotdFile_AutoCodec(); + public static final ObjectCodec<DotdFile> CODEC = new CppCompileAction_DotdFile_AutoCodec(); private final Artifact artifact; private final PathFragment execPath; diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java index 36624d85a7..2049d04166 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java @@ -43,12 +43,11 @@ import com.google.devtools.build.lib.rules.cpp.CppConfigurationLoader.CppConfigu import com.google.devtools.build.lib.rules.cpp.CrosstoolConfigurationLoader.CrosstoolFile; import com.google.devtools.build.lib.rules.cpp.transitions.ContextCollectorOwnerTransition; import com.google.devtools.build.lib.rules.cpp.transitions.DisableLipoTransition; -import com.google.devtools.build.lib.skyframe.serialization.InjectingObjectCodec; +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.skylarkinterface.SkylarkCallable; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; -import com.google.devtools.build.lib.vfs.FileSystemProvider; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig; @@ -62,7 +61,7 @@ import javax.annotation.Nullable; * architecture, target architecture, compiler version, and a standard library version. It has * information about the tools locations and the flags required for compiling. */ -@AutoCodec(dependency = FileSystemProvider.class) +@AutoCodec @SkylarkModule( name = "cpp", doc = "A configuration fragment for C++.", @@ -70,8 +69,7 @@ import javax.annotation.Nullable; ) @Immutable public final class CppConfiguration extends BuildConfiguration.Fragment { - public static final InjectingObjectCodec<CppConfiguration, FileSystemProvider> CODEC = - new CppConfiguration_AutoCodec(); + public static final ObjectCodec<CppConfiguration> CODEC = new CppConfiguration_AutoCodec(); /** * String indicating a Mac system, for example when used in a crosstool configuration's host or diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java index 1888c81000..126fda003d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java @@ -65,12 +65,11 @@ import com.google.devtools.build.lib.rules.cpp.CppCompilationContext.Builder; import com.google.devtools.build.lib.rules.cpp.CppConfiguration.DynamicMode; import com.google.devtools.build.lib.rules.cpp.Link.LinkTargetType; import com.google.devtools.build.lib.shell.ShellUtils; -import com.google.devtools.build.lib.skyframe.serialization.InjectingObjectCodec; +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.syntax.Type; import com.google.devtools.build.lib.util.FileTypeSet; import com.google.devtools.build.lib.util.Pair; -import com.google.devtools.build.lib.vfs.FileSystemProvider; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.LipoMode; import java.util.ArrayList; @@ -575,10 +574,10 @@ public class CppHelper { * A header that has been grepped for #include statements. Includes the original header as well as * a stripped version of that header that contains only #include statements. */ - @AutoCodec(dependency = FileSystemProvider.class) + @AutoCodec @AutoValue abstract static class PregreppedHeader { - public static final InjectingObjectCodec<PregreppedHeader, FileSystemProvider> CODEC = + public static final ObjectCodec<PregreppedHeader> CODEC = new CppHelper_PregreppedHeader_AutoCodec(); @AutoCodec.Instantiator diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModuleMap.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModuleMap.java index 8428d2c419..1e158882ac 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModuleMap.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModuleMap.java @@ -16,17 +16,15 @@ package com.google.devtools.build.lib.rules.cpp; import com.google.common.base.Optional; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; -import com.google.devtools.build.lib.skyframe.serialization.InjectingObjectCodec; +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.vfs.FileSystemProvider; /** Structure for C++ module maps. Stores the name of the module and a .cppmap artifact. */ @Immutable -@AutoCodec(dependency = FileSystemProvider.class) +@AutoCodec public final class CppModuleMap { - public static final InjectingObjectCodec<CppModuleMap, FileSystemProvider> CODEC = - new CppModuleMap_AutoCodec(); + public static final ObjectCodec<CppModuleMap> CODEC = new CppModuleMap_AutoCodec(); // NOTE: If you add a field here, you'll likely need to update CppModuleMapAction.computeKey(). private final Artifact artifact; diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkerInputs.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkerInputs.java index 808db7be7d..8039c7b87f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkerInputs.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkerInputs.java @@ -20,11 +20,10 @@ import com.google.common.collect.Iterables; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.collect.CollectionUtils; import com.google.devtools.build.lib.concurrent.ThreadSafety; -import com.google.devtools.build.lib.skyframe.serialization.InjectingObjectCodec; +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.Strategy; import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization; -import com.google.devtools.build.lib.vfs.FileSystemProvider; /** * Factory for creating new {@link LinkerInput} objects. @@ -145,9 +144,9 @@ public abstract class LinkerInputs { * A library the user can link to. This is different from a simple linker input in that it also * has a library identifier. */ - @AutoCodec(strategy = Strategy.POLYMORPHIC, dependency = FileSystemProvider.class) + @AutoCodec(strategy = Strategy.POLYMORPHIC) public interface LibraryToLink extends LinkerInput { - public static final InjectingObjectCodec<LibraryToLink, FileSystemProvider> CODEC = + public static final ObjectCodec<LibraryToLink> CODEC = new LinkerInputs_LibraryToLink_AutoCodec(); ImmutableMap<Artifact, Artifact> getLtoBitcodeFiles(); @@ -174,9 +173,9 @@ public abstract class LinkerInputs { * library that it links to. */ @ThreadSafety.Immutable - @AutoCodec(dependency = FileSystemProvider.class) + @AutoCodec public static class SolibLibraryToLink implements LibraryToLink { - public static final InjectingObjectCodec<SolibLibraryToLink, FileSystemProvider> CODEC = + public static final ObjectCodec<SolibLibraryToLink> CODEC = new LinkerInputs_SolibLibraryToLink_AutoCodec(); private final Artifact solibSymlinkArtifact; @@ -276,10 +275,10 @@ public abstract class LinkerInputs { /** This class represents a library that may contain object files. */ @ThreadSafety.Immutable - @AutoCodec(dependency = FileSystemProvider.class) + @AutoCodec @VisibleForSerialization static class CompoundLibraryToLink implements LibraryToLink { - public static final InjectingObjectCodec<CompoundLibraryToLink, FileSystemProvider> CODEC = + public static final ObjectCodec<CompoundLibraryToLink> CODEC = new LinkerInputs_CompoundLibraryToLink_AutoCodec(); private final Artifact libraryArtifact; diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/LtoBackendArtifacts.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/LtoBackendArtifacts.java index 6ab5488005..883ca4d38b 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/LtoBackendArtifacts.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/LtoBackendArtifacts.java @@ -22,10 +22,9 @@ import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.Variables; import com.google.devtools.build.lib.rules.cpp.CppConfiguration.Tool; -import com.google.devtools.build.lib.skyframe.serialization.InjectingObjectCodec; +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.vfs.FileSystemProvider; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.PathFragment; import java.util.ArrayList; @@ -53,10 +52,9 @@ import java.util.Map; * <li>4. Backend link (once). This is the traditional link, and produces the final executable. * </ul> */ -@AutoCodec(dependency = FileSystemProvider.class) +@AutoCodec public final class LtoBackendArtifacts { - public static final InjectingObjectCodec<LtoBackendArtifacts, FileSystemProvider> CODEC = - new LtoBackendArtifacts_AutoCodec(); + public static final ObjectCodec<LtoBackendArtifacts> CODEC = new LtoBackendArtifacts_AutoCodec(); // A file containing mapping of symbol => bitcode file containing the symbol. private final Artifact index; |