aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/packages
diff options
context:
space:
mode:
authorGravatar dannark <dannark@google.com>2018-06-12 09:28:45 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-12 09:30:48 -0700
commitf4b9ff40b8f1612571cc711560177af240d034d0 (patch)
tree2b2bf5415d7b4a0ab5db78d916cebfec0775f810 /src/main/java/com/google/devtools/build/lib/packages
parent1b94e64ee8a1d385e92a8d9f4c9a06e2d99c82bf (diff)
Remap repository names inside load statements in BUILD files if the repository name is remapped.
For example if main/WORKSPACE contains: local_repository( name = "a", path = "../a", repo_mapping = {"@x" : "@y"}, ) a/BUILD load("@x//:sample.bzl", "sample") Then the load in a/BUILD will be resolved as "@y//:sample.bzl" RELNOTES: None PiperOrigin-RevId: 200227431
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/packages')
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
index d9da36f945..108a0cf426 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
@@ -1246,12 +1246,17 @@ public final class PackageFactory {
// Run the lexer and parser with a local reporter, so that errors from other threads do not
// show up below.
BuildFileAST buildFileAST =
- parseBuildFile(packageId, input, preludeStatements, localReporterForParsing);
+ parseBuildFile(
+ packageId,
+ input,
+ preludeStatements,
+ /* repositoryMapping= */ ImmutableMap.of(),
+ localReporterForParsing);
AstParseResult astParseResult =
new AstParseResult(buildFileAST, localReporterForParsing);
return createPackageFromAst(
workspaceName,
- /*repositoryMapping=*/ ImmutableMap.of(),
+ /* repositoryMapping= */ ImmutableMap.of(),
packageId,
buildFile,
astParseResult,
@@ -1266,10 +1271,12 @@ public final class PackageFactory {
PackageIdentifier packageId,
ParserInputSource in,
List<Statement> preludeStatements,
+ ImmutableMap<RepositoryName, RepositoryName> repositoryMapping,
ExtendedEventHandler eventHandler) {
// Logged messages are used as a testability hook tracing the parsing progress
logger.fine("Starting to parse " + packageId);
- BuildFileAST buildFileAST = BuildFileAST.parseBuildFile(in, preludeStatements, eventHandler);
+ BuildFileAST buildFileAST =
+ BuildFileAST.parseBuildFile(in, preludeStatements, repositoryMapping, eventHandler);
logger.fine("Finished parsing of " + packageId);
return buildFileAST;
}
@@ -1373,10 +1380,10 @@ public final class PackageFactory {
packageId,
buildFile,
input,
- /*preludeStatements=*/ ImmutableList.<Statement>of(),
- /*imports=*/ ImmutableMap.<String, Extension>of(),
- /*skylarkFileDependencies=*/ ImmutableList.<Label>of(),
- /*defaultVisibility=*/ ConstantRuleVisibility.PUBLIC,
+ /* preludeStatements= */ ImmutableList.<Statement>of(),
+ /* imports= */ ImmutableMap.<String, Extension>of(),
+ /* skylarkFileDependencies= */ ImmutableList.<Label>of(),
+ /* defaultVisibility= */ ConstantRuleVisibility.PUBLIC,
semantics,
globber)
.build();