diff options
author | 2017-07-05 14:28:12 -0400 | |
---|---|---|
committer | 2017-07-06 07:13:29 -0400 | |
commit | a15d648410000cedbde9578c9ee22a023f1b96df (patch) | |
tree | 539f31141da2fab31c0c94b8368531d700f5f0ad /src/main/java/com/google/devtools/build | |
parent | 2db52703129b010bb864d7ee4180c7c598239f69 (diff) |
Fix LocalRepositoryLookupFunction to normalize paths so they are compared properly.
Part of #2811.
Change-Id: I15da53d1f6ec7f4a41f5d14fdd9dafd5ad82f9fc
PiperOrigin-RevId: 160982624
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java index 732620342d..3c0382e600 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java @@ -29,6 +29,7 @@ import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.rules.repository.LocalRepositoryRule; import com.google.devtools.build.lib.skyframe.PackageFunction.PackageFunctionException; import com.google.devtools.build.lib.syntax.Type; +import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.vfs.RootedPath; import com.google.devtools.build.skyframe.SkyFunction; @@ -208,8 +209,10 @@ public class LocalRepositoryLookupFunction implements SkyFunction { @Override public boolean apply(@Nullable Rule rule) { AggregatingAttributeMapper mapper = AggregatingAttributeMapper.of(rule); - PathFragment pathAttr = PathFragment.create(mapper.get("path", Type.STRING)); - return directory.getRelativePath().equals(pathAttr); + // Construct the path. If not absolute, it will be relative to the workspace. + Path localPath = + workspacePath.getRoot().getRelative(mapper.get("path", Type.STRING)); + return directory.asPath().equals(localPath); } }, null); |