diff options
author | 2015-09-22 02:22:12 +0000 | |
---|---|---|
committer | 2015-09-22 17:06:48 +0000 | |
commit | 2a7c802823a0bc59d2cb010962e250ee145c620c (patch) | |
tree | f75a613a60e341c7eb0ecf6400cbb978b91456f8 /src/main/java/com/google/devtools/build/lib/analysis | |
parent | f0a5ac60547751b34b3c307a6a4e47f8c791a720 (diff) |
Roll back using labels rather than PathFragments for skylark loads.
RELNOTES:
--
MOS_MIGRATED_REVID=103606693
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java index b46fea748c..3b7ddd47e3 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java @@ -18,6 +18,7 @@ import static com.google.common.base.Preconditions.checkNotNull; import static com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType.ABSTRACT; import static com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType.TEST; +import com.google.common.base.Preconditions; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; @@ -80,7 +81,7 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { */ public static class Builder implements RuleDefinitionEnvironment { private final StringBuilder defaultWorkspaceFile = new StringBuilder(); - private Label preludeLabel; + private PathFragment preludePath; private String runfilesPrefix; private final List<ConfigurationFragmentFactory> configurationFragments = new ArrayList<>(); private final List<BuildInfoFactory> buildInfoFactories = new ArrayList<>(); @@ -104,14 +105,11 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { defaultWorkspaceFile.append(contents); } - public Builder setPrelude(String preludeLabelString) { - try { - this.preludeLabel = Label.parseAbsolute(preludeLabelString); - } catch (LabelSyntaxException e) { - String errorMsg = - String.format("Prelude label '%s' is not syntactically valid", preludeLabelString); - throw new IllegalArgumentException(errorMsg); - } + public Builder setPrelude(String workspaceRelativePath) { + PathFragment preludePathFragment = new PathFragment(workspaceRelativePath); + Preconditions.checkArgument(!preludePathFragment.isAbsolute()); + Preconditions.checkArgument(preludePathFragment.isNormalized()); + this.preludePath = preludePathFragment; return this; } @@ -228,7 +226,7 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { } return new ConfiguredRuleClassProvider( - preludeLabel, + preludePath, runfilesPrefix, ImmutableMap.copyOf(ruleClassMap), ImmutableMap.copyOf(ruleDefinitionMap), @@ -271,9 +269,9 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { String defaultWorkspaceFile; /** - * Label for the prelude file. + * Workspace-relative path to the prelude. */ - private final Label preludeLabel; + private final PathFragment preludePath; /** * The default runfiles prefix. @@ -317,7 +315,7 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { private final Environment.Frame globals; public ConfiguredRuleClassProvider( - Label preludeLabel, + PathFragment preludePath, String runfilesPrefix, ImmutableMap<String, RuleClass> ruleClassMap, ImmutableMap<String, Class<? extends RuleDefinition>> ruleDefinitionMap, @@ -329,7 +327,7 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { ConfigurationCollectionFactory configurationCollectionFactory, PrerequisiteValidator prerequisiteValidator, ImmutableMap<String, SkylarkType> skylarkAccessibleJavaClasses) { - this.preludeLabel = preludeLabel; + this.preludePath = preludePath; this.runfilesPrefix = runfilesPrefix; this.ruleClassMap = ruleClassMap; this.ruleDefinitionMap = ruleDefinitionMap; @@ -348,8 +346,8 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { } @Override - public Label getPreludeLabel() { - return preludeLabel; + public PathFragment getPreludePath() { + return preludePath; } @Override |