diff options
author | Googler <noreply@google.com> | 2016-07-01 05:00:14 +0000 |
---|---|---|
committer | Lukacs Berki <lberki@google.com> | 2016-07-01 07:12:56 +0000 |
commit | 38ad0bfb006188c874c28e804419aa2fa8cd8376 (patch) | |
tree | a2f49b3a5f3fa46434dfa9008ffd4cc48237f4f8 /src/main/java/com/google/devtools/build/lib/rules/cpp | |
parent | f3cf015a2a926d93240ffe1af38035a0682c3628 (diff) |
RELNOTES: Use the correct build configuration for shared native deps during Android split transitions.
--
MOS_MIGRATED_REVID=126378169
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java | 24 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/LTOBackendArtifacts.java | 13 |
2 files changed, 20 insertions, 17 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(); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/LTOBackendArtifacts.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/LTOBackendArtifacts.java index f5765f0ccf..6eeadae89c 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/LTOBackendArtifacts.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/LTOBackendArtifacts.java @@ -18,6 +18,7 @@ import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.actions.LTOBackendAction; +import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.PathFragment; @@ -73,16 +74,16 @@ public final class LTOBackendArtifacts { Artifact bitcodeFile, Map<PathFragment, Artifact> allBitCodeFiles, RuleContext ruleContext, + BuildConfiguration configuration, CppLinkAction.LinkArtifactFactory linkArtifactFactory) { this.bitcodeFile = bitcodeFile; PathFragment obj = ltoOutputRootPrefix.getRelative(bitcodeFile.getRootRelativePath()); - objectFile = linkArtifactFactory.create(ruleContext, obj); - imports = - linkArtifactFactory.create(ruleContext, FileSystemUtils.appendExtension(obj, ".imports")); - index = - linkArtifactFactory.create( - ruleContext, FileSystemUtils.appendExtension(obj, ".thinlto.bc")); + objectFile = linkArtifactFactory.create(ruleContext, configuration, obj); + imports = linkArtifactFactory.create( + ruleContext, configuration, FileSystemUtils.appendExtension(obj, ".imports")); + index = linkArtifactFactory.create( + ruleContext, configuration, FileSystemUtils.appendExtension(obj, ".thinlto.bc")); bitcodeFiles = allBitCodeFiles; } |