diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java b/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java index f54f723880..2cf31cf0cc 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java @@ -50,6 +50,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeMap; +import java.util.function.Consumer; import javax.annotation.Nullable; /** @@ -83,6 +84,8 @@ public class CachingAnalysisEnvironment implements AnalysisEnvironment { */ final List<ActionAnalysisMetadata> actions = new ArrayList<>(); + private Consumer<Artifact.SourceArtifact> sourceDependencyListener; + public CachingAnalysisEnvironment( ArtifactFactory artifactFactory, ActionKeyContext actionKeyContext, @@ -90,7 +93,8 @@ public class CachingAnalysisEnvironment implements AnalysisEnvironment { boolean isSystemEnv, boolean extendedSanityChecks, ExtendedEventHandler errorEventListener, - SkyFunction.Environment env) { + SkyFunction.Environment env, + Consumer<Artifact.SourceArtifact> sourceDependencyListener) { this.artifactFactory = artifactFactory; this.actionKeyContext = actionKeyContext; this.owner = Preconditions.checkNotNull(owner); @@ -100,6 +104,7 @@ public class CachingAnalysisEnvironment implements AnalysisEnvironment { this.skyframeEnv = env; middlemanFactory = new MiddlemanFactory(artifactFactory, this); artifacts = new HashMap<>(); + this.sourceDependencyListener = sourceDependencyListener; } public void disable(Target target) { @@ -353,4 +358,9 @@ public class CachingAnalysisEnvironment implements AnalysisEnvironment { public ArtifactOwner getOwner() { return owner; } + + @Override + public void registerSourceDependency(Artifact.SourceArtifact source) { + sourceDependencyListener.accept(source); + } } |