diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
8 files changed, 28 insertions, 16 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcIncLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcIncLibrary.java index a459e42ac1..ad05f41707 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcIncLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcIncLibrary.java @@ -93,7 +93,7 @@ public abstract class CcIncLibrary implements RuleConfiguredTargetFactory { .getRelative(packageFragment) .getRelative(includeDirectory); Path includeRoot = - configIncludeDirectory.getPath().getRelative(packageFragment).getRelative(includeDirectory); + configIncludeDirectory.getRoot().getRelative(packageFragment).getRelative(includeDirectory); // For every source artifact, we compute a virtual artifact that is below the include directory. // These are used for include checking. diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java index 8f2a0c63b5..7bede6cf39 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java @@ -64,6 +64,7 @@ import com.google.devtools.build.lib.util.ShellEscaper; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; +import com.google.devtools.build.lib.vfs.Root; import com.google.devtools.build.skyframe.SkyFunction; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; @@ -904,16 +905,16 @@ public class CppCompileAction extends AbstractAction } } // Still not found: see if it is in a subdir of a declared package. - Path root = input.getRoot().getPath(); + Root root = input.getRoot().getRoot(); for (Path dir = input.getPath().getParentDirectory();;) { if (dir.getRelative(BUILD_PATH_FRAGMENT).exists()) { return false; // Bad: this is a sub-package, not a subdir of a declared package. } dir = dir.getParentDirectory(); - if (dir.equals(root)) { + if (dir.equals(root.asPath())) { return false; // Bad: at the top, give up. } - if (declaredIncludeDirs.contains(dir.relativeTo(root))) { + if (declaredIncludeDirs.contains(root.relativize(dir))) { return true; // OK: found under a declared dir. } } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupport.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupport.java index 8edc2d9cc5..40d80302a4 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupport.java @@ -38,6 +38,7 @@ import com.google.devtools.build.lib.skyframe.PrecomputedValue; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; +import com.google.devtools.build.lib.vfs.Root; import com.google.devtools.build.lib.vfs.RootedPath; import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.LipoMode; import com.google.devtools.build.skyframe.SkyFunction; @@ -304,8 +305,10 @@ public class FdoSupport { PrecomputedValue.dependOnBuildId(env); } else { Path path = fdoMode == FdoMode.AUTO_FDO ? getAutoFdoImportsPath(fdoProfile) : fdoProfile; - env.getValue(FileValue.key(RootedPath.toRootedPathMaybeUnderRoot(path, - ImmutableList.of(execRoot)))); + env.getValue( + FileValue.key( + RootedPath.toRootedPathMaybeUnderRoot( + path, ImmutableList.of(Root.fromPath(execRoot))))); } } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/IncludeScanner.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/IncludeScanner.java index b07f75e86f..6ad546cec3 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/IncludeScanner.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/IncludeScanner.java @@ -155,7 +155,7 @@ public interface IncludeScanner { for (Artifact included : includes) { // Check for absolute includes -- we assign the file system root as // the root path for such includes - if (included.getRoot().getPath().isRootDirectory()) { + if (included.getRoot().getRoot().isRootDirectory()) { if (FileSystemUtils.startsWithAny( included.getPath().asFragment(), absoluteBuiltInIncludeDirs)) { // Skip include files found in absolute include directories. diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/NewLocalRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/NewLocalRepositoryFunction.java index 9811287cb9..9021546d65 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/repository/NewLocalRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/NewLocalRepositoryFunction.java @@ -23,6 +23,7 @@ import com.google.devtools.build.lib.skyframe.InconsistentFilesystemException; import com.google.devtools.build.lib.vfs.FileSystem; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; +import com.google.devtools.build.lib.vfs.Root; import com.google.devtools.build.lib.vfs.RootedPath; import com.google.devtools.build.skyframe.SkyFunction.Environment; import com.google.devtools.build.skyframe.SkyFunctionException; @@ -56,7 +57,7 @@ public class NewLocalRepositoryFunction extends RepositoryFunction { FileSystem fs = directories.getOutputBase().getFileSystem(); Path path = fs.getPath(pathFragment); - RootedPath dirPath = RootedPath.toRootedPath(fs.getRootDirectory(), path); + RootedPath dirPath = RootedPath.toRootedPath(Root.fromFileSystemRoot(fs), path); try { FileValue dirFileValue = diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/NewRepositoryFileHandler.java b/src/main/java/com/google/devtools/build/lib/rules/repository/NewRepositoryFileHandler.java index 7d93da6f98..14efd5e10b 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/repository/NewRepositoryFileHandler.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/NewRepositoryFileHandler.java @@ -25,6 +25,7 @@ import com.google.devtools.build.lib.syntax.EvalException; 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.Root; import com.google.devtools.build.lib.vfs.RootedPath; import com.google.devtools.build.skyframe.SkyFunction.Environment; import com.google.devtools.build.skyframe.SkyFunctionException.Transience; @@ -216,7 +217,7 @@ public class NewRepositoryFileHandler { } // And now for the file - Path packageRoot = pkgLookupValue.getRoot(); + Root packageRoot = pkgLookupValue.getRoot(); rootedFile = RootedPath.toRootedPath(packageRoot, label.toPathFragment()); } else { // TODO(dmarting): deprecate using a path for the workspace_file attribute. @@ -236,9 +237,10 @@ public class NewRepositoryFileHandler { if (file.isAbsolute()) { rootedFile = RootedPath.toRootedPath( - fileTarget.getParentDirectory(), PathFragment.create(fileTarget.getBaseName())); + Root.fromPath(fileTarget.getParentDirectory()), + PathFragment.create(fileTarget.getBaseName())); } else { - rootedFile = RootedPath.toRootedPath(workspacePath, file); + rootedFile = RootedPath.toRootedPath(Root.fromPath(workspacePath), file); } } SkyKey fileKey = FileValue.key(rootedFile); diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java index 0cf44e6edd..024287deb3 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java @@ -42,6 +42,7 @@ import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; +import com.google.devtools.build.lib.vfs.Root; import com.google.devtools.build.lib.vfs.RootedPath; import com.google.devtools.build.lib.vfs.Symlinks; import com.google.devtools.build.skyframe.SkyFunction.Environment; @@ -212,7 +213,7 @@ public abstract class RepositoryFunction { Path file = rule.getPackage().getPackageDirectory().getRelative(filePathFragment); rootedPath = RootedPath.toRootedPath( - file.getParentDirectory(), PathFragment.create(file.getBaseName())); + Root.fromPath(file.getParentDirectory()), PathFragment.create(file.getBaseName())); } SkyKey fileSkyKey = FileValue.key(rootedPath); @@ -281,7 +282,7 @@ public abstract class RepositoryFunction { } // And now for the file - Path packageRoot = pkgLookupValue.getRoot(); + Root packageRoot = pkgLookupValue.getRoot(); return RootedPath.toRootedPath(packageRoot, label.toPathFragment()); } @@ -473,8 +474,10 @@ public abstract class RepositoryFunction { @Nullable protected static FileValue getRepositoryDirectory(Path repositoryDirectory, Environment env) throws RepositoryFunctionException, InterruptedException { - SkyKey outputDirectoryKey = FileValue.key(RootedPath.toRootedPath( - repositoryDirectory, PathFragment.EMPTY_FRAGMENT)); + SkyKey outputDirectoryKey = + FileValue.key( + RootedPath.toRootedPath( + Root.fromPath(repositoryDirectory), PathFragment.EMPTY_FRAGMENT)); FileValue value; try { value = (FileValue) env.getValueOrThrow(outputDirectoryKey, IOException.class); diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryLoaderFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryLoaderFunction.java index ad0e5abb15..f2cda7aa7d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryLoaderFunction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryLoaderFunction.java @@ -23,6 +23,7 @@ import com.google.devtools.build.lib.skyframe.RepositoryValue; import com.google.devtools.build.lib.skyframe.WorkspaceFileValue; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; +import com.google.devtools.build.lib.vfs.Root; import com.google.devtools.build.lib.vfs.RootedPath; import com.google.devtools.build.skyframe.SkyFunction; import com.google.devtools.build.skyframe.SkyFunctionException; @@ -54,7 +55,8 @@ public class RepositoryLoaderFunction implements SkyFunction { SkyKey workspaceKey = WorkspaceFileValue.key( - RootedPath.toRootedPath(repository.getPath(), PathFragment.create("WORKSPACE"))); + RootedPath.toRootedPath( + Root.fromPath(repository.getPath()), PathFragment.create("WORKSPACE"))); WorkspaceFileValue workspacePackage = (WorkspaceFileValue) env.getValue(workspaceKey); if (workspacePackage == null) { return null; |