diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
17 files changed, 85 insertions, 79 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java index 368ccc22e0..b7db181779 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java @@ -38,6 +38,8 @@ import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.rules.cpp.CppConfiguration.DynamicMode; import com.google.devtools.build.lib.rules.cpp.CppOptions.DynamicModeConverter; import com.google.devtools.build.lib.rules.cpp.CppOptions.LibcTopLabelConverter; +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.SkylarkModule; import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; import com.google.devtools.common.options.Converters; @@ -227,7 +229,10 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment { } /** Android configuration options. */ + @AutoCodec(strategy = AutoCodec.Strategy.PUBLIC_FIELDS) public static class Options extends FragmentOptions { + public static final ObjectCodec<Options> CODEC = new AndroidConfiguration_Options_AutoCodec(); + @Option( name = "Android configuration distinguisher", defaultValue = "MAIN", 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 b4af907ed4..9c25a94e13 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 @@ -35,6 +35,8 @@ import com.google.devtools.build.lib.packages.AttributeMap; import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException; import com.google.devtools.build.lib.packages.RuleErrorConsumer; import com.google.devtools.build.lib.rules.android.AndroidConfiguration.AndroidAaptVersion; +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.common.options.EnumConverter; import com.google.devtools.common.options.OptionsParsingException; @@ -55,10 +57,14 @@ import javax.annotation.Nullable; * and {@link #hashCode()} methods. Failure to do so isn't just bad practice; it could seriously * interfere with Bazel's caching performance. */ +@AutoCodec public class ResourceFilterFactory { public static final String RESOURCE_CONFIGURATION_FILTERS_NAME = "resource_configuration_filters"; public static final String DENSITIES_NAME = "densities"; + public static final ObjectCodec<ResourceFilterFactory> CODEC = + new ResourceFilterFactory_AutoCodec(); + /** * Locales used for pseudolocation. * @@ -125,7 +131,6 @@ public class ResourceFilterFactory { * @param densities the density filters, as a list of strings. * @param filterBehavior the behavior of this filter. */ - @VisibleForTesting ResourceFilterFactory( ImmutableList<String> configFilters, ImmutableList<String> densities, @@ -657,6 +662,10 @@ public class ResourceFilterFactory { return Joiner.on(',').join(configFilters); } + ImmutableList<String> getConfigFilters() { + return configFilters; + } + /** * Returns if this object contains a non-empty density filter. * @@ -671,7 +680,7 @@ public class ResourceFilterFactory { return Joiner.on(',').join(densities); } - List<String> getDensities() { + ImmutableList<String> getDensities() { return densities; } @@ -683,6 +692,10 @@ public class ResourceFilterFactory { return hasConfigurationFilters() || hasDensities(); } + FilterBehavior getFilterBehavior() { + return filterBehavior; + } + public String getOutputDirectorySuffix() { if (!hasFilters()) { return null; diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java index fbc5363f7b..3bf0afc5a4 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java @@ -14,10 +14,6 @@ package com.google.devtools.build.lib.rules.apple; -import static com.google.devtools.build.lib.skyframe.serialization.SerializationCommonUtils.STRING_LIST_CODEC; -import static com.google.devtools.build.lib.skyframe.serialization.SerializationCommonUtils.deserializeNullable; -import static com.google.devtools.build.lib.skyframe.serialization.SerializationCommonUtils.serializeNullable; - import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; @@ -25,13 +21,13 @@ import com.google.devtools.build.lib.analysis.config.BuildConfiguration.DefaultL import com.google.devtools.build.lib.analysis.config.BuildConfiguration.LabelConverter; import com.google.devtools.build.lib.analysis.config.FragmentOptions; import com.google.devtools.build.lib.cmdline.Label; -import com.google.devtools.build.lib.cmdline.LabelCodec; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.rules.apple.AppleConfiguration.ConfigurationDistinguisher; import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.skyframe.serialization.EnumCodec; +import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec; import com.google.devtools.build.lib.skyframe.serialization.SerializationException; -import com.google.devtools.build.lib.skyframe.serialization.strings.StringCodecs; +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.skylarkinterface.SkylarkPrinter; @@ -48,7 +44,10 @@ import java.io.IOException; import java.util.List; /** Command-line options for building for Apple platforms. */ +@AutoCodec(strategy = AutoCodec.Strategy.PUBLIC_FIELDS) public class AppleCommandLineOptions extends FragmentOptions { + public static final ObjectCodec<AppleCommandLineOptions> CODEC = + new AppleCommandLineOptions_AutoCodec(); @Option( name = "experimental_apple_mandatory_minimum_version", @@ -510,62 +509,12 @@ public class AppleCommandLineOptions extends FragmentOptions { } void serialize(CodedOutputStream out) throws IOException, SerializationException { - out.writeBoolNoTag(mandatoryMinimumVersion); - out.writeBoolNoTag(objcProviderFromLinked); - serializeNullable(xcodeVersion, out, StringCodecs.asciiOptimized()); - serializeNullable(iosSdkVersion, out, DottedVersion.CODEC); - serializeNullable(watchOsSdkVersion, out, DottedVersion.CODEC); - serializeNullable(tvOsSdkVersion, out, DottedVersion.CODEC); - serializeNullable(macOsSdkVersion, out, DottedVersion.CODEC); - serializeNullable(iosMinimumOs, out, DottedVersion.CODEC); - serializeNullable(watchosMinimumOs, out, DottedVersion.CODEC); - serializeNullable(tvosMinimumOs, out, DottedVersion.CODEC); - serializeNullable(macosMinimumOs, out, DottedVersion.CODEC); - StringCodecs.asciiOptimized().serialize(iosCpu, out); - LabelCodec.INSTANCE.serialize(appleCrosstoolTop, out); - PlatformType.CODEC.serialize(applePlatformType, out); - StringCodecs.asciiOptimized().serialize(appleSplitCpu, out); - ConfigurationDistinguisher.CODEC.serialize(configurationDistinguisher, out); - STRING_LIST_CODEC.serialize((ImmutableList<String>) iosMultiCpus, out); - STRING_LIST_CODEC.serialize((ImmutableList<String>) watchosCpus, out); - STRING_LIST_CODEC.serialize((ImmutableList<String>) tvosCpus, out); - STRING_LIST_CODEC.serialize((ImmutableList<String>) macosCpus, out); - LabelCodec.INSTANCE.serialize(defaultProvisioningProfile, out); - LabelCodec.INSTANCE.serialize(xcodeVersionConfig, out); - AppleBitcodeMode.CODEC.serialize(appleBitcodeMode, out); - out.writeBoolNoTag(enableAppleCrosstoolTransition); - out.writeBoolNoTag(targetUsesAppleCrosstool); + CODEC.serialize(this, out); } static AppleCommandLineOptions deserialize(CodedInputStream in) throws IOException, SerializationException { - AppleCommandLineOptions result = new AppleCommandLineOptions(); - result.mandatoryMinimumVersion = in.readBool(); - result.objcProviderFromLinked = in.readBool(); - result.xcodeVersion = deserializeNullable(in, StringCodecs.asciiOptimized()); - result.iosSdkVersion = deserializeNullable(in, DottedVersion.CODEC); - result.watchOsSdkVersion = deserializeNullable(in, DottedVersion.CODEC); - result.tvOsSdkVersion = deserializeNullable(in, DottedVersion.CODEC); - result.macOsSdkVersion = deserializeNullable(in, DottedVersion.CODEC); - result.iosMinimumOs = deserializeNullable(in, DottedVersion.CODEC); - result.watchosMinimumOs = deserializeNullable(in, DottedVersion.CODEC); - result.tvosMinimumOs = deserializeNullable(in, DottedVersion.CODEC); - result.macosMinimumOs = deserializeNullable(in, DottedVersion.CODEC); - result.iosCpu = StringCodecs.asciiOptimized().deserialize(in); - result.appleCrosstoolTop = LabelCodec.INSTANCE.deserialize(in); - result.applePlatformType = PlatformType.CODEC.deserialize(in); - result.appleSplitCpu = StringCodecs.asciiOptimized().deserialize(in); - result.configurationDistinguisher = ConfigurationDistinguisher.CODEC.deserialize(in); - result.iosMultiCpus = STRING_LIST_CODEC.deserialize(in); - result.watchosCpus = STRING_LIST_CODEC.deserialize(in); - result.tvosCpus = STRING_LIST_CODEC.deserialize(in); - result.macosCpus = STRING_LIST_CODEC.deserialize(in); - result.defaultProvisioningProfile = LabelCodec.INSTANCE.deserialize(in); - result.xcodeVersionConfig = LabelCodec.INSTANCE.deserialize(in); - result.appleBitcodeMode = AppleBitcodeMode.CODEC.deserialize(in); - result.enableAppleCrosstoolTransition = in.readBool(); - result.targetUsesAppleCrosstool = in.readBool(); - return result; + return CODEC.deserialize(in); } /** Converter for the Apple configuration distinguisher. */ diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/BUILD b/src/main/java/com/google/devtools/build/lib/rules/apple/BUILD index ebe3e34fdc..a40e8f8ad9 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/BUILD +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/BUILD @@ -21,6 +21,7 @@ java_library( "//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", "//src/main/java/com/google/devtools/common/options", "//third_party:guava", "//third_party:jsr305", diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java b/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java index dbe80f1568..569c8e1c4a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java @@ -257,7 +257,7 @@ public final class DottedVersion implements Comparable<DottedVersion>, SkylarkVa printer.append(stringRepresentation); } - static final ObjectCodec<DottedVersion> CODEC = + public static final ObjectCodec<DottedVersion> CODEC = new ObjectCodec<DottedVersion>() { @Override public void serialize(DottedVersion obj, CodedOutputStream codedOut) throws IOException { diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/swift/BUILD b/src/main/java/com/google/devtools/build/lib/rules/apple/swift/BUILD index 924c9731dc..746789603a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/swift/BUILD +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/swift/BUILD @@ -15,6 +15,8 @@ java_library( "//src/main/java/com/google/devtools/build/lib:build-base", "//src/main/java/com/google/devtools/build/lib:skylarkinterface", "//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", "//src/main/java/com/google/devtools/common/options", "//third_party:guava", ], diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftCommandLineOptions.java b/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftCommandLineOptions.java index 9803e22a5e..505838754d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftCommandLineOptions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftCommandLineOptions.java @@ -15,13 +15,18 @@ package com.google.devtools.build.lib.rules.apple.swift; import com.google.devtools.build.lib.analysis.config.FragmentOptions; +import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.common.options.Option; import com.google.devtools.common.options.OptionDocumentationCategory; import com.google.devtools.common.options.OptionEffectTag; import java.util.List; /** Command-line options for building with Swift tools. */ +@AutoCodec(strategy = AutoCodec.Strategy.PUBLIC_FIELDS) public class SwiftCommandLineOptions extends FragmentOptions { + public static final ObjectCodec<SwiftCommandLineOptions> CODEC = + new SwiftCommandLineOptions_AutoCodec(); @Option( name = "swiftcopt", diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/BUILD b/src/main/java/com/google/devtools/build/lib/rules/config/BUILD index ca6c17a8d5..b67256c354 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/config/BUILD +++ b/src/main/java/com/google/devtools/build/lib/rules/config/BUILD @@ -28,6 +28,8 @@ java_library( "//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/concurrent", + "//src/main/java/com/google/devtools/build/lib/skyframe/serialization", + "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec", "//src/main/java/com/google/devtools/common/options", "//third_party:guava", "//third_party:jsr305", diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java index be93cb9353..7ce92f0d1c 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java @@ -25,6 +25,8 @@ import com.google.devtools.build.lib.analysis.config.ConfigurationEnvironment; import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory; import com.google.devtools.build.lib.analysis.config.FragmentOptions; 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; import com.google.devtools.common.options.Converter; import com.google.devtools.common.options.Option; import com.google.devtools.common.options.OptionDocumentationCategory; @@ -56,7 +58,11 @@ public final class ConfigFeatureFlagConfiguration extends BuildConfiguration.Fra } /** The options fragment which defines {@link ConfigFeatureFlagConfiguration}. */ + @AutoCodec(strategy = AutoCodec.Strategy.PUBLIC_FIELDS) public static final class Options extends FragmentOptions { + public static final ObjectCodec<Options> CODEC = + new ConfigFeatureFlagConfiguration_Options_AutoCodec(); + /** The mapping from config_feature_flag rules to their values. */ @Option( name = "config_feature_flag values (private)", diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/BUILD b/src/main/java/com/google/devtools/build/lib/rules/cpp/BUILD index 03e0ecf016..ac0ced43a0 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/BUILD +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/BUILD @@ -30,6 +30,8 @@ java_library( "//src/main/java/com/google/devtools/build/lib/profiler", "//src/main/java/com/google/devtools/build/lib/rules/apple", "//src/main/java/com/google/devtools/build/lib/shell", + "//src/main/java/com/google/devtools/build/lib/skyframe/serialization", + "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec", "//src/main/java/com/google/devtools/build/lib/vfs", "//src/main/java/com/google/devtools/build/skyframe", "//src/main/java/com/google/devtools/build/skyframe:skyframe-objects", diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java index 2649e2091d..3d2a242318 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java @@ -25,6 +25,8 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.cmdline.LabelSyntaxException; import com.google.devtools.build.lib.rules.cpp.CppConfiguration.DynamicMode; import com.google.devtools.build.lib.rules.cpp.CppConfiguration.StripMode; +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.util.OS; import com.google.devtools.build.lib.util.OptionsUtils; import com.google.devtools.build.lib.vfs.PathFragment; @@ -42,10 +44,10 @@ import java.util.Map; import java.util.Set; import javax.annotation.Nullable; -/** - * Command-line options for C++. - */ +/** Command-line options for C++. */ +@AutoCodec(strategy = AutoCodec.Strategy.PUBLIC_FIELDS) public class CppOptions extends FragmentOptions { + public static final ObjectCodec<CppOptions> CODEC = new CppOptions_AutoCodec(); /** * Converts a comma-separated list of compilation mode settings to a properly typed List. diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java index fe72380895..1389262719 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java @@ -25,6 +25,8 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.rules.java.JavaConfiguration.JavaClasspathMode; import com.google.devtools.build.lib.rules.java.JavaConfiguration.JavaOptimizationMode; import com.google.devtools.build.lib.rules.java.JavaConfiguration.OneVersionEnforcementLevel; +import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.common.options.EnumConverter; import com.google.devtools.common.options.Option; import com.google.devtools.common.options.OptionDocumentationCategory; @@ -36,10 +38,10 @@ import java.util.List; import java.util.Map; import java.util.Set; -/** - * Command-line options for building Java targets - */ +/** Command-line options for building Java targets */ +@AutoCodec(strategy = AutoCodec.Strategy.PUBLIC_FIELDS) public class JavaOptions extends FragmentOptions { + public static final ObjectCodec<JavaOptions> CODEC = new JavaOptions_AutoCodec(); /** Converter for the --java_classpath option. */ public static class JavaClasspathModeConverter extends EnumConverter<JavaClasspathMode> { diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/BUILD b/src/main/java/com/google/devtools/build/lib/rules/objc/BUILD index 54e49204ef..c9022b5d3f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/BUILD +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/BUILD @@ -31,6 +31,8 @@ java_library( "//src/main/java/com/google/devtools/build/lib/rules/config", "//src/main/java/com/google/devtools/build/lib/rules/cpp", "//src/main/java/com/google/devtools/build/lib/shell", + "//src/main/java/com/google/devtools/build/lib/skyframe/serialization", + "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec", "//src/main/java/com/google/devtools/build/lib/vfs", "//src/main/java/com/google/devtools/common/options", "//src/main/protobuf:bundlemerge_java_proto", diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcCommandLineOptions.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcCommandLineOptions.java index f6af056f0d..ba28c3657e 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcCommandLineOptions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcCommandLineOptions.java @@ -17,6 +17,8 @@ package com.google.devtools.build.lib.rules.objc; import com.google.devtools.build.lib.analysis.config.BuildConfiguration.LabelConverter; import com.google.devtools.build.lib.analysis.config.FragmentOptions; 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; import com.google.devtools.common.options.Converters; import com.google.devtools.common.options.Option; import com.google.devtools.common.options.OptionDocumentationCategory; @@ -24,11 +26,14 @@ import com.google.devtools.common.options.OptionEffectTag; import java.util.List; /** - * Command-line options for J2ObjC translation of Java source code to ObjC. - * These command line options are used by Java rules that can be transpiled - * (specifically, J2ObjCAspects thereof). + * Command-line options for J2ObjC translation of Java source code to ObjC. These command line + * options are used by Java rules that can be transpiled (specifically, J2ObjCAspects thereof). */ +@AutoCodec(strategy = AutoCodec.Strategy.PUBLIC_FIELDS) public class J2ObjcCommandLineOptions extends FragmentOptions { + public static final ObjectCodec<J2ObjcCommandLineOptions> CODEC = + new J2ObjcCommandLineOptions_AutoCodec(); + @Option( name = "j2objc_translation_flags", converter = Converters.CommaSeparatedOptionListConverter.class, diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java index dafd67586f..64637c39d8 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java @@ -19,6 +19,8 @@ import com.google.devtools.build.lib.analysis.config.FragmentOptions; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.rules.apple.DottedVersion; import com.google.devtools.build.lib.rules.apple.DottedVersionConverter; +import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.common.options.Converters.CommaSeparatedOptionListConverter; import com.google.devtools.common.options.Option; import com.google.devtools.common.options.OptionDocumentationCategory; @@ -26,10 +28,12 @@ import com.google.devtools.common.options.OptionEffectTag; import com.google.devtools.common.options.OptionMetadataTag; import java.util.List; -/** - * Command-line options for building Objective-C targets. - */ +/** Command-line options for building Objective-C targets. */ +@AutoCodec(strategy = AutoCodec.Strategy.PUBLIC_FIELDS) public class ObjcCommandLineOptions extends FragmentOptions { + public static final ObjectCodec<ObjcCommandLineOptions> CODEC = + new ObjcCommandLineOptions_AutoCodec(); + @Option( name = "ios_simulator_version", defaultValue = "9.3", diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java index 9df88d3f05..feb0706fe6 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java @@ -26,6 +26,8 @@ import com.google.devtools.build.lib.analysis.config.FragmentOptions; import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException; 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 com.google.devtools.build.lib.skylarkinterface.SkylarkModule; import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; import com.google.devtools.common.options.Converters; @@ -48,10 +50,11 @@ import java.util.List; ) public class ProtoConfiguration extends Fragment { - /** - * Command line options. - */ + /** Command line options. */ + @AutoCodec(strategy = AutoCodec.Strategy.PUBLIC_FIELDS) public static class Options extends FragmentOptions { + public static final ObjectCodec<Options> CODEC = new ProtoConfiguration_Options_AutoCodec(); + @Option( name = "protocopt", allowMultiple = true, diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PythonOptions.java b/src/main/java/com/google/devtools/build/lib/rules/python/PythonOptions.java index 776704b246..b730513300 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/python/PythonOptions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/python/PythonOptions.java @@ -14,16 +14,19 @@ package com.google.devtools.build.lib.rules.python; import com.google.devtools.build.lib.analysis.config.FragmentOptions; +import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.common.options.EnumConverter; import com.google.devtools.common.options.Option; import com.google.devtools.common.options.OptionDocumentationCategory; import com.google.devtools.common.options.OptionEffectTag; import com.google.devtools.common.options.TriState; -/** - * Python-related command-line options. - */ +/** Python-related command-line options. */ +@AutoCodec(strategy = AutoCodec.Strategy.PUBLIC_FIELDS) public class PythonOptions extends FragmentOptions { + public static final ObjectCodec<PythonOptions> CODEC = new PythonOptions_AutoCodec(); + /** * Converter for the --force_python option. */ |