aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Ulf Adams <ulfjack@google.com>2016-10-18 07:52:10 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2016-10-18 10:58:44 +0000
commit721785a9d898f9c0920391c9be2be2bf62763572 (patch)
tree1265ae08aabd2edec4d96f809743dec8b491b5e5 /src
parentbbcfa2f3d0c77c7f1d8f84dceffd93cdc6d37922 (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')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java74
-rw-r--r--src/test/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProviderTest.java15
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java5
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();
}