Make OutputDirectories ready to produce repository-dependent bin directory paths.
This is a prep CL to add an option for the new derived artifact path format:
$EXECROOT/bazel-out/$REPO/$CONFIG/bin/<path>
It adds a few convenience methods to RuleContext to minimize boilerplate code.
NO_IFTTT=Starlark doesn't support repository-dependent genfiles_dir yet.
PiperOrigin-RevId: 336337508
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 1ef93b5..8262e6a 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
@@ -319,6 +319,18 @@
return getConfiguration().getBinDirectory(rule.getRepository());
}
+ public ArtifactRoot getGenfilesDirectory() {
+ return getConfiguration().getGenfilesDirectory(rule.getRepository());
+ }
+
+ public PathFragment getBinFragment() {
+ return getConfiguration().getBinFragment(rule.getRepository());
+ }
+
+ public PathFragment getGenfilesFragment() {
+ return getConfiguration().getGenfilesFragment(rule.getRepository());
+ }
+
@Override
public ArtifactRoot getMiddlemanDirectory() {
return getConfiguration().getMiddlemanDirectory(rule.getRepository());