diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java | 18 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java | 19 |
2 files changed, 28 insertions, 9 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java index 5b0fd57988..b1e627de80 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java +++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java @@ -87,7 +87,7 @@ public final class SkylarkAttr { private static final String CONFIGURATION_ARG = "cfg"; private static final String CONFIGURATION_DOC = - "configuration of the attribute. For example, use DATA_CFG or HOST_CFG."; + "configuration of the attribute. It can be either \"data\" or \"host\"."; private static final String DEFAULT_ARG = "default"; private static final String DEFAULT_DOC = "the default value of the attribute."; @@ -219,7 +219,17 @@ public final class SkylarkAttr { } if (containsNonNoneKey(arguments, CONFIGURATION_ARG)) { - builder.cfg((ConfigurationTransition) arguments.get(CONFIGURATION_ARG)); + Object trans = arguments.get(CONFIGURATION_ARG); + if (trans instanceof ConfigurationTransition) { + // TODO(laurentlb): Deprecated, to be removed in August 2016. + builder.cfg((ConfigurationTransition) trans); + } else if (trans.equals("data")) { + builder.cfg(ConfigurationTransition.DATA); + } else if (trans.equals("host")) { + builder.cfg(ConfigurationTransition.HOST); + } else { + throw new EvalException(ast.getLocation(), "cfg must be either 'data' or 'host'."); + } } return builder; } @@ -474,7 +484,7 @@ public final class SkylarkAttr { ), @Param( name = CONFIGURATION_ARG, - type = ConfigurationTransition.class, + type = Object.class, noneable = true, defaultValue = "None", named = true, @@ -691,7 +701,7 @@ public final class SkylarkAttr { ), @Param( name = CONFIGURATION_ARG, - type = ConfigurationTransition.class, + type = Object.class, noneable = true, defaultValue = "None", named = true, diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java index 400af91b50..c7c8b01586 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java @@ -99,13 +99,22 @@ import java.util.concurrent.ExecutionException; */ public class SkylarkRuleClassFunctions { - //TODO(bazel-team): proper enum support - @SkylarkSignature(name = "DATA_CFG", returnType = ConfigurationTransition.class, - doc = "Experimental. Specifies a transition to the data configuration.") + @SkylarkSignature( + name = "DATA_CFG", + returnType = ConfigurationTransition.class, + doc = + "Deprecated. Use string \"data\" instead. " + + "Specifies a transition to the data configuration." + ) private static final Object dataTransition = ConfigurationTransition.DATA; - @SkylarkSignature(name = "HOST_CFG", returnType = ConfigurationTransition.class, - doc = "Specifies a transition to the host configuration.") + @SkylarkSignature( + name = "HOST_CFG", + returnType = ConfigurationTransition.class, + doc = + "Deprecated. Use string \"host\" instead. " + + "Specifies a transition to the host configuration." + ) private static final Object hostTransition = ConfigurationTransition.HOST; // TODO(bazel-team): Copied from ConfiguredRuleClassProvider for the transition from built-in |