diff options
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/AnalysisEnvironment.java | 10 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/SolibSymlinkAction.java | 2 |
2 files changed, 8 insertions, 4 deletions
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 07f7a02190..7429bd95d0 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 @@ -44,12 +44,16 @@ public interface AnalysisEnvironment extends ActionRegistry { /** * Returns the artifact for the derived file {@code rootRelativePath}. * + * <p><b>DO NOT USE</b> in rule implementations. Use + * {@link RuleContext#getPackageRelativeArtifact(PathFragment, Root)} or + * {@link RuleContext#getUniqueDirectoryArtifact(String, PathFragment, Root)}, or, if there is + * really no other way, {@link RuleContext#getShareableArtifact(PathFragment, Root)} instead. + * * <p>Creates the artifact if necessary and sets the root of that artifact to {@code root}. * * <p>This method can create artifacts anywhere in the output tree, thus making it possible for - * artifacts generated by two different rules to clash. To avoid this, use the methods - * {@code getUniqueDirectoryArtifact} and {@code getPackageRelativeArtifact} on - * {@link RuleContext}. + * artifacts generated by two different rules to clash. To avoid this, use the artifact creation + * method on {@link RuleContext} mentioned above. */ Artifact getDerivedArtifact(PathFragment rootRelativePath, Root root); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/SolibSymlinkAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/SolibSymlinkAction.java index d597465366..7902cbfeb1 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/SolibSymlinkAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/SolibSymlinkAction.java @@ -169,7 +169,7 @@ public final class SolibSymlinkAction extends AbstractAction { // Ignore libraries that are already represented by the symlinks. Root root = configuration.getBinDirectory(); - Artifact symlink = ruleContext.getAnalysisEnvironment().getDerivedArtifact(symlinkName, root); + Artifact symlink = ruleContext.getShareableArtifact(symlinkName, root); ruleContext.registerAction( new SolibSymlinkAction(ruleContext.getActionOwner(), library, symlink)); return LinkerInputs.solibLibraryToLink(symlink, library); |