aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar jcater <jcater@google.com>2017-09-14 19:06:32 +0200
committerGravatar Philipp Wollermann <philwo@google.com>2017-09-15 11:28:11 +0200
commitc60f973eeb1a0ed4faa35e50734de7e9d5248770 (patch)
tree9c3f4e5de9a3f5817720f7660c7df1657e386553 /src/main/java/com/google/devtools/build
parentcd37941353fe59f50154840a97994666905c9d5d (diff)
Remove unused late-bound attributes for target and execution platforms.
PiperOrigin-RevId: 168703757
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/PlatformSemantics.java46
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java2
3 files changed, 3 insertions, 47 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/PlatformSemantics.java b/src/main/java/com/google/devtools/build/lib/analysis/PlatformSemantics.java
index 45c967e551..bd3e89f97b 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/PlatformSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/PlatformSemantics.java
@@ -15,65 +15,19 @@
package com.google.devtools.build.lib.analysis;
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.common.collect.ImmutableList;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
-import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.packages.Attribute;
-import com.google.devtools.build.lib.packages.AttributeMap;
-import com.google.devtools.build.lib.packages.Rule;
import com.google.devtools.build.lib.packages.RuleClass;
-import java.util.List;
-import javax.annotation.Nullable;
/** Helper class to manage rules' use of platforms. */
public class PlatformSemantics {
- public static final String TARGET_PLATFORMS_ATTR = ":target_platforms";
- public static final String EXECUTION_PLATFORM_ATTR = ":execution_platform";
public static final String TOOLCHAINS_ATTR = "$toolchains";
- /** Implementation for the :target_platform attribute. */
- public static final Attribute.LateBoundLabelList<BuildConfiguration> TARGET_PLATFORM =
- new Attribute.LateBoundLabelList<BuildConfiguration>(PlatformConfiguration.class) {
- @Override
- public List<Label> resolve(
- Rule rule, AttributeMap attributes, BuildConfiguration configuration) {
- // rule may be null for tests
- if (rule == null || rule.getRuleClassObject().getRequiredToolchains().isEmpty()) {
- return ImmutableList.of();
- }
- return configuration.getFragment(PlatformConfiguration.class).getTargetPlatforms();
- }
- };
-
- /** Implementation for the :execution_platform attribute. */
- @Nullable
- public static final Attribute.LateBoundLabel<BuildConfiguration> EXECUTION_PLATFORM =
- new Attribute.LateBoundLabel<BuildConfiguration>(PlatformConfiguration.class) {
- @Override
- public Label resolve(Rule rule, AttributeMap attributes, BuildConfiguration configuration) {
- // rule may be null for tests
- if (rule == null || rule.getRuleClassObject().getRequiredToolchains().isEmpty()) {
- return null;
- }
- return configuration.getFragment(PlatformConfiguration.class).getExecutionPlatform();
- }
- };
-
public static RuleClass.Builder platformAttributes(RuleClass.Builder builder) {
return builder
.add(
- attr(TARGET_PLATFORMS_ATTR, LABEL_LIST)
- .value(TARGET_PLATFORM)
- .nonconfigurable("Used in toolchain resolution"))
- .add(
- attr(EXECUTION_PLATFORM_ATTR, LABEL)
- .value(EXECUTION_PLATFORM)
- .nonconfigurable("Used in toolchain resolution"))
- .add(
attr(TOOLCHAINS_ATTR, LABEL_LIST)
.nonconfigurable("Used in toolchain resolution")
.value(ImmutableList.of()));
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
index 5d9e7b0d9d..922d542d35 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
@@ -383,7 +383,7 @@ public class BazelRuleClassProvider {
@Override
public ImmutableList<RuleSet> requires() {
- return ImmutableList.of(CoreRules.INSTANCE);
+ return ImmutableList.of(CoreRules.INSTANCE, PLATFORM_RULES);
}
};
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java
index af897ee941..5d63a33650 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java
@@ -39,6 +39,7 @@ import static com.google.devtools.build.lib.syntax.Type.STRING_LIST;
import com.google.common.base.Predicates;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
+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.config.BuildConfiguration;
@@ -140,6 +141,7 @@ public class BazelCppRuleClasses {
attr(CcToolchain.CC_TOOLCHAIN_DEFAULT_ATTRIBUTE_NAME, LABEL)
.value(CppRuleClasses.ccToolchainAttribute(env)))
.setPreferredDependencyPredicate(Predicates.<String>or(CPP_SOURCE, C_SOURCE, CPP_HEADER))
+ .requiresConfigurationFragments(PlatformConfiguration.class)
.addRequiredToolchains(CppHelper.getCcToolchainType(env.getToolsRepository()))
.build();
}