aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar lpino <lpino@google.com>2018-01-31 07:58:38 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-01-31 08:00:33 -0800
commita5d00d6db98a09b0a644db77301d9b6ed4f2a2ff (patch)
tree254a7100bfbb69b43edb2b5eef45bc9bf39e3fa0 /src
parenta88f0613d1403b34a9ac27fbaf840d4438254e89 (diff)
Move BazelRuleClassProvider.LIPO_DATA_TRANSITION to its own class.
PiperOrigin-RevId: 183990860
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java23
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/LipoDataTransitionRuleSet.java37
-rw-r--r--src/test/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProviderTest.java3
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java3
4 files changed, 45 insertions, 21 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 b9ab60e078..a433568445 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
@@ -115,7 +115,7 @@ import com.google.devtools.build.lib.rules.cpp.CppOptions;
import com.google.devtools.build.lib.rules.cpp.CpuTransformer;
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.DisableLipoTransition;
+import com.google.devtools.build.lib.rules.cpp.transitions.LipoDataTransitionRuleSet;
import com.google.devtools.build.lib.rules.extra.ActionListenerRule;
import com.google.devtools.build.lib.rules.extra.ExtraActionRule;
import com.google.devtools.build.lib.rules.genquery.GenQueryRule;
@@ -326,23 +326,6 @@ public class BazelRuleClassProvider {
}
};
- /**
- * Rules defined before this set will fail when trying to declare a data transition. So it's best
- * to define this as early as possible.
- */
- public static final RuleSet LIPO_DATA_TRANSITION =
- new RuleSet() {
- @Override
- public void init(Builder builder) {
- builder.setLipoDataTransition(DisableLipoTransition.INSTANCE);
- }
-
- @Override
- public ImmutableList<RuleSet> requires() {
- return ImmutableList.of();
- }
- };
-
public static final RuleSet CPP_RULES =
new RuleSet() {
@Override
@@ -639,7 +622,9 @@ public class BazelRuleClassProvider {
private static final ImmutableSet<RuleSet> RULE_SETS =
ImmutableSet.of(
- LIPO_DATA_TRANSITION,
+ // Rules defined before LipoDataTransitionRuleSet will fail when trying to declare a data
+ // transition.
+ LipoDataTransitionRuleSet.INSTANCE,
BAZEL_SETUP,
CoreRules.INSTANCE,
CoreWorkspaceRules.INSTANCE,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/LipoDataTransitionRuleSet.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/LipoDataTransitionRuleSet.java
new file mode 100644
index 0000000000..30b17dce3d
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/transitions/LipoDataTransitionRuleSet.java
@@ -0,0 +1,37 @@
+// 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.rules.cpp.transitions;
+
+import com.google.common.collect.ImmutableList;
+import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.Builder;
+import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.RuleSet;
+
+/** Rule set to deal with LIPO data transitions */
+public final class LipoDataTransitionRuleSet implements RuleSet {
+ public static final LipoDataTransitionRuleSet INSTANCE = new LipoDataTransitionRuleSet();
+
+ private LipoDataTransitionRuleSet() {
+ // Use the static INSTANCE field instead.
+ }
+
+ @Override
+ public void init(Builder builder) {
+ builder.setLipoDataTransition(DisableLipoTransition.INSTANCE);
+ }
+
+ @Override
+ public ImmutableList<RuleSet> requires() {
+ return ImmutableList.of();
+ }
+}
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProviderTest.java b/src/test/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProviderTest.java
index 0eaae6864b..ba69b6d721 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProviderTest.java
+++ b/src/test/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProviderTest.java
@@ -25,6 +25,7 @@ import com.google.devtools.build.lib.analysis.config.FragmentOptions;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.rules.config.ConfigRules;
import com.google.devtools.build.lib.rules.core.CoreRules;
+import com.google.devtools.build.lib.rules.cpp.transitions.LipoDataTransitionRuleSet;
import com.google.devtools.build.lib.rules.repository.CoreWorkspaceRules;
import java.util.HashSet;
import java.util.List;
@@ -64,7 +65,7 @@ public class BazelRuleClassProviderTest {
ConfiguredRuleClassProvider.Builder builder = new ConfiguredRuleClassProvider.Builder();
builder.setToolsRepository(BazelRuleClassProvider.TOOLS_REPOSITORY);
Set<RuleSet> result = new HashSet<>();
- result.add(BazelRuleClassProvider.LIPO_DATA_TRANSITION);
+ result.add(LipoDataTransitionRuleSet.INSTANCE);
result.add(BazelRuleClassProvider.BAZEL_SETUP);
collectTransitiveClosure(result, top);
for (RuleSet module : result) {
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
index 9bf85024a4..68edd89798 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
@@ -38,6 +38,7 @@ import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.rules.ToolchainType;
import com.google.devtools.build.lib.rules.core.CoreRules;
+import com.google.devtools.build.lib.rules.cpp.transitions.LipoDataTransitionRuleSet;
import com.google.devtools.build.lib.rules.repository.CoreWorkspaceRules;
import com.google.devtools.build.lib.util.FileType;
import com.google.devtools.build.lib.util.OsUtils;
@@ -968,7 +969,7 @@ public class CcCommonTest extends BuildViewTestCase {
public ConfiguredRuleClassProvider createRuleClassProvider() {
ConfiguredRuleClassProvider.Builder builder = new ConfiguredRuleClassProvider.Builder();
builder.setToolsRepository("@bazel_tools");
- BazelRuleClassProvider.LIPO_DATA_TRANSITION.init(builder);
+ LipoDataTransitionRuleSet.INSTANCE.init(builder);
BazelRuleClassProvider.BAZEL_SETUP.init(builder);
CoreRules.INSTANCE.init(builder);
CoreWorkspaceRules.INSTANCE.init(builder);