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:
@@ -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() {
|
||||||
|
27
rust/rust.go
27
rust/rust.go
@@ -267,14 +267,15 @@ type Deps struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type PathDeps struct {
|
type PathDeps struct {
|
||||||
DyLibs RustLibraries
|
DyLibs RustLibraries
|
||||||
RLibs RustLibraries
|
RLibs RustLibraries
|
||||||
SharedLibs android.Paths
|
SharedLibs android.Paths
|
||||||
StaticLibs android.Paths
|
SharedLibDeps android.Paths
|
||||||
ProcMacros RustLibraries
|
StaticLibs android.Paths
|
||||||
linkDirs []string
|
ProcMacros RustLibraries
|
||||||
depFlags []string
|
linkDirs []string
|
||||||
linkObjects []string
|
depFlags []string
|
||||||
|
linkObjects []string
|
||||||
//ReexportedDeps android.Paths
|
//ReexportedDeps android.Paths
|
||||||
|
|
||||||
// Used by bindgen modules which call clang
|
// Used by bindgen modules which call clang
|
||||||
@@ -952,9 +953,15 @@ 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 {
|
||||||
sharedLibDepFiles = append(sharedLibDepFiles, dep.OutputFile().Path())
|
sharedLibFiles = append(sharedLibFiles, dep.OutputFile().Path())
|
||||||
|
if dep.Toc().Valid() {
|
||||||
|
sharedLibDepFiles = append(sharedLibDepFiles, dep.Toc().Path())
|
||||||
|
} else {
|
||||||
|
sharedLibDepFiles = append(sharedLibDepFiles, dep.OutputFile().Path())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var srcProviderDepFiles android.Paths
|
var srcProviderDepFiles android.Paths
|
||||||
@@ -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)
|
||||||
|
Reference in New Issue
Block a user