aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactory.java17
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java65
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/BUILD1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/swift/BUILD2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftCommandLineOptions.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/config/BUILD2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/BUILD2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/BUILD2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcCommandLineOptions.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/python/PythonOptions.java9
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.
*/