diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java index 3e17a83721..6d240bbddc 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java @@ -91,7 +91,8 @@ public final class CppLinkAction extends AbstractAction implements ExecutionInfo /** * Create an artifact at the specified root-relative path in the bin directory. */ - Artifact create(RuleContext ruleContext, PathFragment rootRelativePath); + Artifact create(RuleContext ruleContext, BuildConfiguration configuration, + PathFragment rootRelativePath); } /** @@ -100,9 +101,9 @@ public final class CppLinkAction extends AbstractAction implements ExecutionInfo */ public static final LinkArtifactFactory DEFAULT_ARTIFACT_FACTORY = new LinkArtifactFactory() { @Override - public Artifact create(RuleContext ruleContext, PathFragment rootRelativePath) { - return ruleContext.getDerivedArtifact(rootRelativePath, - ruleContext.getConfiguration().getBinDirectory()); + public Artifact create(RuleContext ruleContext, BuildConfiguration configuration, + PathFragment rootRelativePath) { + return ruleContext.getDerivedArtifact(rootRelativePath, configuration.getBinDirectory()); } }; @@ -693,7 +694,7 @@ public final class CppLinkAction extends AbstractAction implements ExecutionInfo ImmutableList.Builder<LTOBackendArtifacts> ltoOutputs = ImmutableList.builder(); for (Artifact a : allBitcode.values()) { LTOBackendArtifacts ltoArtifacts = new LTOBackendArtifacts( - ltoOutputRootPrefix, a, allBitcode, ruleContext, linkArtifactFactory); + ltoOutputRootPrefix, a, allBitcode, ruleContext, configuration, linkArtifactFactory); ltoOutputs.add(ltoArtifacts); } return ltoOutputs.build(); @@ -732,7 +733,7 @@ public final class CppLinkAction extends AbstractAction implements ExecutionInfo } final ImmutableList<Artifact> buildInfoHeaderArtifacts = !linkstamps.isEmpty() - ? ruleContext.getBuildInfo(CppBuildInfo.KEY) + ? analysisEnvironment.getBuildInfo(ruleContext, CppBuildInfo.KEY, configuration) : ImmutableList.<Artifact>of(); boolean needWholeArchive = wholeArchive || needWholeArchive( @@ -762,7 +763,8 @@ public final class CppLinkAction extends AbstractAction implements ExecutionInfo interfaceOutput, filteredNonLibraryArtifacts, this.ltoBitcodeFiles); final ImmutableMap<Artifact, Artifact> linkstampMap = - mapLinkstampsToOutputs(linkstamps, ruleContext, output, linkArtifactFactory); + mapLinkstampsToOutputs(linkstamps, ruleContext, configuration, output, + linkArtifactFactory); PathFragment ltoOutputRootPrefix = null; if (isLTOIndexing && allLTOArtifacts == null) { @@ -795,7 +797,7 @@ public final class CppLinkAction extends AbstractAction implements ExecutionInfo @Nullable final Artifact paramFile = canSplitCommandLine() - ? linkArtifactFactory.create(ruleContext, paramRootPath) + ? linkArtifactFactory.create(ruleContext, configuration, paramRootPath) : null; LinkCommandLine.Builder linkCommandLineBuilder = @@ -990,8 +992,8 @@ public final class CppLinkAction extends AbstractAction implements ExecutionInfo * corresponding object file that should be fed into the link */ public static ImmutableMap<Artifact, Artifact> mapLinkstampsToOutputs( - Collection<Artifact> linkstamps, RuleContext ruleContext, Artifact outputBinary, - LinkArtifactFactory linkArtifactFactory) { + Collection<Artifact> linkstamps, RuleContext ruleContext, BuildConfiguration configuration, + Artifact outputBinary, LinkArtifactFactory linkArtifactFactory) { ImmutableMap.Builder<Artifact, Artifact> mapBuilder = ImmutableMap.builder(); PathFragment outputBinaryPath = outputBinary.getRootRelativePath(); @@ -1004,7 +1006,7 @@ public final class CppLinkAction extends AbstractAction implements ExecutionInfo mapBuilder.put(linkstamp, // Note that link stamp actions can be shared between link actions that output shared // native dep libraries. - linkArtifactFactory.create(ruleContext, stampOutputPath)); + linkArtifactFactory.create(ruleContext, configuration, stampOutputPath)); } return mapBuilder.build(); } |