aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/CachingAnalysisEnvironment.java
diff options
context:
space:
mode:
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.java12
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);
+ }
}