aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar gregce <gregce@google.com>2017-12-21 11:33:32 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-21 11:35:05 -0800
commit676a9579ac473915d2b39f7814a6a8650d3a74b3 (patch)
tree2095951448d55d4896caabe75789c7d95f09f855 /src/main/java
parent4abd6c30f99635b803b9170baa3de1e3f3b2859d (diff)
Change cfg(HOST) to cfg(HostTransition.INSTANCE).
Preparatory step for removing ConfigurationTransition.HOST. PiperOrigin-RevId: 179838374
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java15
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/TransitionResolver.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/constraints/ConstraintSemantics.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkAttr.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/whitelisting/Whitelist.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/BazelGenRuleRule.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaRuleClasses.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyBinaryRule.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyRuleClasses.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyTestRule.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShBinaryRule.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShTestRule.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AarImportBaseRule.java13
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceRule.java32
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidHostServiceFixtureRule.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationTestRule.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryBaseRule.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java132
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java56
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionRule.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBaseRule.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaImportBaseRule.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaPackageConfigurationRule.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainRule.java30
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/ProguardLibraryRule.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/IosTestRule.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryRule.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java40
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibraryRule.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/proto/ProtoLangToolchainRule.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/proto/ProtoSourceFileBlacklist.java6
36 files changed, 305 insertions, 188 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java b/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java
index 3935ee1d1a..2cdddba7cc 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java
@@ -15,7 +15,6 @@
package com.google.devtools.build.lib.analysis;
import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.DATA;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.DISTRIBUTIONS;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
@@ -144,7 +143,7 @@ public class BaseRuleClasses {
// Input files for every test action
.add(
attr("$test_runtime", LABEL_LIST)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(ImmutableList.of(env.getToolsLabel("//tools/test:runtime"))))
// Input files for test actions collecting code coverage
.add(
@@ -153,7 +152,7 @@ public class BaseRuleClasses {
// Used in the one-per-build coverage report generation action.
.add(
attr("$coverage_report_generator", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(env.getLabel("//tools/defaults:coverage_report_generator"))
.singleArtifact())
@@ -185,7 +184,7 @@ public class BaseRuleClasses {
.add(
attr("visibility", NODEP_LABEL_LIST)
.orderIndependent()
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.nonconfigurable(
"special attribute integrated more deeply into Bazel's core logic"))
.add(
@@ -214,11 +213,13 @@ public class BaseRuleClasses {
.value(testonlyDefault)
.nonconfigurable("policy decision: rules testability should be consistent"))
.add(attr("features", STRING_LIST).orderIndependent())
- .add(attr(":action_listener", LABEL_LIST).cfg(HOST).value(ACTION_LISTENER))
+ .add(attr(":action_listener", LABEL_LIST)
+ .cfg(HostTransition.INSTANCE)
+ .value(ACTION_LISTENER))
.add(
attr(RuleClass.COMPATIBLE_ENVIRONMENT_ATTR, LABEL_LIST)
.allowedRuleClasses(EnvironmentRule.RULE_NAME)
- .cfg(Attribute.ConfigurationTransition.HOST)
+ .cfg(HostTransition.INSTANCE)
.allowedFileTypes(FileTypeSet.NO_FILE)
.dontCheckConstraints()
.nonconfigurable(
@@ -226,7 +227,7 @@ public class BaseRuleClasses {
.add(
attr(RuleClass.RESTRICTED_ENVIRONMENT_ATTR, LABEL_LIST)
.allowedRuleClasses(EnvironmentRule.RULE_NAME)
- .cfg(Attribute.ConfigurationTransition.HOST)
+ .cfg(HostTransition.INSTANCE)
.allowedFileTypes(FileTypeSet.NO_FILE)
.dontCheckConstraints()
.nonconfigurable(
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/TransitionResolver.java b/src/main/java/com/google/devtools/build/lib/analysis/config/TransitionResolver.java
index 75d3b2b9c8..e9c4b9bd7d 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/TransitionResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/TransitionResolver.java
@@ -168,7 +168,7 @@ public final class TransitionResolver {
} else if (transition2 == Attribute.ConfigurationTransition.NULL) {
// A NULL transition can just replace earlier transitions: no need to compose them.
return Attribute.ConfigurationTransition.NULL;
- } else if (transition2 == Attribute.ConfigurationTransition.HOST) {
+ } else if (transition2.isHostTransition()) {
// A HOST transition can just replace earlier transitions: no need to compose them.
// But it also improves performance: host transitions are common, and
// ConfiguredTargetFunction has special optimized logic to handle them. If they were buried
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/constraints/ConstraintSemantics.java b/src/main/java/com/google/devtools/build/lib/analysis/constraints/ConstraintSemantics.java
index 3d905dce4e..aaebac45e6 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/constraints/ConstraintSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/constraints/ConstraintSemantics.java
@@ -799,7 +799,7 @@ public class ConstraintSemantics {
if (!DependencyFilter.NO_IMPLICIT_DEPS.apply(ruleContext.getRule(), attrDef)
// We can't identify host deps by calling BuildConfiguration.isHostConfiguration()
// because --nodistinct_host_configuration subverts that call.
- || attrDef.getConfigurationTransition() == Attribute.ConfigurationTransition.HOST) {
+ || attrDef.getConfigurationTransition().isHostTransition()) {
continue;
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkAttr.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkAttr.java
index ba71fd1999..b04a855b5c 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkAttr.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkAttr.java
@@ -19,6 +19,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.packages.Attribute;
@@ -296,7 +297,7 @@ public final class SkylarkAttr implements SkylarkValue {
if (trans.equals("data")) {
builder.cfg(ConfigurationTransition.DATA);
} else if (trans.equals("host")) {
- builder.cfg(ConfigurationTransition.HOST);
+ builder.cfg(HostTransition.INSTANCE);
} else if (trans instanceof SplitTransition<?>) {
builder.cfg((SplitTransition<?>) trans);
} else if (trans instanceof SplitTransitionProvider) {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/whitelisting/Whitelist.java b/src/main/java/com/google/devtools/build/lib/analysis/whitelisting/Whitelist.java
index 0d3abdb074..261a09bf5d 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/whitelisting/Whitelist.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/whitelisting/Whitelist.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.analysis.whitelisting;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
@@ -23,6 +22,7 @@ import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.PackageSpecificationProvider;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.Attribute;
@@ -48,7 +48,7 @@ public final class Whitelist {
public static Attribute.Builder<Label> getAttributeFromWhitelistName(String whitelistName) {
String attributeName = getAttributeNameFromWhitelistName(whitelistName);
return attr(attributeName, LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.mandatoryNativeProviders(ImmutableList.of(PackageSpecificationProvider.class));
}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/BazelGenRuleRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/BazelGenRuleRule.java
index 7635dffdab..85a1869bd1 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/BazelGenRuleRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/BazelGenRuleRule.java
@@ -13,13 +13,13 @@
// limitations under the License.
package com.google.devtools.build.lib.bazel.rules.genrule;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.syntax.Type.BOOLEAN;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.rules.cpp.CcToolchain;
import com.google.devtools.build.lib.rules.cpp.CppConfiguration;
@@ -44,7 +44,9 @@ public final class BazelGenRuleRule implements RuleDefinition {
<!-- #END_BLAZE_RULE.NAME --> */
return builder
.setOutputToGenfiles()
- .add(attr("$genrule_setup", LABEL).cfg(HOST).value(env.getToolsLabel(GENRULE_SETUP_LABEL)))
+ .add(attr("$genrule_setup", LABEL)
+ .cfg(HostTransition.INSTANCE)
+ .value(env.getToolsLabel(GENRULE_SETUP_LABEL)))
.requiresConfigurationFragments(CppConfiguration.class, JavaConfiguration.class)
// TODO(bazel-team): stamping doesn't seem to work. Fix it or remove attribute.
@@ -55,7 +57,9 @@ public final class BazelGenRuleRule implements RuleDefinition {
.add(
attr(CcToolchain.CC_TOOLCHAIN_TYPE_ATTRIBUTE_NAME, LABEL)
.value(GenRuleBaseRule.ccToolchainTypeAttribute(env)))
- .add(attr(":host_jdk", LABEL).cfg(HOST).value(JavaSemantics.hostJdkAttribute(env)))
+ .add(attr(":host_jdk", LABEL)
+ .cfg(HostTransition.INSTANCE)
+ .value(JavaSemantics.hostJdkAttribute(env)))
.addRequiredToolchains(CppRuleClasses.ccToolchainTypeAttribute(env))
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaRuleClasses.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaRuleClasses.java
index bc8c891c7b..29964b6d25 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaRuleClasses.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.bazel.rules.java;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
@@ -31,6 +30,7 @@ import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.bazel.rules.cpp.BazelCppRuleClasses;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.Attribute;
@@ -94,8 +94,10 @@ public class BazelJavaRuleClasses {
public RuleClass build(Builder builder, RuleDefinitionEnvironment env) {
return builder
.add(attr(":jvm", LABEL).value(JavaSemantics.jvmAttribute(env)).useOutputLicenses())
- .add(attr(":host_jdk", LABEL).cfg(HOST).value(JavaSemantics.hostJdkAttribute(env)))
- .add(attr("$jacoco_instrumentation", LABEL).cfg(HOST))
+ .add(attr(":host_jdk", LABEL)
+ .cfg(HostTransition.INSTANCE)
+ .value(JavaSemantics.hostJdkAttribute(env)))
+ .add(attr("$jacoco_instrumentation", LABEL).cfg(HostTransition.INSTANCE))
.build();
}
@@ -246,12 +248,12 @@ public class BazelJavaRuleClasses {
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("plugins", LABEL_LIST)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.allowedRuleClasses("java_plugin")
.legacyAllowAnyFileType())
.add(
attr(":java_plugins", LABEL_LIST)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.allowedRuleClasses("java_plugin")
.silentRuleClassFilter()
.value(JavaSemantics.JAVA_PLUGINS))
@@ -284,7 +286,7 @@ public class BazelJavaRuleClasses {
public RuleClass build(Builder builder, final RuleDefinitionEnvironment env) {
Label launcher = env.getLauncherLabel();
if (launcher != null) {
- builder.add(attr("$launcher", LABEL).cfg(HOST).value(launcher));
+ builder.add(attr("$launcher", LABEL).cfg(HostTransition.INSTANCE).value(launcher));
}
return builder
/* <!-- #BLAZE_RULE($base_java_binary).ATTRIBUTE(classpath_resources) -->
@@ -333,7 +335,7 @@ public class BazelJavaRuleClasses {
rule must be declared as a <code>java_binary</code>, but should
still use the test runner as its main entry point.
- The name of a test runner class can be overriden with <code>main_class</code> attribute.
+ The name of a test runner class can be overridden with <code>main_class</code> attribute.
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(attr("use_testrunner", BOOLEAN).value(false))
/* <!-- #BLAZE_RULE($base_java_binary).ATTRIBUTE(main_class) -->
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java
index e309112ca0..05c33b0ee6 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.bazel.rules.java;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
@@ -25,6 +24,7 @@ import static com.google.devtools.build.lib.syntax.Type.STRING;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.bazel.rules.java.BazelJavaRuleClasses.BaseJavaBinaryRule;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder;
@@ -55,7 +55,10 @@ public final class BazelJavaTestRule implements RuleDefinition {
.setImplicitOutputsFunction(BazelJavaRuleClasses.JAVA_BINARY_IMPLICIT_OUTPUTS)
// Proguard can be run over java_test targets using the --java_optimization_mode flag.
// Primarily this is intended to help test changes to Proguard.
- .add(attr(":proguard", LABEL).cfg(HOST).value(JavaSemantics.PROGUARD).exec())
+ .add(attr(":proguard", LABEL)
+ .cfg(HostTransition.INSTANCE)
+ .value(JavaSemantics.PROGUARD)
+ .exec())
.add(attr(":extra_proguard_specs", LABEL_LIST).value(JavaSemantics.EXTRA_PROGUARD_SPECS))
.override(attr("stamp", TRISTATE).value(TriState.NO))
.override(attr("use_testrunner", BOOLEAN).value(true))
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyBinaryRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyBinaryRule.java
index 0cb200a421..86f2a09601 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyBinaryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyBinaryRule.java
@@ -14,13 +14,13 @@
package com.google.devtools.build.lib.bazel.rules.python;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.bazel.rules.python.BazelPyRuleClasses.PyBinaryBaseRule;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.RuleClass;
@@ -41,12 +41,17 @@ public final class BazelPyBinaryRule implements RuleDefinition {
<!-- #END_BLAZE_RULE.NAME --> */
Label launcher = env.getLauncherLabel();
if (launcher != null) {
- builder.add(attr("$launcher", LABEL).cfg(HOST).value(launcher));
+ builder.add(attr("$launcher", LABEL)
+ .cfg(HostTransition.INSTANCE)
+ .value(launcher));
}
return builder
.requiresConfigurationFragments(PythonConfiguration.class, BazelPythonConfiguration.class)
.cfg(PyRuleClasses.DEFAULT_PYTHON_VERSION_TRANSITION)
- .add(attr("$zipper", LABEL).cfg(HOST).exec().value(env.getToolsLabel("//tools/zip:zipper")))
+ .add(attr("$zipper", LABEL)
+ .cfg(HostTransition.INSTANCE)
+ .exec()
+ .value(env.getToolsLabel("//tools/zip:zipper")))
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyRuleClasses.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyRuleClasses.java
index 423730703d..be90d861e3 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyRuleClasses.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.bazel.rules.python;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
@@ -26,6 +25,7 @@ import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.bazel.rules.cpp.BazelCppRuleClasses;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.Attribute.AllowedValueSet;
@@ -111,7 +111,9 @@ public final class BazelPyRuleClasses {
.add(attr(":py_interpreter", LABEL).value(PY_INTERPRETER))
// do not depend on lib2to3:2to3 rule, because it creates circular dependencies
// 2to3 is itself written in Python and depends on many libraries.
- .add(attr("$python2to3", LABEL).cfg(HOST).exec()
+ .add(attr("$python2to3", LABEL)
+ .cfg(HostTransition.INSTANCE)
+ .exec()
.value(env.getToolsLabel("//tools/python:2to3")))
.setPreferredDependencyPredicate(PyRuleClasses.PYTHON_SOURCE)
.build();
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyTestRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyTestRule.java
index 15691b9ad3..801c9e2763 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyTestRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyTestRule.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.bazel.rules.python;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.TRISTATE;
@@ -23,6 +22,7 @@ import static com.google.devtools.build.lib.syntax.Type.BOOLEAN;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.bazel.rules.python.BazelPyRuleClasses.PyBinaryBaseRule;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.RuleClass;
@@ -39,12 +39,15 @@ public final class BazelPyTestRule implements RuleDefinition {
public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment env) {
Label launcher = env.getLauncherLabel();
if (launcher != null) {
- builder.add(attr("$launcher", LABEL).cfg(HOST).value(launcher));
+ builder.add(attr("$launcher", LABEL).cfg(HostTransition.INSTANCE).value(launcher));
}
return builder
.requiresConfigurationFragments(PythonConfiguration.class, BazelPythonConfiguration.class)
.cfg(PyRuleClasses.DEFAULT_PYTHON_VERSION_TRANSITION)
- .add(attr("$zipper", LABEL).cfg(HOST).exec().value(env.getToolsLabel("//tools/zip:zipper")))
+ .add(attr("$zipper", LABEL)
+ .cfg(HostTransition.INSTANCE)
+ .exec()
+ .value(env.getToolsLabel("//tools/zip:zipper")))
.override(
attr("testonly", BOOLEAN)
.value(true)
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShBinaryRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShBinaryRule.java
index 7ba0859968..0a0b4e0205 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShBinaryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShBinaryRule.java
@@ -13,13 +13,13 @@
// limitations under the License.
package com.google.devtools.build.lib.bazel.rules.sh;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.bazel.rules.sh.BazelShRuleClasses.ShRule;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.RuleClass;
@@ -33,7 +33,7 @@ public final class BazelShBinaryRule implements RuleDefinition {
public RuleClass build(Builder builder, RuleDefinitionEnvironment environment) {
Label launcher = environment.getLauncherLabel();
if (launcher != null) {
- builder.add(attr("$launcher", LABEL).cfg(HOST).value(launcher));
+ builder.add(attr("$launcher", LABEL).cfg(HostTransition.INSTANCE).value(launcher));
}
return builder.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShTestRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShTestRule.java
index 8001a4ecd2..fdd142ea03 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShTestRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShTestRule.java
@@ -13,13 +13,13 @@
// limitations under the License.
package com.google.devtools.build.lib.bazel.rules.sh;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.bazel.rules.sh.BazelShRuleClasses.ShRule;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.RuleClass;
@@ -34,7 +34,7 @@ public final class BazelShTestRule implements RuleDefinition {
public RuleClass build(Builder builder, RuleDefinitionEnvironment environment) {
Label launcher = environment.getLauncherLabel();
if (launcher != null) {
- builder.add(attr("$launcher", LABEL).cfg(HOST).value(launcher));
+ builder.add(attr("$launcher", LABEL).cfg(HostTransition.INSTANCE).value(launcher));
}
return builder.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AarImportBaseRule.java b/src/main/java/com/google/devtools/build/lib/rules/android/AarImportBaseRule.java
index bba8627e8b..5a5b1bc568 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AarImportBaseRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AarImportBaseRule.java
@@ -14,13 +14,13 @@
package com.google.devtools.build.lib.rules.android;
import static com.google.devtools.build.lib.packages.Attribute.ANY_EDGE;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder;
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
@@ -55,20 +55,23 @@ public class AarImportBaseRule implements RuleDefinition {
.validityPredicate(ANY_EDGE))
.add(
attr(AAR_EMBEDDED_JARS_EXTACTOR, LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/android:aar_embedded_jars_extractor")))
.add(
attr(AAR_NATIVE_LIBS_ZIP_CREATOR, LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/android:aar_native_libs_zip_creator")))
.add(
attr(AAR_RESOURCES_EXTRACTOR, LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/android:aar_resources_extractor")))
- .add(attr(ZIPPER, LABEL).cfg(HOST).exec().value(env.getToolsLabel("//tools/zip:zipper")))
+ .add(attr(ZIPPER, LABEL)
+ .cfg(HostTransition.INSTANCE)
+ .exec()
+ .value(env.getToolsLabel("//tools/zip:zipper")))
.advertiseSkylarkProvider(SkylarkProviderIdentifier.forKey(JavaInfo.PROVIDER.getKey()))
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceRule.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceRule.java
index a033c67cfb..5c37d9fd09 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceRule.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.rules.android;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
@@ -23,6 +22,7 @@ import static com.google.devtools.build.lib.syntax.Type.INTEGER;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.analysis.whitelisting.Whitelist;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.rules.java.JavaSemantics;
@@ -95,58 +95,62 @@ public final class AndroidDeviceRule implements RuleDefinition {
a specific device). The properties in this file will override read only
properties typically set by the emulator such as ro.product.model.
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
- .add(attr("default_properties", LABEL).cfg(HOST).allowedFileTypes(JavaSemantics.PROPERTIES))
+ .add(attr("default_properties", LABEL)
+ .cfg(HostTransition.INSTANCE)
+ .allowedFileTypes(JavaSemantics.PROPERTIES))
/* <!-- #BLAZE_RULE(android_device).ATTRIBUTE(platform_apks) -->
A list of apks to be installed on the device at boot time.
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(attr("platform_apks", LABEL_LIST).legacyAllowAnyFileType())
.add(
attr("$adb_static", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(env.getToolsLabel("//tools/android:adb_static")))
- .add(attr("$adb", LABEL).cfg(HOST).value(env.getToolsLabel("//tools/android:adb")))
+ .add(attr("$adb", LABEL)
+ .cfg(HostTransition.INSTANCE)
+ .value(env.getToolsLabel("//tools/android:adb")))
.add(
attr("$emulator_arm", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(env.getToolsLabel("//tools/android/emulator:emulator_arm")))
.add(
attr("$emulator_x86", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(env.getToolsLabel("//tools/android/emulator:emulator_x86")))
.add(
attr("$emulator_x86_bios", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(env.getToolsLabel("//tools/android/emulator:emulator_x86_bios")))
.add(
attr("$mksd", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/android/emulator:mksd")))
.add(
attr("$empty_snapshot_fs", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(env.getToolsLabel("//tools/android/emulator:empty_snapshot_fs")))
.add(
attr("$xvfb_support", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(env.getToolsLabel("//tools/android/emulator:xvfb_support")))
.add(
attr("$unified_launcher", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/android/emulator:unified_launcher")))
.add(
attr("$android_runtest", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/android:android_runtest")))
.add(
attr("$testing_shbase", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(env.getToolsLabel("//tools/android/emulator:shbase")))
.add(
attr("$sdk_path", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/android/emulator:sdk_path")))
.add(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidHostServiceFixtureRule.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidHostServiceFixtureRule.java
index 1777f4f792..9338cd0c96 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidHostServiceFixtureRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidHostServiceFixtureRule.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.rules.android;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
@@ -23,6 +22,7 @@ import static com.google.devtools.build.lib.syntax.Type.STRING_LIST;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder;
@@ -32,7 +32,11 @@ public class AndroidHostServiceFixtureRule implements RuleDefinition {
public RuleClass build(Builder builder, RuleDefinitionEnvironment env) {
return builder
.setUndocumented()
- .add(attr("executable", LABEL).exec().cfg(HOST).mandatory().allowedFileTypes())
+ .add(attr("executable", LABEL)
+ .exec()
+ .cfg(HostTransition.INSTANCE)
+ .mandatory()
+ .allowedFileTypes())
.add(attr("service_names", STRING_LIST))
.add(
attr("support_apks", LABEL_LIST)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationTestRule.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationTestRule.java
index 23f8dbe632..2a7ea45914 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationTestRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationTestRule.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.rules.android;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
@@ -22,6 +21,7 @@ import static com.google.devtools.build.lib.syntax.Type.STRING_DICT;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder;
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
@@ -43,7 +43,7 @@ public class AndroidInstrumentationTestRule implements RuleDefinition {
attr("target_device", LABEL)
.mandatory()
.exec()
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.allowedFileTypes(FileTypeSet.NO_FILE)
.allowedRuleClasses("android_device"))
.add(
@@ -61,7 +61,7 @@ public class AndroidInstrumentationTestRule implements RuleDefinition {
.add(
attr("$test_entry_point", LABEL)
.exec()
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(
environment.getToolsLabel("//tools/android:instrumentation_test_entry_point")))
.removeAttribute("deps")
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryBaseRule.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryBaseRule.java
index 78ffb0693e..0c053e06cf 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryBaseRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibraryBaseRule.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.rules.android;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
import static com.google.devtools.build.lib.packages.BuildType.TRISTATE;
@@ -22,6 +21,7 @@ import static com.google.devtools.build.lib.syntax.Type.STRING;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
import com.google.devtools.build.lib.packages.SkylarkProviderIdentifier;
@@ -112,7 +112,7 @@ public final class AndroidLibraryBaseRule implements RuleDefinition {
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("exported_plugins", LABEL_LIST)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.allowedRuleClasses("java_plugin")
.allowedFileTypes(FileTypeSet.NO_FILE))
.add(attr("alwayslink", BOOLEAN).undocumented("purely informational for now"))
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java
index 5c708e479d..ea87cb8a88 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java
@@ -13,7 +13,6 @@
// limitations under the License.package com.google.devtools.build.lib.rules.android;
package com.google.devtools.build.lib.rules.android;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_KEYED_STRING_DICT;
@@ -25,6 +24,7 @@ import static com.google.devtools.build.lib.syntax.Type.STRING_DICT;
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder;
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
@@ -92,7 +92,7 @@ public class AndroidLocalTestBaseRule implements RuleDefinition {
// rule so they're not defined in multiple places
.add(
attr("$android_resources_busybox", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(environment.getToolsLabel(AndroidRuleClasses.DEFAULT_RESOURCES_BUSYBOX)))
.add(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
index dfcfd5c4b4..adca93d1fc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.rules.android;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_KEYED_STRING_DICT;
@@ -37,6 +36,7 @@ import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.packages.Attribute;
@@ -395,32 +395,80 @@ public final class AndroidRuleClasses {
// build_tools_version is assumed to be the latest version if omitted.
.add(attr("build_tools_version", STRING))
// This is the Proguard that comes from the --proguard_top attribute.
- .add(attr(":proguard", LABEL).cfg(HOST).value(JavaSemantics.PROGUARD).exec())
+ .add(attr(":proguard", LABEL)
+ .cfg(HostTransition.INSTANCE)
+ .value(JavaSemantics.PROGUARD).exec())
// This is the Proguard in the BUILD file that contains the android_sdk rule. Used when
// --proguard_top is not specified.
- .add(attr("proguard", LABEL).mandatory().cfg(HOST).allowedFileTypes(ANY_FILE).exec())
- .add(attr("aapt", LABEL).mandatory().cfg(HOST).allowedFileTypes(ANY_FILE).exec())
- .add(attr("aapt2", LABEL).cfg(HOST).allowedFileTypes(ANY_FILE).exec())
- .add(attr("dx", LABEL).mandatory().cfg(HOST).allowedFileTypes(ANY_FILE).exec())
+ .add(attr("proguard", LABEL).mandatory()
+ .cfg(HostTransition.INSTANCE)
+ .allowedFileTypes(ANY_FILE)
+ .exec())
+ .add(attr("aapt", LABEL).mandatory()
+ .cfg(HostTransition.INSTANCE)
+ .allowedFileTypes(ANY_FILE)
+ .exec())
+ .add(attr("aapt2", LABEL)
+ .cfg(HostTransition.INSTANCE)
+ .allowedFileTypes(ANY_FILE)
+ .exec())
+ .add(attr("dx", LABEL).mandatory()
+ .cfg(HostTransition.INSTANCE)
+ .allowedFileTypes(ANY_FILE)
+ .exec())
.add(
attr("main_dex_list_creator", LABEL)
.mandatory()
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.allowedFileTypes(ANY_FILE)
.exec())
- .add(attr("adb", LABEL).mandatory().cfg(HOST).allowedFileTypes(ANY_FILE).exec())
- .add(attr("framework_aidl", LABEL).mandatory().cfg(HOST).allowedFileTypes(ANY_FILE))
- .add(attr("aidl", LABEL).mandatory().cfg(HOST).allowedFileTypes(ANY_FILE).exec())
+ .add(attr("adb", LABEL)
+ .mandatory()
+ .cfg(HostTransition.INSTANCE)
+ .allowedFileTypes(ANY_FILE)
+ .exec())
+ .add(attr("framework_aidl", LABEL)
+ .mandatory()
+ .cfg(HostTransition.INSTANCE)
+ .allowedFileTypes(ANY_FILE))
+ .add(attr("aidl", LABEL)
+ .mandatory()
+ .cfg(HostTransition.INSTANCE)
+ .allowedFileTypes(ANY_FILE)
+ .exec())
.add(attr("aidl_lib", LABEL).allowedFileTypes(JavaSemantics.JAR))
- .add(attr("android_jar", LABEL).mandatory().cfg(HOST).allowedFileTypes(JavaSemantics.JAR))
+ .add(attr("android_jar", LABEL)
+ .mandatory()
+ .cfg(HostTransition.INSTANCE)
+ .allowedFileTypes(JavaSemantics.JAR))
// TODO(b/67903726): Make this attribute mandatory after updating all android_sdk rules.
- .add(attr("source_properties", LABEL).cfg(HOST).allowedFileTypes(ANY_FILE))
- .add(attr("shrinked_android_jar", LABEL).mandatory().cfg(HOST).allowedFileTypes(ANY_FILE))
- .add(attr("annotations_jar", LABEL).mandatory().cfg(HOST).allowedFileTypes(ANY_FILE))
- .add(attr("main_dex_classes", LABEL).mandatory().cfg(HOST).allowedFileTypes(ANY_FILE))
- .add(attr("apkbuilder", LABEL).cfg(HOST).allowedFileTypes(ANY_FILE).exec())
- .add(attr("apksigner", LABEL).mandatory().cfg(HOST).allowedFileTypes(ANY_FILE).exec())
- .add(attr("zipalign", LABEL).mandatory().cfg(HOST).allowedFileTypes(ANY_FILE).exec())
+ .add(attr("source_properties", LABEL)
+ .cfg(HostTransition.INSTANCE)
+ .allowedFileTypes(ANY_FILE))
+ .add(attr("shrinked_android_jar", LABEL)
+ .mandatory()
+ .cfg(HostTransition.INSTANCE)
+ .allowedFileTypes(ANY_FILE))
+ .add(attr("annotations_jar", LABEL)
+ .mandatory()
+ .cfg(HostTransition.INSTANCE)
+ .allowedFileTypes(ANY_FILE))
+ .add(attr("main_dex_classes", LABEL)
+ .mandatory().cfg(HostTransition.INSTANCE)
+ .allowedFileTypes(ANY_FILE))
+ .add(attr("apkbuilder", LABEL)
+ .cfg(HostTransition.INSTANCE)
+ .allowedFileTypes(ANY_FILE)
+ .exec())
+ .add(attr("apksigner", LABEL)
+ .mandatory()
+ .cfg(HostTransition.INSTANCE)
+ .allowedFileTypes(ANY_FILE)
+ .exec())
+ .add(attr("zipalign", LABEL)
+ .mandatory()
+ .cfg(HostTransition.INSTANCE)
+ .allowedFileTypes(ANY_FILE).exec())
.add(
attr(":java_toolchain", LABEL)
.useOutputLicenses()
@@ -515,12 +563,12 @@ public final class AndroidRuleClasses {
// processed XML expressions into Java code.
.add(
attr(DataBinding.DATABINDING_ANNOTATION_PROCESSOR_ATTR, LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(env.getToolsLabel("//tools/android:databinding_annotation_processor")))
// TODO(b/30816740): Remove this once legacy manifest merging is no longer supported.
.add(
attr("$android_manifest_merge_tool", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel(AndroidRuleClasses.MANIFEST_MERGE_TOOL_LABEL)))
.build();
@@ -555,12 +603,12 @@ public final class AndroidRuleClasses {
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("plugins", LABEL_LIST)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.allowedRuleClasses("java_plugin")
.legacyAllowAnyFileType())
.add(
attr(":java_plugins", LABEL_LIST)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.allowedRuleClasses("java_plugin")
.silentRuleClassFilter()
.value(JavaSemantics.JAVA_PLUGINS))
@@ -574,21 +622,21 @@ public final class AndroidRuleClasses {
.add(attr("javacopts", STRING_LIST))
.add(
attr("$jarjar_bin", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/android:jarjar_bin")))
.add(
attr("$idlclass", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/android:IdlClass")))
.add(
attr("$desugar_java8_extra_bootclasspath", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(env.getToolsLabel("//tools/android:desugar_java8_extra_bootclasspath")))
.add(
attr("$android_resources_busybox", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel(DEFAULT_RESOURCES_BUSYBOX)))
.build();
@@ -667,7 +715,7 @@ public final class AndroidRuleClasses {
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("debug_key", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.legacyAllowAnyFileType()
.value(env.getToolsLabel("//tools/android:debug_keystore")))
.add(
@@ -729,52 +777,52 @@ public final class AndroidRuleClasses {
.add(attr(ResourceFilterFactory.DENSITIES_NAME, STRING_LIST))
.add(
attr("$build_incremental_dexmanifest", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel(BUILD_INCREMENTAL_DEXMANIFEST_LABEL)))
.add(
attr("$stubify_manifest", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel(STUBIFY_MANIFEST_LABEL)))
.add(
attr("$shuffle_jars", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/android:shuffle_jars")))
.add(
attr("$dexbuilder", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/android:dexbuilder")))
.add(
attr("$dexsharder", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/android:dexsharder")))
.add(
attr("$dexmerger", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/android:dexmerger")))
.add(
attr("$merge_dexzips", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/android:merge_dexzips")))
.add(
attr("$incremental_install", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel(INCREMENTAL_INSTALL_LABEL)))
.add(
attr("$build_split_manifest", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel(BUILD_SPLIT_MANIFEST_LABEL)))
.add(
attr("$strip_resources", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel(STRIP_RESOURCES_LABEL)))
.add(
@@ -787,7 +835,7 @@ public final class AndroidRuleClasses {
.aspect(dexArchiveAspect, DexArchiveAspect.ONLY_DESUGAR_JAVA8))
.add(
attr("$desugar", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/android:desugar_java8")))
/* <!-- #BLAZE_RULE($android_binary_base).ATTRIBUTE(dexopts) -->
@@ -892,7 +940,7 @@ public final class AndroidRuleClasses {
.add(attr(":extra_proguard_specs", LABEL_LIST).value(JavaSemantics.EXTRA_PROGUARD_SPECS))
.add(
attr(":bytecode_optimizers", LABEL_LIST)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(JavaSemantics.BYTECODE_OPTIMIZERS))
// We need the C++ toolchain for every sub-configuration to get the correct linker.
.add(
@@ -965,7 +1013,7 @@ public final class AndroidRuleClasses {
// deploy jar so that they can be added to the APK.
.add(
attr("$resource_extractor", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/android:resource_extractor")))
.add(
@@ -975,7 +1023,7 @@ public final class AndroidRuleClasses {
.allowedFileTypes(NO_FILE))
.add(
attr("$instrumentation_test_check", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(
new Attribute.ComputedDefault() {
@Override
@@ -988,7 +1036,7 @@ public final class AndroidRuleClasses {
.exec())
.add(
attr("$zip_filter", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/android:zip_filter")))
.removeAttribute("data")
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java b/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java
index ac7e914b47..bab57265d9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.rules.android;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.TRISTATE;
@@ -45,6 +44,7 @@ import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.Builder;
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.VectorArg;
import com.google.devtools.build.lib.analysis.actions.ParameterFileWriteAction;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.IterablesChain;
@@ -144,7 +144,7 @@ public final class DexArchiveAspect extends NativeAspectClass implements Configu
// Parse labels since we don't have RuleDefinitionEnvironment.getLabel like in a rule
.add(
attr(ASPECT_DESUGAR_PREREQ, LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(
Label.parseAbsoluteUnchecked(
@@ -163,7 +163,7 @@ public final class DexArchiveAspect extends NativeAspectClass implements Configu
// Marginally improves "query2" precision for targets that disable incremental dexing
result.add(
attr(ASPECT_DEXBUILDER_PREREQ, LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(Label.parseAbsoluteUnchecked(toolsRepository + "//tools/android:dexbuilder")));
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java
index e4847052ad..93a5f9ca63 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.rules.cpp;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
@@ -26,6 +25,7 @@ import com.google.devtools.build.lib.analysis.PlatformConfiguration;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
import com.google.devtools.build.lib.analysis.TemplateVariableInfo;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.Attribute.LateBoundDefault;
import com.google.devtools.build.lib.packages.Rule;
@@ -77,7 +77,7 @@ public final class CcToolchainRule implements RuleDefinition {
if (defParserLabel != null) {
builder.add(
attr("$def_parser", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.singleArtifact()
.value(env.getLabel(defParserLabel)));
}
@@ -89,26 +89,52 @@ public final class CcToolchainRule implements RuleDefinition {
.add(attr("cpu", STRING).mandatory())
.add(attr("compiler", STRING))
.add(attr("libc", STRING))
- .add(attr("all_files", LABEL).legacyAllowAnyFileType().cfg(HOST).mandatory())
- .add(attr("compiler_files", LABEL).legacyAllowAnyFileType().cfg(HOST).mandatory())
- .add(attr("strip_files", LABEL).legacyAllowAnyFileType().cfg(HOST).mandatory())
- .add(attr("objcopy_files", LABEL).legacyAllowAnyFileType().cfg(HOST).mandatory())
- .add(attr("linker_files", LABEL).legacyAllowAnyFileType().cfg(HOST).mandatory())
- .add(attr("dwp_files", LABEL).legacyAllowAnyFileType().cfg(HOST).mandatory())
- .add(attr("coverage_files", LABEL).legacyAllowAnyFileType().cfg(HOST))
- .add(attr("static_runtime_libs", LABEL_LIST).legacyAllowAnyFileType().mandatory())
- .add(attr("dynamic_runtime_libs", LABEL_LIST).legacyAllowAnyFileType().mandatory())
- .add(attr("module_map", LABEL).legacyAllowAnyFileType().cfg(HOST))
+ .add(attr("all_files", LABEL)
+ .legacyAllowAnyFileType()
+ .cfg(HostTransition.INSTANCE)
+ .mandatory())
+ .add(attr("compiler_files", LABEL)
+ .legacyAllowAnyFileType()
+ .cfg(HostTransition.INSTANCE)
+ .mandatory())
+ .add(attr("strip_files", LABEL)
+ .legacyAllowAnyFileType()
+ .cfg(HostTransition.INSTANCE)
+ .mandatory())
+ .add(attr("objcopy_files", LABEL)
+ .legacyAllowAnyFileType()
+ .cfg(HostTransition.INSTANCE)
+ .mandatory())
+ .add(attr("linker_files", LABEL)
+ .legacyAllowAnyFileType()
+ .cfg(HostTransition.INSTANCE)
+ .mandatory())
+ .add(attr("dwp_files", LABEL)
+ .legacyAllowAnyFileType()
+ .cfg(HostTransition.INSTANCE)
+ .mandatory())
+ .add(attr("coverage_files", LABEL)
+ .legacyAllowAnyFileType()
+ .cfg(HostTransition.INSTANCE))
+ .add(attr("static_runtime_libs", LABEL_LIST)
+ .legacyAllowAnyFileType()
+ .mandatory())
+ .add(attr("dynamic_runtime_libs", LABEL_LIST)
+ .legacyAllowAnyFileType()
+ .mandatory())
+ .add(attr("module_map", LABEL)
+ .legacyAllowAnyFileType()
+ .cfg(HostTransition.INSTANCE))
.add(attr("supports_param_files", BOOLEAN).value(true))
.add(attr("supports_header_parsing", BOOLEAN).value(false))
.add(
attr("$interface_library_builder", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.singleArtifact()
.value(env.getToolsLabel("//tools/cpp:interface_library_builder")))
.add(
attr("$link_dynamic_library_tool", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.singleArtifact()
.value(env.getToolsLabel("//tools/cpp:link_dynamic_library")))
.add(
@@ -116,7 +142,7 @@ public final class CcToolchainRule implements RuleDefinition {
.value(CppRuleClasses.ccToolchainTypeAttribute(env)))
.add(
attr(":zipper", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.singleArtifact()
.value(
LateBoundDefault.fromTargetConfiguration(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionRule.java b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionRule.java
index f2e5b26e03..f7cfd52df3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionRule.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.rules.extra;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
import static com.google.devtools.build.lib.syntax.Type.BOOLEAN;
@@ -23,6 +22,7 @@ import static com.google.devtools.build.lib.syntax.Type.STRING_LIST;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder;
@@ -57,7 +57,7 @@ public final class ExtraActionRule implements RuleDefinition {
be the root of that unified tree.
</p>
<!-- #END_BLAZE_RULE.ATTRIBUTE -->*/
- .add(attr("tools", LABEL_LIST).cfg(HOST).allowedFileTypes().exec())
+ .add(attr("tools", LABEL_LIST).cfg(HostTransition.INSTANCE).allowedFileTypes().exec())
/*<!-- #BLAZE_RULE(extra_action).ATTRIBUTE(out_templates) -->
A list of templates for files generated by the <code>extra_action</code> command.
<p>
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBaseRule.java b/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBaseRule.java
index 997af555c4..5fd61f5a75 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBaseRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBaseRule.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.rules.genrule;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
import static com.google.devtools.build.lib.packages.BuildType.LICENSE;
@@ -25,6 +24,7 @@ import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
import com.google.devtools.build.lib.analysis.TemplateVariableInfo;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.Attribute;
import com.google.devtools.build.lib.packages.Attribute.ComputedDefault;
@@ -115,7 +115,9 @@ public class GenRuleBaseRule implements RuleDefinition {
list, not in <code>srcs</code>, to ensure they are built in the correct configuration.
</p>
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
- .add(attr("tools", LABEL_LIST).cfg(HOST).allowedFileTypes(FileTypeSet.ANY_FILE))
+ .add(attr("tools", LABEL_LIST)
+ .cfg(HostTransition.INSTANCE)
+ .allowedFileTypes(FileTypeSet.ANY_FILE))
.add(
attr("toolchains", LABEL_LIST)
.allowedFileTypes(FileTypeSet.NO_FILE)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaImportBaseRule.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaImportBaseRule.java
index 04841bcad5..073b9ee08b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaImportBaseRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaImportBaseRule.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.rules.java;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
@@ -24,6 +23,7 @@ import static com.google.devtools.build.lib.syntax.Type.STRING_LIST;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder;
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
@@ -39,7 +39,9 @@ public class JavaImportBaseRule implements RuleDefinition {
public RuleClass build(Builder builder, RuleDefinitionEnvironment environment) {
return builder
.requiresConfigurationFragments(JavaConfiguration.class, CppConfiguration.class)
- .add(attr(":host_jdk", LABEL).cfg(HOST).value(JavaSemantics.hostJdkAttribute(environment)))
+ .add(attr(":host_jdk", LABEL)
+ .cfg(HostTransition.INSTANCE)
+ .value(JavaSemantics.hostJdkAttribute(environment)))
/* <!-- #BLAZE_RULE($java_import_base).ATTRIBUTE(jars) -->
The list of JAR files provided to Java targets that depend on this target.
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPackageConfigurationRule.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPackageConfigurationRule.java
index 2955f955c2..887163ec5e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPackageConfigurationRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPackageConfigurationRule.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.rules.java;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LICENSE;
@@ -23,6 +22,7 @@ import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.PackageSpecificationProvider;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.packages.BuildType;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder;
@@ -40,7 +40,7 @@ public class JavaPackageConfigurationRule implements RuleDefinition {
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("packages", BuildType.LABEL_LIST)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.allowedFileTypes()
.mandatoryNativeProviders(ImmutableList.of(PackageSpecificationProvider.class)))
/* <!-- #BLAZE_RULE(java_package_configuration).ATTRIBUTE(javacopts) -->
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainRule.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainRule.java
index 2ec3fd3dd4..1a6ab6c420 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainRule.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.rules.java;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
@@ -28,6 +27,7 @@ import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder;
import com.google.devtools.build.lib.util.FileTypeSet;
@@ -62,7 +62,7 @@ public final class JavaToolchainRule implements RuleDefinition {
.add(
attr("bootclasspath", LABEL_LIST)
.value(ImmutableList.of())
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.allowedFileTypes(FileTypeSet.ANY_FILE))
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(extclasspath) -->
The Java target extdir entries. Corresponds to javac's -extdir flag.
@@ -70,7 +70,7 @@ public final class JavaToolchainRule implements RuleDefinition {
.add(
attr("extclasspath", LABEL_LIST)
.value(ImmutableList.of())
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.allowedFileTypes(FileTypeSet.ANY_FILE))
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(encoding) -->
The encoding of the java files (e.g., 'UTF-8').
@@ -105,20 +105,20 @@ public final class JavaToolchainRule implements RuleDefinition {
.add(
attr("javac", LABEL_LIST)
.mandatory()
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.singleArtifact()
.allowedFileTypes(FileTypeSet.ANY_FILE))
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(tools) -->
Labels of tools available for label-expansion in jvm_opts.
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
- .add(attr("tools", LABEL_LIST).cfg(HOST).allowedFileTypes(FileTypeSet.ANY_FILE))
+ .add(attr("tools", LABEL_LIST).cfg(HostTransition.INSTANCE).allowedFileTypes(FileTypeSet.ANY_FILE))
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(javabuilder) -->
Label of the JavaBuilder deploy jar.
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("javabuilder", LABEL_LIST)
.mandatory()
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(singlejar) -->
@@ -127,7 +127,7 @@ public final class JavaToolchainRule implements RuleDefinition {
.add(
attr("singlejar", LABEL_LIST)
.mandatory()
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.singleArtifact()
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
@@ -138,7 +138,7 @@ public final class JavaToolchainRule implements RuleDefinition {
attr("genclass", LABEL_LIST)
.mandatory()
.singleArtifact()
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(resourcejar) -->
@@ -146,7 +146,7 @@ public final class JavaToolchainRule implements RuleDefinition {
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("resourcejar", LABEL_LIST)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.singleArtifact()
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
@@ -156,7 +156,7 @@ public final class JavaToolchainRule implements RuleDefinition {
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("timezone_data", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.singleArtifact()
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
@@ -166,7 +166,7 @@ public final class JavaToolchainRule implements RuleDefinition {
.add(
attr("ijar", LABEL_LIST)
.mandatory()
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(header_compiler) -->
@@ -174,7 +174,7 @@ public final class JavaToolchainRule implements RuleDefinition {
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("header_compiler", LABEL_LIST)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.singleArtifact()
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
@@ -183,7 +183,7 @@ public final class JavaToolchainRule implements RuleDefinition {
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("oneversion", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.singleArtifact()
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
@@ -192,7 +192,7 @@ public final class JavaToolchainRule implements RuleDefinition {
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("oneversion_whitelist", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.singleArtifact()
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
@@ -210,7 +210,7 @@ public final class JavaToolchainRule implements RuleDefinition {
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("package_configuration", LABEL_LIST)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.allowedFileTypes()
.mandatoryNativeProviders(ImmutableList.of(JavaPackageConfigurationProvider.class)))
.build();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/ProguardLibraryRule.java b/src/main/java/com/google/devtools/build/lib/rules/java/ProguardLibraryRule.java
index 8147cb8557..24322d46db 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/ProguardLibraryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/ProguardLibraryRule.java
@@ -14,13 +14,13 @@
package com.google.devtools.build.lib.rules.java;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.packages.Attribute;
import com.google.devtools.build.lib.packages.AttributeMap;
import com.google.devtools.build.lib.packages.RuleClass;
@@ -45,7 +45,7 @@ public final class ProguardLibraryRule implements RuleDefinition {
<code>android_binary</code>'s proguard_specs, to ensure non-tautological merges.
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(attr("proguard_specs", LABEL_LIST).legacyAllowAnyFileType())
- .add(attr("$proguard_whitelister", LABEL).cfg(HOST).exec().value(
+ .add(attr("$proguard_whitelister", LABEL).cfg(HostTransition.INSTANCE).exec().value(
new Attribute.ComputedDefault() {
@Override
public Object getDefault(AttributeMap rule) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java
index e25bd120da..e013a8b827 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java
@@ -18,7 +18,6 @@ import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.collect.Iterables.getOnlyElement;
import static com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget.Mode.TARGET;
import static com.google.devtools.build.lib.cmdline.Label.parseAbsoluteUnchecked;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.rules.java.proto.JplCcLinkParams.createCcLinkParamsStore;
@@ -36,6 +35,7 @@ import com.google.devtools.build.lib.analysis.TransitiveInfoProviderMap;
import com.google.devtools.build.lib.analysis.TransitiveInfoProviderMapBuilder;
import com.google.devtools.build.lib.analysis.WrappingProvider;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration.StrictDepsMode;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
@@ -125,14 +125,15 @@ public class JavaLiteProtoAspect extends NativeAspectClass implements Configured
ImmutableList.<Class<? extends TransitiveInfoProvider>>of(
ProtoLangToolchainProvider.class))
.value(getProtoToolchainLabel(defaultProtoToolchainLabel)))
- .add(attr(":host_jdk", LABEL).cfg(HOST).value(hostJdkAttribute))
+ .add(attr(":host_jdk", LABEL).cfg(HostTransition.INSTANCE).value(hostJdkAttribute))
.add(
attr(":java_toolchain", LABEL)
.useOutputLicenses()
.allowedRuleClasses("java_toolchain")
.value(JavaSemantics.JAVA_TOOLCHAIN));
- Attribute.Builder<Label> jacocoAttr = attr("$jacoco_instrumentation", LABEL).cfg(HOST);
+ Attribute.Builder<Label> jacocoAttr =
+ attr("$jacoco_instrumentation", LABEL).cfg(HostTransition.INSTANCE);
if (jacocoLabel != null) {
jacocoAttr.value(parseAbsoluteUnchecked(jacocoLabel));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java
index 7367c1be72..905250b962 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java
@@ -18,7 +18,6 @@ import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.collect.Iterables.getOnlyElement;
import static com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget.Mode.TARGET;
import static com.google.devtools.build.lib.cmdline.Label.parseAbsoluteUnchecked;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.rules.java.proto.JplCcLinkParams.createCcLinkParamsStore;
@@ -35,6 +34,7 @@ import com.google.devtools.build.lib.analysis.TransitiveInfoProviderMap;
import com.google.devtools.build.lib.analysis.TransitiveInfoProviderMapBuilder;
import com.google.devtools.build.lib.analysis.WrappingProvider;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration.StrictDepsMode;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
@@ -134,7 +134,7 @@ public class JavaProtoAspect extends NativeAspectClass implements ConfiguredAspe
// once it's in a Bazel release.
.legacyAllowAnyFileType()
.value(getSpeedProtoToolchainLabel(defaultSpeedProtoToolchainLabel)))
- .add(attr(":host_jdk", LABEL).cfg(HOST).value(hostJdkAttribute))
+ .add(attr(":host_jdk", LABEL).cfg(HostTransition.INSTANCE).value(hostJdkAttribute))
.add(
attr(":java_toolchain", LABEL)
.useOutputLicenses()
@@ -143,7 +143,8 @@ public class JavaProtoAspect extends NativeAspectClass implements ConfiguredAspe
rpcSupport.mutateAspectDefinition(result, aspectParameters);
- Attribute.Builder<Label> jacocoAttr = attr("$jacoco_instrumentation", LABEL).cfg(HOST);
+ Attribute.Builder<Label> jacocoAttr =
+ attr("$jacoco_instrumentation", LABEL).cfg(HostTransition.INSTANCE);
if (jacocoLabel != null) {
jacocoAttr.value(parseAbsoluteUnchecked(jacocoLabel));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/IosTestRule.java b/src/main/java/com/google/devtools/build/lib/rules/objc/IosTestRule.java
index d5d5851072..b43f3020b3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/IosTestRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/IosTestRule.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.rules.objc;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
@@ -25,6 +24,7 @@ import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.Attribute.ComputedDefault;
import com.google.devtools.build.lib.packages.Attribute.LateBoundDefault;
@@ -137,12 +137,12 @@ public class IosTestRule implements RuleDefinition {
.value(env.getToolsLabel("//tools/objc:memleaks_plugin")))
.add(
attr(IosTest.OBJC_GCOV_ATTR, LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(env.getToolsLabel("//tools/objc:gcov")))
// TODO(b/65746853): provide a way to do this without passing the entire configuration
.add(
attr(IosTest.MCOV_TOOL_ATTR, LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(
LateBoundDefault.fromTargetConfiguration(
BuildConfiguration.class,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryRule.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryRule.java
index 610c4ce8e1..d58d07c3ce 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryRule.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.rules.objc;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
@@ -27,6 +26,7 @@ import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder;
import com.google.devtools.build.lib.rules.apple.AppleConfiguration;
@@ -78,17 +78,17 @@ public class ObjcProtoLibraryRule implements RuleDefinition {
attr(PORTABLE_PROTO_FILTERS_ATTR, LABEL_LIST)
.legacyAllowAnyFileType()
.allowedRuleClasses("filegroup")
- .cfg(HOST))
+ .cfg(HostTransition.INSTANCE))
.add(
attr(PROTO_COMPILER_ATTR, LABEL)
.allowedFileTypes(FileType.of(".py"), FileType.of(".sh"))
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.singleArtifact()
.value(env.getToolsLabel("//tools/objc:protobuf_compiler_wrapper")))
.add(
attr(PROTO_COMPILER_SUPPORT_ATTR, LABEL)
.legacyAllowAnyFileType()
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(env.getToolsLabel("//tools/objc:protobuf_compiler_support")))
.add(
attr(PROTO_LIB_ATTR, LABEL)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java
index 98ef865bac..438be32e30 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java
@@ -15,7 +15,6 @@
package com.google.devtools.build.lib.rules.objc;
import static com.google.devtools.build.lib.packages.Attribute.ANY_RULE;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
@@ -38,6 +37,7 @@ import com.google.devtools.build.lib.analysis.Runfiles;
import com.google.devtools.build.lib.analysis.RunfilesProvider;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.packages.Attribute;
@@ -495,11 +495,11 @@ public class ObjcRuleClasses {
@Override
public RuleClass build(Builder builder, RuleDefinitionEnvironment env) {
return builder
- .add(attr("$plmerge", LABEL).cfg(HOST).exec()
+ .add(attr("$plmerge", LABEL).cfg(HostTransition.INSTANCE).exec()
.value(env.getToolsLabel("//tools/objc:plmerge")))
- .add(attr("$actoolwrapper", LABEL).cfg(HOST).exec()
+ .add(attr("$actoolwrapper", LABEL).cfg(HostTransition.INSTANCE).exec()
.value(env.getToolsLabel("//tools/objc:actoolwrapper")))
- .add(attr("$ibtoolwrapper", LABEL).cfg(HOST).exec()
+ .add(attr("$ibtoolwrapper", LABEL).cfg(HostTransition.INSTANCE).exec()
.value(env.getToolsLabel("//tools/objc:ibtoolwrapper")))
.build();
}
@@ -709,7 +709,7 @@ public class ObjcRuleClasses {
least one artifact this attribute cannot be #exec(). */
.add(
attr(HEADER_SCANNER_ATTRIBUTE, LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(
LateBoundDefault.fromTargetConfiguration(
ObjcConfiguration.class,
@@ -751,7 +751,7 @@ public class ObjcRuleClasses {
@Override
public RuleClass build(Builder builder, RuleDefinitionEnvironment env) {
return builder
- .add(attr(LIBTOOL_ATTRIBUTE, LABEL).cfg(HOST).exec()
+ .add(attr(LIBTOOL_ATTRIBUTE, LABEL).cfg(HostTransition.INSTANCE).exec()
.value(env.getToolsLabel("//tools/objc:libtool")))
.build();
}
@@ -825,7 +825,7 @@ public class ObjcRuleClasses {
.add(
attr("$j2objc_dead_code_pruner", LABEL)
.allowedFileTypes(FileType.of(".py"))
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.singleArtifact()
.value(env.getToolsLabel("//tools/objc:j2objc_dead_code_pruner")))
@@ -833,13 +833,13 @@ public class ObjcRuleClasses {
.add(
attr(PROTO_COMPILER_ATTR, LABEL)
.allowedFileTypes(FileType.of(".sh"))
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.singleArtifact()
.value(env.getToolsLabel("//tools/objc:protobuf_compiler_wrapper")))
.add(
attr(PROTO_COMPILER_SUPPORT_ATTR, LABEL)
.legacyAllowAnyFileType()
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(env.getToolsLabel("//tools/objc:protobuf_compiler_support")))
.add(
ProtoSourceFileBlacklist.blacklistFilegroupAttribute(
@@ -989,7 +989,7 @@ public class ObjcRuleClasses {
.add(
attr("$j2objc_dead_code_pruner", LABEL)
.allowedFileTypes(FileType.of(".py"))
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.singleArtifact()
.value(env.getToolsLabel("//tools/objc:j2objc_dead_code_pruner")))
@@ -997,13 +997,13 @@ public class ObjcRuleClasses {
.add(
attr(PROTO_COMPILER_ATTR, LABEL)
.allowedFileTypes(FileType.of(".sh"))
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.singleArtifact()
.value(env.getToolsLabel("//tools/objc:protobuf_compiler_wrapper")))
.add(
attr(PROTO_COMPILER_SUPPORT_ATTR, LABEL)
.legacyAllowAnyFileType()
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(env.getToolsLabel("//tools/objc:protobuf_compiler_support")))
.add(
ProtoSourceFileBlacklist.blacklistFilegroupAttribute(
@@ -1138,7 +1138,7 @@ public class ObjcRuleClasses {
.value(ImmutableList.of(TargetDeviceFamily.IPHONE.getNameInRule())))
.add(
attr("$momcwrapper", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/objc:momcwrapper")))
.build();
@@ -1216,7 +1216,7 @@ public class ObjcRuleClasses {
.add(
attr(EXTRA_ENTITLEMENTS_ATTR, LABEL)
.singleArtifact()
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(
LateBoundDefault.fromTargetConfiguration(
ObjcConfiguration.class,
@@ -1226,7 +1226,7 @@ public class ObjcRuleClasses {
.add(
attr(DEBUG_ENTITLEMENTS_ATTR, LABEL)
.singleArtifact()
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.value(env.getToolsLabel("//tools/objc:device_debug_entitlements.plist")))
/* <!-- #BLAZE_RULE($objc_release_bundling_rule).ATTRIBUTE(provisioning_profile) -->
The provisioning profile (.mobileprovision file) to use when bundling
@@ -1342,17 +1342,17 @@ public class ObjcRuleClasses {
return builder
.add(
attr("$bundlemerge", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/objc:bundlemerge")))
.add(
attr("$environment_plist", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/objc:environment_plist")))
.add(
attr("$swiftstdlibtoolwrapper", LABEL)
- .cfg(HOST)
+ .cfg(HostTransition.INSTANCE)
.exec()
.value(env.getToolsLabel("//tools/objc:swiftstdlibtoolwrapper")))
.build();
@@ -1414,7 +1414,7 @@ public class ObjcRuleClasses {
public RuleClass build(Builder builder, RuleDefinitionEnvironment env) {
return builder
// Needed to run the binary in the simulator.
- .add(attr(STD_REDIRECT_DYLIB_ATTR, LABEL).cfg(HOST).exec()
+ .add(attr(STD_REDIRECT_DYLIB_ATTR, LABEL).cfg(HostTransition.INSTANCE).exec()
.value(env.getToolsLabel("//tools/objc:StdRedirect.dylib")))
.build();
}
@@ -1434,7 +1434,7 @@ public class ObjcRuleClasses {
@Override
public RuleClass build(Builder builder, RuleDefinitionEnvironment env) {
return builder
- .add(attr("$xcrunwrapper", LABEL).cfg(HOST).exec()
+ .add(attr("$xcrunwrapper", LABEL).cfg(HostTransition.INSTANCE).exec()
.value(env.getToolsLabel("//tools/objc:xcrunwrapper")))
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibraryRule.java b/src/main/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibraryRule.java
index e7891c4eb2..e8ffdd6190 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibraryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibraryRule.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.rules.proto;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
@@ -22,6 +21,7 @@ import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.Attribute;
import com.google.devtools.build.lib.packages.RuleClass;
@@ -50,7 +50,10 @@ public final class BazelProtoLibraryRule implements RuleDefinition {
return builder
.requiresConfigurationFragments(ProtoConfiguration.class)
.setOutputToGenfiles()
- .add(attr(":proto_compiler", LABEL).cfg(HOST).exec().value(PROTO_COMPILER))
+ .add(attr(":proto_compiler", LABEL)
+ .cfg(HostTransition.INSTANCE)
+ .exec()
+ .value(PROTO_COMPILER))
/* <!-- #BLAZE_RULE(proto_library).ATTRIBUTE(deps) -->
The list of other <code>proto_library</code> rules that the target depends upon.
A <code>proto_library</code> may only depend on other
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoLangToolchainRule.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoLangToolchainRule.java
index f4c5cf0abc..4ce540e389 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoLangToolchainRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoLangToolchainRule.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.rules.proto;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
@@ -25,6 +24,7 @@ import com.google.devtools.build.lib.analysis.FileProvider;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.syntax.Type;
@@ -52,7 +52,7 @@ public class ProtoLangToolchainRule implements RuleDefinition {
passed to the proto-compiler:
<code>--plugin=protoc-gen-PLUGIN=<executable>.</code>
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
- .add(attr("plugin", LABEL).exec().cfg(HOST).allowedFileTypes())
+ .add(attr("plugin", LABEL).exec().cfg(HostTransition.INSTANCE).allowedFileTypes())
/* <!-- #BLAZE_RULE(proto_lang_toolchain).ATTRIBUTE(runtime) -->
A language-specific library that the generated code is compiled against.
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoSourceFileBlacklist.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoSourceFileBlacklist.java
index 2d8ac0f772..e298392ee1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoSourceFileBlacklist.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoSourceFileBlacklist.java
@@ -15,7 +15,6 @@
package com.google.devtools.build.lib.rules.proto;
import static com.google.common.collect.ImmutableSet.toImmutableSet;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
@@ -25,6 +24,7 @@ import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Streams;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.RuleContext;
+import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.Attribute;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -123,7 +123,9 @@ public class ProtoSourceFileBlacklist {
*/
public static Attribute.Builder<List<Label>> blacklistFilegroupAttribute(
String attributeName, List<Label> blacklistFileGroups) {
- return attr(attributeName, LABEL_LIST).cfg(HOST).value(blacklistFileGroups);
+ return attr(attributeName, LABEL_LIST)
+ .cfg(HostTransition.INSTANCE)
+ .value(blacklistFileGroups);
}
@VisibleForTesting