aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java
diff options
context:
space:
mode:
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.java24
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(); }