aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/apple
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2017-12-27 10:11:54 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-27 10:14:01 -0800
commit4af309d4b24f65994481203211c6ea7bec388bed (patch)
treef1a4691b13b8d856a9367f128e767d612a1f98da /src/main/java/com/google/devtools/build/lib/rules/apple
parent4b6f10cfff8ab99a17fe5de79966248c3ccf1806 (diff)
ObjectCodecs for all non-test FragmentOption subclasses.
PiperOrigin-RevId: 180202221
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/apple')
-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
5 files changed, 16 insertions, 59 deletions
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",