diff options
author | lpino <lpino@google.com> | 2018-02-09 08:09:30 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-02-09 08:10:50 -0800 |
commit | 16614bb50672da08cb9222f6470fb75848838208 (patch) | |
tree | e23403b601fa0f43f821638b88e5facb9dd24102 /src/main | |
parent | 08d025fef5c5864a053e589f6b7f0672bdcc480e (diff) |
Move BazelRuleClassProvider.TOOLCHAIN_RULES to its own class.
PiperOrigin-RevId: 185143078
Diffstat (limited to 'src/main')
3 files changed, 45 insertions, 24 deletions
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 ac13fd91c5..76ccfbf93e 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 @@ -22,7 +22,6 @@ import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider; import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.Builder; import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.RuleSet; import com.google.devtools.build.lib.analysis.config.BuildConfiguration; -import com.google.devtools.build.lib.bazel.rules.BazelToolchainType.BazelToolchainTypeRule; import com.google.devtools.build.lib.bazel.rules.android.AndroidNdkRepositoryRule; import com.google.devtools.build.lib.bazel.rules.android.AndroidSdkRepositoryRule; import com.google.devtools.build.lib.bazel.rules.android.BazelAarImportRule; @@ -32,7 +31,6 @@ import com.google.devtools.build.lib.bazel.rules.android.BazelAndroidLocalTestRu import com.google.devtools.build.lib.bazel.rules.android.BazelAndroidSemantics; import com.google.devtools.build.lib.bazel.rules.cpp.BazelCppSemantics; import com.google.devtools.build.lib.bazel.rules.cpp.proto.BazelCcProtoAspect; -import com.google.devtools.build.lib.bazel.rules.genrule.BazelGenRuleRule; import com.google.devtools.build.lib.bazel.rules.java.proto.BazelJavaLiteProtoAspect; import com.google.devtools.build.lib.bazel.rules.java.proto.BazelJavaLiteProtoLibraryRule; import com.google.devtools.build.lib.bazel.rules.java.proto.BazelJavaProtoAspect; @@ -75,7 +73,6 @@ import com.google.devtools.build.lib.rules.core.CoreRules; import com.google.devtools.build.lib.rules.cpp.proto.CcProtoAspect; import com.google.devtools.build.lib.rules.cpp.proto.CcProtoLibraryRule; import com.google.devtools.build.lib.rules.cpp.transitions.LipoDataTransitionRuleSet; -import com.google.devtools.build.lib.rules.genrule.GenRuleBaseRule; import com.google.devtools.build.lib.rules.java.JavaSemantics; import com.google.devtools.build.lib.rules.platform.PlatformRules; import com.google.devtools.build.lib.rules.proto.BazelProtoLibraryRule; @@ -107,21 +104,6 @@ public class BazelRuleClassProvider { } } - public static final RuleSet TOOLCHAIN_RULES = - new RuleSet() { - @Override - public void init(Builder builder) { - builder.addRuleDefinition(new BazelToolchainTypeRule()); - builder.addRuleDefinition(new GenRuleBaseRule()); - builder.addRuleDefinition(new BazelGenRuleRule()); - } - - @Override - public ImmutableList<RuleSet> requires() { - return ImmutableList.of(); - } - }; - public static final RuleSet BAZEL_SETUP = new RuleSet() { @Override @@ -326,5 +308,5 @@ public class BazelRuleClassProvider { VARIOUS_WORKSPACE_RULES, // This rule set is a little special: it needs to depend on every configuration fragment // that has Make variables, so we put it last. - TOOLCHAIN_RULES); + ToolchainRules.INSTANCE); } diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelToolchainType.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelToolchainType.java index eaa3ada8bd..53286db626 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelToolchainType.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelToolchainType.java @@ -22,7 +22,6 @@ import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.rules.ToolchainType; -import com.google.devtools.build.lib.rules.android.AndroidConfiguration; import com.google.devtools.build.lib.rules.cpp.CppConfiguration; import com.google.devtools.build.lib.rules.java.JavaConfiguration; @@ -41,8 +40,7 @@ public class BazelToolchainType extends ToolchainType { return builder // This means that *every* toolchain_type rule depends on every configuration fragment // that contributes Make variables, regardless of which one it is. - .requiresConfigurationFragments( - CppConfiguration.class, JavaConfiguration.class, AndroidConfiguration.class) + .requiresConfigurationFragments(CppConfiguration.class, JavaConfiguration.class) .removeAttribute("licenses") .removeAttribute("distribs") .build(); @@ -65,8 +63,6 @@ public class BazelToolchainType extends ToolchainType { CppConfiguration.class) .put(Label.parseAbsoluteUnchecked("@bazel_tools//tools/jdk:toolchain_type"), JavaConfiguration.class) - .put(Label.parseAbsoluteUnchecked("@bazel_tools//tools/android:toolchain_type"), - AndroidConfiguration.class) .build(), ImmutableMap.<Label, ImmutableMap<String, String>>of()); } diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/ToolchainRules.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/ToolchainRules.java new file mode 100644 index 0000000000..98a23777b9 --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/ToolchainRules.java @@ -0,0 +1,43 @@ +// Copyright 2018 The Bazel Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +package com.google.devtools.build.lib.bazel.rules; + +import com.google.common.collect.ImmutableList; +import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.Builder; +import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.RuleSet; +import com.google.devtools.build.lib.bazel.rules.BazelToolchainType.BazelToolchainTypeRule; +import com.google.devtools.build.lib.bazel.rules.genrule.BazelGenRuleRule; +import com.google.devtools.build.lib.rules.core.CoreRules; +import com.google.devtools.build.lib.rules.genrule.GenRuleBaseRule; + +/** Rules for toolchain support in Bazel. */ +public class ToolchainRules implements RuleSet { + public static final ToolchainRules INSTANCE = new ToolchainRules(); + + private ToolchainRules() { + // Use the static INSTANCE field instead. + } + + @Override + public void init(Builder builder) { + builder.addRuleDefinition(new BazelToolchainTypeRule()); + builder.addRuleDefinition(new GenRuleBaseRule()); + builder.addRuleDefinition(new BazelGenRuleRule()); + } + + @Override + public ImmutableList<RuleSet> requires() { + return ImmutableList.of(CoreRules.INSTANCE, CcRules.INSTANCE, JavaRules.INSTANCE); + } +} |