aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar lpino <lpino@google.com>2017-12-06 06:03:03 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-06 06:06:29 -0800
commit21aa1024c5f5302d998457b1538c864c233bf460 (patch)
tree955e80c7766992fd28bb9d728e8cb88cc1942c9b
parent31320246a1d428c0b56f78b98013961c68ed322d (diff)
Move BazelRuleClassProvider.CORE_WORKSPACE_RULES to its own class in the rules/repository package.
PiperOrigin-RevId: 178087895
-rw-r--r--src/main/java/com/google/devtools/build/lib/BUILD19
-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/repository/CoreWorkspaceRules.java42
-rw-r--r--src/test/java/com/google/devtools/build/lib/BUILD1
-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/BUILD1
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java3
7 files changed, 70 insertions, 22 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD
index 310f57f849..6698ed08ba 100644
--- a/src/main/java/com/google/devtools/build/lib/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/BUILD
@@ -428,6 +428,7 @@ java_library(
"analysis/BuildInfo.java",
"analysis/TransitiveInfoProvider.java",
"analysis/config/BuildConfigurationOptionDetails.java",
+ "rules/repository/CoreWorkspaceRules.java",
],
) + [
"runtime/BlazeServerStartupOptions.java",
@@ -505,6 +506,7 @@ java_library(
"//src/main/java/com/google/devtools/build/lib:build-base",
"//src/main/java/com/google/devtools/build/lib:build-info",
"//src/main/java/com/google/devtools/build/lib:core-rules",
+ "//src/main/java/com/google/devtools/build/lib:core-workspace-rules",
"//src/main/java/com/google/devtools/build/lib:events",
"//src/main/java/com/google/devtools/build/lib:java-compilation",
"//src/main/java/com/google/devtools/build/lib:java-rules",
@@ -890,6 +892,23 @@ java_library(
],
)
+# TODO(bazel-team): Include in the srcs the implementations of the rules inside
+# CoreWorkspaceRules.java once they can be extracted from the "build-base" target. They can't be
+# extracted currently because of non-trivial inter-package dependencies.
+java_library(
+ name = "core-workspace-rules",
+ srcs = [
+ "rules/repository/CoreWorkspaceRules.java",
+ ],
+ deps = [
+ "//src/main/java/com/google/devtools/build/lib:build-base",
+ "//src/main/java/com/google/devtools/build/lib:core-rules",
+ "//src/main/java/com/google/devtools/build/lib:packages-internal",
+ "//src/main/java/com/google/devtools/build/lib:util",
+ "//third_party:guava",
+ ],
+)
+
java_library(
name = "android-rules",
srcs = glob(
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 1c06b21f6c..0cad20cd0f 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
@@ -163,10 +163,8 @@ import com.google.devtools.build.lib.rules.proto.ProtoConfiguration;
import com.google.devtools.build.lib.rules.proto.ProtoLangToolchainRule;
import com.google.devtools.build.lib.rules.python.PythonConfigurationLoader;
import com.google.devtools.build.lib.rules.python.PythonOptions;
-import com.google.devtools.build.lib.rules.repository.BindRule;
-import com.google.devtools.build.lib.rules.repository.LocalRepositoryRule;
+import com.google.devtools.build.lib.rules.repository.CoreWorkspaceRules;
import com.google.devtools.build.lib.rules.repository.NewLocalRepositoryRule;
-import com.google.devtools.build.lib.rules.repository.WorkspaceBaseRule;
import com.google.devtools.build.lib.rules.test.SkylarkTestingModule;
import com.google.devtools.build.lib.rules.test.TestSuiteRule;
import com.google.devtools.build.lib.util.ResourceFileLoader;
@@ -279,21 +277,6 @@ public class BazelRuleClassProvider {
}
};
- public static final RuleSet CORE_WORKSPACE_RULES =
- new RuleSet() {
- @Override
- public void init(Builder builder) {
- builder.addRuleDefinition(new BindRule());
- builder.addRuleDefinition(new WorkspaceBaseRule());
- builder.addRuleDefinition(new LocalRepositoryRule());
- }
-
- @Override
- public ImmutableList<RuleSet> requires() {
- return ImmutableList.of(CoreRules.INSTANCE);
- }
- };
-
public static final RuleSet PROTO_RULES =
new RuleSet() {
@Override
@@ -628,7 +611,7 @@ public class BazelRuleClassProvider {
@Override
public ImmutableList<RuleSet> requires() {
- return ImmutableList.of(CoreRules.INSTANCE, CORE_WORKSPACE_RULES);
+ return ImmutableList.of(CoreRules.INSTANCE, CoreWorkspaceRules.INSTANCE);
}
};
@@ -636,7 +619,7 @@ public class BazelRuleClassProvider {
ImmutableSet.of(
BAZEL_SETUP,
CoreRules.INSTANCE,
- CORE_WORKSPACE_RULES,
+ CoreWorkspaceRules.INSTANCE,
GENERIC_RULES,
ConfigRules.INSTANCE,
PLATFORM_RULES,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/CoreWorkspaceRules.java b/src/main/java/com/google/devtools/build/lib/rules/repository/CoreWorkspaceRules.java
new file mode 100644
index 0000000000..386c64a52c
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/rules/repository/CoreWorkspaceRules.java
@@ -0,0 +1,42 @@
+// Copyright 2017 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.repository;
+
+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.rules.core.CoreRules;
+
+/**
+ * Basic rules for WORKSPACE files.
+ */
+public final class CoreWorkspaceRules implements RuleSet {
+ public static final CoreWorkspaceRules INSTANCE = new CoreWorkspaceRules();
+
+ private CoreWorkspaceRules() {
+ // Use the static INSTANCE field instead.
+ }
+
+ @Override
+ public void init(Builder builder) {
+ builder.addRuleDefinition(new BindRule());
+ builder.addRuleDefinition(new WorkspaceBaseRule());
+ builder.addRuleDefinition(new LocalRepositoryRule());
+ }
+
+ @Override
+ public ImmutableList<RuleSet> requires() {
+ return ImmutableList.of(CoreRules.INSTANCE);
+ }
+}
diff --git a/src/test/java/com/google/devtools/build/lib/BUILD b/src/test/java/com/google/devtools/build/lib/BUILD
index 69bfcc5360..a34ea88256 100644
--- a/src/test/java/com/google/devtools/build/lib/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/BUILD
@@ -1002,6 +1002,7 @@ java_test(
"//src/main/java/com/google/devtools/build/lib:bazel-rules",
"//src/main/java/com/google/devtools/build/lib:build-base",
"//src/main/java/com/google/devtools/build/lib:core-rules",
+ "//src/main/java/com/google/devtools/build/lib:core-workspace-rules",
"//src/main/java/com/google/devtools/build/lib:events",
"//src/main/java/com/google/devtools/build/lib:java-compilation",
"//src/main/java/com/google/devtools/build/lib:packages-internal",
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 21135f8391..39bccbdf18 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.repository.CoreWorkspaceRules;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -88,7 +89,7 @@ public class BazelRuleClassProviderTest {
@Test
public void coreWorkspaceConsistency() {
- checkModule(BazelRuleClassProvider.CORE_WORKSPACE_RULES);
+ checkModule(CoreWorkspaceRules.INSTANCE);
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/BUILD b/src/test/java/com/google/devtools/build/lib/rules/cpp/BUILD
index 891afc7ee7..de5276dc7f 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/BUILD
@@ -20,6 +20,7 @@ java_test(
"//src/main/java/com/google/devtools/build/lib:bazel-rules",
"//src/main/java/com/google/devtools/build/lib:build-base",
"//src/main/java/com/google/devtools/build/lib:core-rules",
+ "//src/main/java/com/google/devtools/build/lib:core-workspace-rules",
"//src/main/java/com/google/devtools/build/lib:io",
"//src/main/java/com/google/devtools/build/lib:packages-internal",
"//src/main/java/com/google/devtools/build/lib:util",
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 a8f9848d60..c676f67093 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.repository.CoreWorkspaceRules;
import com.google.devtools.build.lib.util.FileType;
import com.google.devtools.build.lib.util.OsUtils;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
@@ -968,7 +969,7 @@ public class CcCommonTest extends BuildViewTestCase {
builder.setToolsRepository("@bazel_tools");
BazelRuleClassProvider.BAZEL_SETUP.init(builder);
CoreRules.INSTANCE.init(builder);
- BazelRuleClassProvider.CORE_WORKSPACE_RULES.init(builder);
+ CoreWorkspaceRules.INSTANCE.init(builder);
BazelRuleClassProvider.PLATFORM_RULES.init(builder);
BazelRuleClassProvider.GENERIC_RULES.init(builder);
BazelRuleClassProvider.CPP_RULES.init(builder);