aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java
index e4b19dcb2b..5228588d91 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java
@@ -584,9 +584,19 @@ public class CppHelper {
ruleContext.getConfiguration().getBinDirectory(ruleContext.getRule().getRepository()));
}
- static String getArtifactNameForCategory(
- RuleContext ruleContext, CcToolchainProvider toolchain, ArtifactCategory category,
- String outputName) {
+ /**
+ * Returns the corresponding compiled TreeArtifact given the source TreeArtifact.
+ */
+ public static Artifact getCompileOutputTreeArtifact(
+ RuleContext ruleContext, Artifact sourceTreeArtifact) {
+ PathFragment objectDir = getObjDirectory(ruleContext.getLabel());
+ PathFragment rootRelativePath = sourceTreeArtifact.getRootRelativePath();
+ return ruleContext.getTreeArtifact(
+ objectDir.getRelative(rootRelativePath), sourceTreeArtifact.getRoot());
+ }
+
+ static String getArtifactNameForCategory(RuleContext ruleContext, CcToolchainProvider toolchain,
+ ArtifactCategory category, String outputName) {
return toolchain.getFeatures().getArtifactNameForCategory(category, outputName);
}