From d7bec2e36820928a436de2ecedec2b41c9fb419f Mon Sep 17 00:00:00 2001 From: janakr Date: Tue, 19 Jun 2018 09:47:01 -0700 Subject: Make some Apple objects more serializable: tag constants as constant, tag lambdas as Serializable. PiperOrigin-RevId: 201191461 --- .../com/google/devtools/build/lib/rules/apple/AppleToolchain.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/rules/apple') diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleToolchain.java index 21e3ffba45..73917ca798 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleToolchain.java +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleToolchain.java @@ -24,10 +24,12 @@ import com.google.devtools.build.lib.analysis.RuleDefinition; import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; +import com.google.devtools.build.lib.packages.Attribute; import com.google.devtools.build.lib.packages.Attribute.LabelLateBoundDefault; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; import com.google.devtools.build.lib.skylarkbuildapi.apple.AppleToolchainApi; +import java.io.Serializable; /** * Utility class for resolving items for the Apple toolchain (such as common tool flags, and paths). @@ -131,12 +133,14 @@ public class AppleToolchain implements AppleToolchainApi { } /** The default label of the build-wide {@code xcode_config} configuration rule. */ - public static LabelLateBoundDefault getXcodeConfigLabel(String toolsRepository) { + public static LabelLateBoundDefault getXcodeConfigLabel( + String toolsRepository) { return LabelLateBoundDefault.fromTargetConfiguration( AppleConfiguration.class, Label.parseAbsoluteUnchecked( toolsRepository + AppleCommandLineOptions.DEFAULT_XCODE_VERSION_CONFIG_LABEL), - (rule, attributes, appleConfig) -> appleConfig.getXcodeConfigLabel()); + (Attribute.LateBoundDefault.Resolver & Serializable) + (rule, attributes, appleConfig) -> appleConfig.getXcodeConfigLabel()); } /** -- cgit v1.2.3