diff options
author | felly <felly@google.com> | 2018-07-18 15:55:59 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-07-18 15:57:34 -0700 |
commit | 6c399d642d3451d6cd22009118f64f50ccaefd6a (patch) | |
tree | 5588d7115dc6a55d4658e02ae477dc2433cedbf3 /src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalValue.java | |
parent | 64ea3cd90e1ead5ece533ee5a3cb4ee3520527fb (diff) |
Introduce --strict_fileset_output which treats all output Artifacts encountered in a Fileset as a regular file.
PiperOrigin-RevId: 205152271
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalValue.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalValue.java | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalValue.java index 94041f9bc9..c849f10ec9 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalValue.java @@ -124,6 +124,9 @@ public final class RecursiveFilesystemTraversalValue implements SkyValue { /** Whether traversal should descend into directories that are roots of subpackages. */ final PackageBoundaryMode crossPkgBoundaries; + /** Whether Fileset assumes that output Artifacts are regular files. */ + final boolean strictOutputFiles; + /** * Whether to skip checking if the root (if it's a directory) contains a BUILD file. * @@ -140,11 +143,13 @@ public final class RecursiveFilesystemTraversalValue implements SkyValue { DirectTraversalRoot root, boolean isRootGenerated, PackageBoundaryMode crossPkgBoundaries, + boolean strictOutputFiles, boolean skipTestingForSubpackage, @Nullable String errorInfo) { this.root = root; this.isRootGenerated = isRootGenerated; this.crossPkgBoundaries = crossPkgBoundaries; + this.strictOutputFiles = strictOutputFiles; this.skipTestingForSubpackage = skipTestingForSubpackage; this.errorInfo = errorInfo; } @@ -155,17 +160,20 @@ public final class RecursiveFilesystemTraversalValue implements SkyValue { DirectTraversalRoot root, boolean isRootGenerated, PackageBoundaryMode crossPkgBoundaries, + boolean strictOutputFiles, boolean skipTestingForSubpackage, @Nullable String errorInfo) { return interner.intern( new TraversalRequest( - root, isRootGenerated, crossPkgBoundaries, skipTestingForSubpackage, errorInfo)); + root, isRootGenerated, crossPkgBoundaries, strictOutputFiles, + skipTestingForSubpackage, errorInfo)); } private TraversalRequest duplicate(DirectTraversalRoot newRoot, boolean newSkipTestingForSubpackage) { return create( - newRoot, isRootGenerated, crossPkgBoundaries, newSkipTestingForSubpackage, errorInfo); + newRoot, isRootGenerated, crossPkgBoundaries, strictOutputFiles, + newSkipTestingForSubpackage, errorInfo); } /** Creates a new request to traverse a child element in the current directory (the root). */ @@ -198,20 +206,23 @@ public final class RecursiveFilesystemTraversalValue implements SkyValue { return root.equals(o.root) && isRootGenerated == o.isRootGenerated && crossPkgBoundaries == o.crossPkgBoundaries + && strictOutputFiles == o.strictOutputFiles && skipTestingForSubpackage == o.skipTestingForSubpackage; } @Override public int hashCode() { - return Objects.hashCode(root, isRootGenerated, crossPkgBoundaries, skipTestingForSubpackage); + return Objects.hashCode(root, isRootGenerated, crossPkgBoundaries, strictOutputFiles, + skipTestingForSubpackage); } @Override public String toString() { return String.format( "TraversalParams(root=%s, is_generated=%d, skip_testing_for_subpkg=%d," - + " pkg_boundaries=%s)", - root, isRootGenerated ? 1 : 0, skipTestingForSubpackage ? 1 : 0, crossPkgBoundaries); + + " pkg_boundaries=%s, strictOutputFiles=%d)", + root, isRootGenerated ? 1 : 0, skipTestingForSubpackage ? 1 : 0, crossPkgBoundaries, + strictOutputFiles ? 1 : 0); } @Override |