C++: More ctx removal from CppLinkActionBuilder
RELNOTES:
PiperOrigin-RevId: 241394422
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisEnvironment.java b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisEnvironment.java
index 23d1589..a23e5fa 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisEnvironment.java
@@ -140,11 +140,10 @@
/**
* Returns the Artifacts that contain the workspace status for the current build request.
*
- * @param ruleContext the rule to use for error reporting.
+ * @param stamp whether stamping is enabled
* @param config the current build configuration.
*/
- ImmutableList<Artifact> getBuildInfo(
- RuleContext ruleContext, BuildInfoKey key, BuildConfiguration config)
+ ImmutableList<Artifact> getBuildInfo(boolean stamp, BuildInfoKey key, BuildConfiguration config)
throws InterruptedException;
/**
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 d7be463..a495377 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
@@ -340,9 +340,7 @@
@Override
public ImmutableList<Artifact> getBuildInfo(
- RuleContext ruleContext, BuildInfoKey key, BuildConfiguration config)
- throws InterruptedException {
- boolean stamp = AnalysisUtils.isStampingEnabled(ruleContext, config);
+ boolean stamp, BuildInfoKey key, BuildConfiguration config) throws InterruptedException {
BuildInfoCollectionValue collectionValue =
(BuildInfoCollectionValue) skyframeEnv.getValue(BuildInfoCollectionValue.key(key, config));
if (collectionValue == null) {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
index 7ec4b3e..37f682a 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
@@ -34,6 +34,7 @@
import com.google.common.collect.Sets;
import com.google.devtools.build.lib.actions.Action;
import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionLookupValue;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.ActionRegistry;
@@ -415,6 +416,16 @@
}
/**
+ * We have to re-implement this method here because it is declared in the interface {@link
+ * ActionConstructionContext}. This class inherits from {@link TargetContext} which doesn't
+ * implement the {@link ActionConstructionContext} interface.
+ */
+ @Override
+ public ActionKeyContext getActionKeyContext() {
+ return super.getActionKeyContext();
+ }
+
+ /**
* An opaque symbol generator to be used when identifying objects by their action owner/index of
* creation. Only needed if an object needs to know whether it was created by the same action
* owner in the same order as another object. Each symbol must call {@link
@@ -492,7 +503,9 @@
}
public ImmutableList<Artifact> getBuildInfo(BuildInfoKey key) throws InterruptedException {
- return getAnalysisEnvironment().getBuildInfo(this, key, getConfiguration());
+ return getAnalysisEnvironment()
+ .getBuildInfo(
+ AnalysisUtils.isStampingEnabled(this, getConfiguration()), key, getConfiguration());
}
@VisibleForTesting
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/ActionConstructionContext.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/ActionConstructionContext.java
index f68abcf..92d25f7 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/ActionConstructionContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/ActionConstructionContext.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.analysis.actions;
import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.Artifact.SpecialArtifact;
@@ -44,6 +45,9 @@
/** Returns the action owner that should be used for actions. */
ActionOwner getActionOwner();
+ /** Returns the action key context. */
+ ActionKeyContext getActionKeyContext();
+
/** Returns the {@link BuildConfiguration} for which the given rule is analyzed. */
BuildConfiguration getConfiguration();