aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis
diff options
context:
space:
mode:
authorGravatar dslomov <dslomov@google.com>2017-09-18 19:35:08 +0200
committerGravatar László Csomor <laszlocsomor@google.com>2017-09-19 09:32:17 +0200
commit0ee3aa622fc13b8a5072ebddf5cd65823413b4ff (patch)
tree04be20df19764f4f5f169b67f05b67b29674abb1 /src/main/java/com/google/devtools/build/lib/analysis
parentf06e370e176ecffdc52e03e644a0db2ef38cf484 (diff)
Cleanup ActionConstructionContext.
Do not expose the underlying Rule. RELNOTES: None. PiperOrigin-RevId: 169109552
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/ActionConstructionContext.java13
3 files changed, 29 insertions, 8 deletions
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 162b9defe7..dd174ff867 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
@@ -50,6 +50,7 @@ import com.google.devtools.build.lib.analysis.config.FragmentCollection;
import com.google.devtools.build.lib.analysis.config.PatchTransition;
import com.google.devtools.build.lib.analysis.fileset.FilesetProvider;
import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.collect.ImmutableSortedKeyListMultimap;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
@@ -239,7 +240,20 @@ public final class RuleContext extends TargetContext
}
}
+ public RepositoryName getRepository() {
+ return rule.getRepository();
+ }
+
+ @Override
+ public Root getBinDirectory() {
+ return getConfiguration().getBinDirectory(rule.getRepository());
+ }
+
@Override
+ public Root getMiddlemanDirectory() {
+ return getConfiguration().getMiddlemanDirectory(rule.getRepository());
+ }
+
public Rule getRule() {
return rule;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
index 684cf867ba..16483468ea 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
@@ -267,7 +267,7 @@ public final class RunfilesSupport {
Iterable<Artifact> allRunfilesArtifacts) {
return context.getAnalysisEnvironment().getMiddlemanFactory().createRunfilesMiddleman(
context.getActionOwner(), owningExecutable, allRunfilesArtifacts,
- context.getConfiguration().getMiddlemanDirectory(context.getRule().getRepository()),
+ context.getMiddlemanDirectory(),
"runfiles_artifacts");
}
@@ -276,7 +276,7 @@ public final class RunfilesSupport {
return context.getAnalysisEnvironment().getMiddlemanFactory().createRunfilesMiddleman(
context.getActionOwner(), owningExecutable,
ImmutableList.of(artifactsMiddleman, outputManifest),
- context.getConfiguration().getMiddlemanDirectory(context.getRule().getRepository()),
+ context.getMiddlemanDirectory(),
"runfiles");
}
@@ -308,7 +308,7 @@ public final class RunfilesSupport {
BuildConfiguration config = context.getConfiguration();
Artifact outputManifest = context.getDerivedArtifact(
- outputManifestPath, config.getBinDirectory(context.getRule().getRepository()));
+ outputManifestPath, context.getBinDirectory());
context
.getAnalysisEnvironment()
.registerAction(
@@ -338,7 +338,7 @@ public final class RunfilesSupport {
}
return context.getAnalysisEnvironment().getMiddlemanFactory().createRunfilesMiddleman(
context.getActionOwner(), owningExecutable, SourceManifestAction.getDependencies(runfiles),
- context.getConfiguration().getMiddlemanDirectory(context.getRule().getRepository()),
+ context.getBinDirectory(),
"runfiles_manifest");
}
@@ -356,7 +356,7 @@ public final class RunfilesSupport {
executablePath.getBaseName() + ".runfiles.SOURCES");
Artifact sourceOnlyManifest = context.getDerivedArtifact(
sourcesManifestPath,
- context.getConfiguration().getBinDirectory(context.getRule().getRepository()));
+ context.getBinDirectory());
context.getAnalysisEnvironment().registerAction(SourceManifestAction.forRunfiles(
ManifestType.SOURCES_ONLY, context.getActionOwner(), sourceOnlyManifest, runfiles));
return sourceOnlyManifest;
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 d17ea45212..a38a08e6b7 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
@@ -18,7 +18,6 @@ import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.Root;
import com.google.devtools.build.lib.analysis.AnalysisEnvironment;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
-import com.google.devtools.build.lib.packages.Rule;
import com.google.devtools.build.lib.vfs.PathFragment;
/**
@@ -26,8 +25,16 @@ import com.google.devtools.build.lib.vfs.PathFragment;
* the items commonly needed to construct action instances.
*/
public interface ActionConstructionContext {
- /** The rule for which the actions are constructed. */
- Rule getRule();
+
+ /**
+ * Returns the bin directory for constructed actions.
+ */
+ Root getBinDirectory();
+
+ /**
+ * Returns the internal directory (used for middlemen) for constructed actions.
+ */
+ Root getMiddlemanDirectory();
/** Returns the action owner that should be used for actions. */
ActionOwner getActionOwner();