Rollback of commit 4381a1d6e8f711957f430aac0c301acec6dfa0eb.
*** Reason for rollback ***
Breaks all projects using Bazel, see https://ci.bazel.io
*** Original change description ***
Deprecated and removed HOST_CFG and DATA_CFG global variables.
--
MOS_MIGRATED_REVID=133005398
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
index 0e1a845..593254a 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
@@ -28,6 +28,8 @@
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.events.Location;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.syntax.ClassObject;
import com.google.devtools.build.lib.syntax.EvalException;
import com.google.devtools.build.lib.syntax.EvalUtils;
@@ -168,6 +170,13 @@
/**
* Declaration how the configuration should change when following a label or label list attribute.
*/
+ @SkylarkModule(name = "ConfigurationTransition",
+ category = SkylarkModuleCategory.NONE,
+ doc =
+ "Declares how the configuration should change when following a dependency. "
+ + "It can be either <a href=\"globals.html#DATA_CFG\">DATA_CFG</a> or "
+ + "<a href=\"globals.html#HOST_CFG\">HOST_CFG</a>. "
+ + "This type is deprecated, use string \"host\" or \"data\" instead.")
public enum ConfigurationTransition implements Transition {
/** No transition, i.e., the same configuration as the current. */
NONE,
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 078ab2d..2e4bbb6 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
@@ -259,7 +259,10 @@
if (containsNonNoneKey(arguments, CONFIGURATION_ARG)) {
Object trans = arguments.get(CONFIGURATION_ARG);
- if (trans.equals("data")) {
+ 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);
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 0b667f7..a88e096 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
@@ -46,6 +46,7 @@
import com.google.devtools.build.lib.collect.nestedset.Order;
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.packages.Attribute;
+import com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition;
import com.google.devtools.build.lib.packages.AttributeMap;
import com.google.devtools.build.lib.packages.AttributeValueSource;
import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.SkylarkImplicitOutputsFunctionWithCallback;
@@ -98,6 +99,24 @@
*/
public class SkylarkRuleClassFunctions {
+ @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 =
+ "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
// rules to skylark extensions. Using the same instance would require a large refactoring.
// If we don't want to support old built-in rules and Skylark simultaneously