aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/apple
diff options
context:
space:
mode:
authorGravatar shahan <shahan@google.com>2018-01-05 14:16:54 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-01-05 14:19:25 -0800
commit13b000c575e3fc86bfd0ccce8db89740980d5f15 (patch)
tree40cb8619155087234b8713bd04b7f535b0067da9 /src/main/java/com/google/devtools/build/lib/rules/apple
parent1ade18a652900410f632b2b9f47e6456c522a2e4 (diff)
Codecs for all non-test Fragment subclasses (except CppConfiguration, handled separately).
PiperOrigin-RevId: 180974083
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/AppleConfiguration.java24
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java13
2 files changed, 17 insertions, 20 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
index 6370ac2ec2..8bc992fd56 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
@@ -32,19 +32,17 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.rules.apple.AppleCommandLineOptions.AppleBitcodeMode;
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.SerializationException;
-import com.google.devtools.build.lib.skyframe.serialization.strings.StringCodecs;
+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.protobuf.CodedInputStream;
-import com.google.protobuf.CodedOutputStream;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nullable;
/** A configuration containing flags required for Apple platforms and tools. */
+@AutoCodec
@SkylarkModule(
name = "apple",
doc = "A configuration fragment for Apple platforms.",
@@ -52,6 +50,8 @@ import javax.annotation.Nullable;
)
@Immutable
public class AppleConfiguration extends BuildConfiguration.Fragment {
+ public static final ObjectCodec<AppleConfiguration> CODEC = new AppleConfiguration_AutoCodec();
+
/**
* Environment variable name for the xcode version. The value of this environment variable should
* be set to the version (for example, "7.2") of xcode to use when invoking part of the apple
@@ -91,7 +91,7 @@ public class AppleConfiguration extends BuildConfiguration.Fragment {
private final boolean mandatoryMinimumVersion;
private final boolean objcProviderFromLinked;
- @VisibleForTesting
+ @AutoCodec.Constructor
AppleConfiguration(AppleCommandLineOptions options, String iosCpu) {
this.options = options;
this.iosCpu = iosCpu;
@@ -503,18 +503,6 @@ public class AppleConfiguration extends BuildConfiguration.Fragment {
return options.hashCode();
}
- void serialize(CodedOutputStream out) throws IOException, SerializationException {
- options.serialize(out);
- out.writeStringNoTag(iosCpu);
- }
-
- static AppleConfiguration deserialize(CodedInputStream in)
- throws IOException, SerializationException {
- AppleCommandLineOptions options = AppleCommandLineOptions.deserialize(in);
- String iosCpu = StringCodecs.asciiOptimized().deserialize(in);
- return new AppleConfiguration(options, iosCpu);
- }
-
@VisibleForTesting
static AppleConfiguration create(AppleCommandLineOptions appleOptions, String cpu) {
return new AppleConfiguration(appleOptions, iosCpuFromCpu(cpu));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java
index 4636f1eb60..09a8936000 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java
@@ -23,6 +23,8 @@ import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactor
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
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.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
@@ -31,6 +33,7 @@ import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
* A configuration containing flags required for Swift tools. This is used primarily by swift_*
* family of rules written in Skylark.
*/
+@AutoCodec
@SkylarkModule(
name = "swift",
doc = "A configuration fragment for Swift tools.",
@@ -38,13 +41,19 @@ import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
)
@Immutable
public class SwiftConfiguration extends BuildConfiguration.Fragment {
+ public static final ObjectCodec<SwiftConfiguration> CODEC = new SwiftConfiguration_AutoCodec();
private final boolean enableWholeModuleOptimization;
private final ImmutableList<String> copts;
public SwiftConfiguration(SwiftCommandLineOptions options) {
- enableWholeModuleOptimization = options.enableWholeModuleOptimization;
- copts = ImmutableList.copyOf(options.copts);
+ this(options.enableWholeModuleOptimization, ImmutableList.copyOf(options.copts));
+ }
+
+ @AutoCodec.Constructor
+ SwiftConfiguration(boolean enableWholeModuleOptimization, ImmutableList<String> copts) {
+ this.enableWholeModuleOptimization = enableWholeModuleOptimization;
+ this.copts = copts;
}
/** Returns whether to enable Whole Module Optimization. */