diff options
author | 2016-10-18 07:52:10 +0000 | |
---|---|---|
committer | 2016-10-18 10:58:44 +0000 | |
commit | 721785a9d898f9c0920391c9be2be2bf62763572 (patch) | |
tree | 1265ae08aabd2edec4d96f809743dec8b491b5e5 /src | |
parent | bbcfa2f3d0c77c7f1d8f84dceffd93cdc6d37922 (diff) |
Split up rule sets into smaller chunks.
Move the Bazel-specific setup into a separate RuleSet and don't explicitly
depend on that - instead, implicitly call it's init() whenever we need a
valid RCP.
--
MOS_MIGRATED_REVID=136444074
Diffstat (limited to 'src')
3 files changed, 72 insertions, 22 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 76e443eb0a..6c9548225d 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 @@ -239,7 +239,10 @@ public class BazelRuleClassProvider { } public static void setup(ConfiguredRuleClassProvider.Builder builder) { - MINIMAL_RULES.init(builder); + BAZEL_SETUP.init(builder); + CORE_RULES.init(builder); + CORE_WORKSPACE_RULES.init(builder); + BASIC_RULES.init(builder); PROTO_RULES.init(builder); SH_RULES.init(builder); CPP_RULES.init(builder); @@ -253,7 +256,7 @@ public class BazelRuleClassProvider { VARIOUS_WORKSPACE_RULES.init(builder); } - public static final RuleModule MINIMAL_RULES = + public static final RuleModule BAZEL_SETUP = new RuleModule() { @Override public void init(Builder builder) { @@ -264,15 +267,37 @@ public class BazelRuleClassProvider { .setPrerequisiteValidator(new BazelPrerequisiteValidator()); builder.setUniversalConfigurationFragment(BazelConfiguration.class); - builder.addConfigurationOptions(BuildConfiguration.Options.class); builder.addConfigurationFragment(new BazelConfiguration.Loader()); + builder.addConfigurationOptions(BuildConfiguration.Options.class); + } + + @Override + public ImmutableList<RuleModule> requires() { + return ImmutableList.of(); + } + }; + public static final RuleModule CORE_RULES = + new RuleModule() { + @Override + public void init(Builder builder) { builder.addRuleDefinition(new BaseRuleClasses.BaseRule()); builder.addRuleDefinition(new BaseRuleClasses.RuleBase()); builder.addRuleDefinition(new BaseRuleClasses.BinaryBaseRule()); builder.addRuleDefinition(new BaseRuleClasses.TestBaseRule()); builder.addRuleDefinition(new BaseRuleClasses.ErrorRule()); + } + + @Override + public ImmutableList<RuleModule> requires() { + return ImmutableList.of(); + } + }; + public static final RuleModule BASIC_RULES = + new RuleModule() { + @Override + public void init(Builder builder) { builder.addRuleDefinition(new EnvironmentRule()); builder.addRuleDefinition(new ConfigRuleClasses.ConfigBaseRule()); @@ -284,10 +309,6 @@ public class BazelRuleClassProvider { builder.addRuleDefinition(new BazelGenRuleRule()); builder.addRuleDefinition(new GenQueryRule()); - builder.addRuleDefinition(new BindRule()); - builder.addRuleDefinition(new WorkspaceBaseRule()); - builder.addRuleDefinition(new LocalRepositoryRule()); - try { builder.addWorkspaceFilePrefix( ResourceFileLoader.loadResource(BazelRuleClassProvider.class, "tools.WORKSPACE")); @@ -298,7 +319,22 @@ public class BazelRuleClassProvider { @Override public ImmutableList<RuleModule> requires() { - return ImmutableList.of(); + return ImmutableList.of(CORE_RULES); + } + }; + + public static final RuleModule CORE_WORKSPACE_RULES = + new RuleModule() { + @Override + public void init(Builder builder) { + builder.addRuleDefinition(new BindRule()); + builder.addRuleDefinition(new WorkspaceBaseRule()); + builder.addRuleDefinition(new LocalRepositoryRule()); + } + + @Override + public ImmutableList<RuleModule> requires() { + return ImmutableList.of(CORE_RULES); } }; @@ -313,7 +349,7 @@ public class BazelRuleClassProvider { @Override public ImmutableList<RuleModule> requires() { - return ImmutableList.of(MINIMAL_RULES); + return ImmutableList.of(CORE_RULES); } }; @@ -329,7 +365,7 @@ public class BazelRuleClassProvider { @Override public ImmutableList<RuleModule> requires() { - return ImmutableList.of(MINIMAL_RULES); + return ImmutableList.of(CORE_RULES); } }; @@ -359,7 +395,7 @@ public class BazelRuleClassProvider { @Override public ImmutableList<RuleModule> requires() { - return ImmutableList.of(MINIMAL_RULES); + return ImmutableList.of(CORE_RULES); } }; @@ -399,7 +435,7 @@ public class BazelRuleClassProvider { @Override public ImmutableList<RuleModule> requires() { - return ImmutableList.of(MINIMAL_RULES, CPP_RULES); + return ImmutableList.of(CORE_RULES, CPP_RULES); } }; @@ -417,7 +453,7 @@ public class BazelRuleClassProvider { @Override public ImmutableList<RuleModule> requires() { - return ImmutableList.of(MINIMAL_RULES, JAVA_RULES); + return ImmutableList.of(CORE_RULES, JAVA_RULES); } }; @@ -463,7 +499,7 @@ public class BazelRuleClassProvider { @Override public ImmutableList<RuleModule> requires() { - return ImmutableList.of(MINIMAL_RULES, CPP_RULES, JAVA_RULES); + return ImmutableList.of(CORE_RULES, CPP_RULES, JAVA_RULES); } }; @@ -484,7 +520,7 @@ public class BazelRuleClassProvider { @Override public ImmutableList<RuleModule> requires() { - return ImmutableList.of(MINIMAL_RULES, CPP_RULES); + return ImmutableList.of(CORE_RULES, CPP_RULES); } }; @@ -559,7 +595,7 @@ public class BazelRuleClassProvider { @Override public ImmutableList<RuleModule> requires() { - return ImmutableList.of(MINIMAL_RULES, CPP_RULES); + return ImmutableList.of(CORE_RULES, CPP_RULES); } }; @@ -588,7 +624,7 @@ public class BazelRuleClassProvider { @Override public ImmutableList<RuleModule> requires() { - return ImmutableList.of(MINIMAL_RULES, CPP_RULES, JAVA_RULES, OBJC_RULES); + return ImmutableList.of(CORE_RULES, CPP_RULES, JAVA_RULES, OBJC_RULES); } }; @@ -604,7 +640,7 @@ public class BazelRuleClassProvider { @Override public ImmutableList<RuleModule> requires() { - return ImmutableList.of(MINIMAL_RULES); + return ImmutableList.of(CORE_RULES); } }; @@ -628,7 +664,7 @@ public class BazelRuleClassProvider { @Override public ImmutableList<RuleModule> requires() { - return ImmutableList.of(MINIMAL_RULES); + return ImmutableList.of(CORE_RULES, CORE_WORKSPACE_RULES); } }; } 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 ee075d63a7..9b5345a3d8 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 @@ -61,6 +61,7 @@ public class BazelRuleClassProviderTest { ConfiguredRuleClassProvider.Builder builder = new ConfiguredRuleClassProvider.Builder(); builder.setToolsRepository(BazelRuleClassProvider.TOOLS_REPOSITORY); Set<RuleModule> result = new HashSet<>(); + result.add(BazelRuleClassProvider.BAZEL_SETUP); collectTransitiveClosure(result, top); for (RuleModule module : result) { module.init(builder); @@ -79,8 +80,18 @@ public class BazelRuleClassProviderTest { } @Test - public void minimalConsistency() { - checkModule(BazelRuleClassProvider.MINIMAL_RULES); + public void coreConsistency() { + checkModule(BazelRuleClassProvider.CORE_RULES); + } + + @Test + public void coreWorkspaceConsistency() { + checkModule(BazelRuleClassProvider.CORE_WORKSPACE_RULES); + } + + @Test + public void basicConsistency() { + checkModule(BazelRuleClassProvider.BASIC_RULES); } @Test 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 cf6de2c6c1..cf29915a7d 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 @@ -830,7 +830,10 @@ public class CcCommonTest extends BuildViewTestCase { public ConfiguredRuleClassProvider createRuleClassProvider() { ConfiguredRuleClassProvider.Builder builder = new ConfiguredRuleClassProvider.Builder(); builder.setToolsRepository("@bazel_tools"); - BazelRuleClassProvider.MINIMAL_RULES.init(builder); + BazelRuleClassProvider.BAZEL_SETUP.init(builder); + BazelRuleClassProvider.CORE_RULES.init(builder); + BazelRuleClassProvider.CORE_WORKSPACE_RULES.init(builder); + BazelRuleClassProvider.BASIC_RULES.init(builder); BazelRuleClassProvider.CPP_RULES.init(builder); return builder.build(); } |