diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
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 |