add exclude_shared_libs for vendor_available:true libs
Adding a mechanism to conditionally exclude some shared library dependencies when a lib is built for vendors. Without this, some libraries cannot be earily marked as vendor_available if they are depending on shared libs can shouldn't be marked as vendor_available. By using exclude_shared_libs with exclude_srcs (or __ANDROID_VNDK__ macro), we can eliminate the unnecessary dependency for vendors. Bug: 62471389 Test: build Change-Id: If94277b45c3769223cea371d0028e75277640356
This commit is contained in:
12
cc/linker.go
12
cc/linker.go
@@ -87,6 +87,14 @@ type BaseLinkerProperties struct {
|
||||
// group static libraries. This can resolve missing symbols issues with interdependencies
|
||||
// between static libraries, but it is generally better to order them correctly instead.
|
||||
Group_static_libs *bool `android:"arch_variant"`
|
||||
|
||||
Target struct {
|
||||
Vendor struct {
|
||||
// list of shared libs that should not be used to build
|
||||
// the vendor variant of the C/C++ module.
|
||||
Exclude_shared_libs []string
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func NewBaseLinker() *baseLinker {
|
||||
@@ -123,6 +131,10 @@ func (linker *baseLinker) linkerDeps(ctx BaseModuleContext, deps Deps) Deps {
|
||||
deps.StaticLibs = append(deps.StaticLibs, linker.Properties.Static_libs...)
|
||||
deps.SharedLibs = append(deps.SharedLibs, linker.Properties.Shared_libs...)
|
||||
|
||||
if ctx.vndk() {
|
||||
deps.SharedLibs = removeListFromList(deps.SharedLibs, linker.Properties.Target.Vendor.Exclude_shared_libs)
|
||||
}
|
||||
|
||||
deps.ReexportHeaderLibHeaders = append(deps.ReexportHeaderLibHeaders, linker.Properties.Export_header_lib_headers...)
|
||||
deps.ReexportStaticLibHeaders = append(deps.ReexportStaticLibHeaders, linker.Properties.Export_static_lib_headers...)
|
||||
deps.ReexportSharedLibHeaders = append(deps.ReexportSharedLibHeaders, linker.Properties.Export_shared_lib_headers...)
|
||||
|
Reference in New Issue
Block a user