diff options
author | 2018-01-05 14:16:54 -0800 | |
---|---|---|
committer | 2018-01-05 14:19:25 -0800 | |
commit | 13b000c575e3fc86bfd0ccce8db89740980d5f15 (patch) | |
tree | 40cb8619155087234b8713bd04b7f535b0067da9 /src/main/java/com/google/devtools/build/lib/rules/apple | |
parent | 1ade18a652900410f632b2b9f47e6456c522a2e4 (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.java | 24 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java | 13 |
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. */ |