aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar lpino <lpino@google.com>2018-02-09 08:09:30 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-09 08:10:50 -0800
commit16614bb50672da08cb9222f6470fb75848838208 (patch)
treee23403b601fa0f43f821638b88e5facb9dd24102 /src/main
parent08d025fef5c5864a053e589f6b7f0672bdcc480e (diff)
Move BazelRuleClassProvider.TOOLCHAIN_RULES to its own class.
PiperOrigin-RevId: 185143078
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java20
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/BazelToolchainType.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/ToolchainRules.java43
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);
+ }
+}