aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcIncLibrary.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupport.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/IncludeScanner.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/repository/NewLocalRepositoryFunction.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/repository/NewRepositoryFileHandler.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryLoaderFunction.java4
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;