Merge "add exclude_shared_libs for vendor_available:true libs"

This commit is contained in:
Treehugger Robot 2017-06-21 19:15:50 +00:00 committed by Gerrit Code Review
commit d5696dd836
2 changed files with 22 additions and 0 deletions

View file

@ -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...)

View file

@ -66,6 +66,16 @@ func filterList(list []string, filter []string) (remainder []string, filtered []
return
}
func removeListFromList(list []string, filter_out []string) (result []string) {
result = make([]string, 0, len(list))
for _, l := range list {
if !inList(l, filter_out) {
result = append(result, l)
}
}
return
}
func removeFromList(s string, list []string) (bool, []string) {
i := indexList(s, list)
if i != -1 {