Merge "rust: Depend on CC a shared library's TOC, not .so" am: 71fd1fedc1 am: 90e63e8a5e

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1556407

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Icaa47eb9fd86e093fd82c9c216f3b918c577aabc
This commit is contained in:
Ivan Lozano
2021-01-22 20:57:49 +00:00
committed by Automerger Merge Worker
2 changed files with 19 additions and 10 deletions

View File

@@ -188,7 +188,7 @@ func transformSrctoCrate(ctx ModuleContext, main android.Path, deps PathDeps, fl
implicits = append(implicits, rustLibsToPaths(deps.DyLibs)...) implicits = append(implicits, rustLibsToPaths(deps.DyLibs)...)
implicits = append(implicits, rustLibsToPaths(deps.ProcMacros)...) implicits = append(implicits, rustLibsToPaths(deps.ProcMacros)...)
implicits = append(implicits, deps.StaticLibs...) implicits = append(implicits, deps.StaticLibs...)
implicits = append(implicits, deps.SharedLibs...) implicits = append(implicits, deps.SharedLibDeps...)
implicits = append(implicits, deps.srcProviderFiles...) implicits = append(implicits, deps.srcProviderFiles...)
if deps.CrtBegin.Valid() { if deps.CrtBegin.Valid() {

View File

@@ -270,6 +270,7 @@ type PathDeps struct {
DyLibs RustLibraries DyLibs RustLibraries
RLibs RustLibraries RLibs RustLibraries
SharedLibs android.Paths SharedLibs android.Paths
SharedLibDeps android.Paths
StaticLibs android.Paths StaticLibs android.Paths
ProcMacros RustLibraries ProcMacros RustLibraries
linkDirs []string linkDirs []string
@@ -952,10 +953,16 @@ func (mod *Module) depsToPaths(ctx android.ModuleContext) PathDeps {
staticLibDepFiles = append(staticLibDepFiles, dep.OutputFile().Path()) staticLibDepFiles = append(staticLibDepFiles, dep.OutputFile().Path())
} }
var sharedLibFiles android.Paths
var sharedLibDepFiles android.Paths var sharedLibDepFiles android.Paths
for _, dep := range directSharedLibDeps { for _, dep := range directSharedLibDeps {
sharedLibFiles = append(sharedLibFiles, dep.OutputFile().Path())
if dep.Toc().Valid() {
sharedLibDepFiles = append(sharedLibDepFiles, dep.Toc().Path())
} else {
sharedLibDepFiles = append(sharedLibDepFiles, dep.OutputFile().Path()) sharedLibDepFiles = append(sharedLibDepFiles, dep.OutputFile().Path())
} }
}
var srcProviderDepFiles android.Paths var srcProviderDepFiles android.Paths
for _, dep := range directSrcProvidersDeps { for _, dep := range directSrcProvidersDeps {
@@ -970,12 +977,14 @@ func (mod *Module) depsToPaths(ctx android.ModuleContext) PathDeps {
depPaths.RLibs = append(depPaths.RLibs, rlibDepFiles...) depPaths.RLibs = append(depPaths.RLibs, rlibDepFiles...)
depPaths.DyLibs = append(depPaths.DyLibs, dylibDepFiles...) depPaths.DyLibs = append(depPaths.DyLibs, dylibDepFiles...)
depPaths.SharedLibs = append(depPaths.SharedLibs, sharedLibDepFiles...) depPaths.SharedLibs = append(depPaths.SharedLibs, sharedLibDepFiles...)
depPaths.SharedLibDeps = append(depPaths.SharedLibDeps, sharedLibDepFiles...)
depPaths.StaticLibs = append(depPaths.StaticLibs, staticLibDepFiles...) depPaths.StaticLibs = append(depPaths.StaticLibs, staticLibDepFiles...)
depPaths.ProcMacros = append(depPaths.ProcMacros, procMacroDepFiles...) depPaths.ProcMacros = append(depPaths.ProcMacros, procMacroDepFiles...)
depPaths.SrcDeps = append(depPaths.SrcDeps, srcProviderDepFiles...) depPaths.SrcDeps = append(depPaths.SrcDeps, srcProviderDepFiles...)
// Dedup exported flags from dependencies // Dedup exported flags from dependencies
depPaths.linkDirs = android.FirstUniqueStrings(depPaths.linkDirs) depPaths.linkDirs = android.FirstUniqueStrings(depPaths.linkDirs)
depPaths.linkObjects = android.FirstUniqueStrings(depPaths.linkObjects)
depPaths.depFlags = android.FirstUniqueStrings(depPaths.depFlags) depPaths.depFlags = android.FirstUniqueStrings(depPaths.depFlags)
depPaths.depClangFlags = android.FirstUniqueStrings(depPaths.depClangFlags) depPaths.depClangFlags = android.FirstUniqueStrings(depPaths.depClangFlags)
depPaths.depIncludePaths = android.FirstUniquePaths(depPaths.depIncludePaths) depPaths.depIncludePaths = android.FirstUniquePaths(depPaths.depIncludePaths)