diff options
author | lpino <lpino@google.com> | 2017-12-06 06:03:03 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2017-12-06 06:06:29 -0800 |
commit | 21aa1024c5f5302d998457b1538c864c233bf460 (patch) | |
tree | 955e80c7766992fd28bb9d728e8cb88cc1942c9b | |
parent | 31320246a1d428c0b56f78b98013961c68ed322d (diff) |
Move BazelRuleClassProvider.CORE_WORKSPACE_RULES to its own class in the rules/repository package.
PiperOrigin-RevId: 178087895
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); |