diff options
author | 2017-09-18 19:35:08 +0200 | |
---|---|---|
committer | 2017-09-19 09:32:17 +0200 | |
commit | 0ee3aa622fc13b8a5072ebddf5cd65823413b4ff (patch) | |
tree | 04be20df19764f4f5f169b67f05b67b29674abb1 /src/main/java/com/google/devtools/build/lib/analysis | |
parent | f06e370e176ecffdc52e03e644a0db2ef38cf484 (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')
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(); |