Fix bugs from cc_api_library build

There are some bugs found while building cc_api_library with original
library definition. This change fixes some bugs from cc_api_library.

* Generate MK information for cc_api_library.
* Mark cc_api_library as no CRT required.

Bug: 236087698
Test: ALLOW_MISSING_DEPENDENCIES=true m -j vendorimage succeeded
Change-Id: Ib411888fae41317c01378362cd5bdc87c2b588c5
This commit is contained in:
Kiyoung Kim 2022-08-17 16:40:16 +09:00
parent 6e294b496e
commit 835c589a77
2 changed files with 22 additions and 0 deletions

View file

@ -23,6 +23,7 @@ import (
"strings"
"android/soong/android"
"android/soong/multitree"
)
var (
@ -625,6 +626,24 @@ func (p *prebuiltBinaryLinker) AndroidMkEntries(ctx AndroidMkContext, entries *a
androidMkWriteAllowUndefinedSymbols(p.baseLinker, entries)
}
func (a *apiLibraryDecorator) AndroidMkEntries(ctx AndroidMkContext, entries *android.AndroidMkEntries) {
entries.Class = "SHARED_LIBRARIES"
entries.SubName += multitree.GetApiImportSuffix()
entries.ExtraEntries = append(entries.ExtraEntries, func(_ android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) {
a.libraryDecorator.androidMkWriteExportedFlags(entries)
src := *a.properties.Src
path, file := filepath.Split(src)
stem, suffix, ext := android.SplitFileExt(file)
entries.SetString("LOCAL_BUILT_MODULE_STEM", "$(LOCAL_MODULE)"+ext)
entries.SetString("LOCAL_MODULE_SUFFIX", suffix)
entries.SetString("LOCAL_MODULE_STEM", stem)
entries.SetString("LOCAL_MODULE_PATH", path)
entries.SetBool("LOCAL_UNINSTALLABLE_MODULE", true)
entries.SetString("LOCAL_SOONG_TOC", a.toc().String())
})
}
func androidMkWriteAllowUndefinedSymbols(linker *baseLinker, entries *android.AndroidMkEntries) {
allow := linker.Properties.Allow_undefined_symbols
if allow != nil {

View file

@ -68,6 +68,9 @@ func CcApiLibraryFactory() android.Module {
apiLibraryDecorator.baseLinker.Properties.System_shared_libs = []string{}
}
apiLibraryDecorator.baseLinker.Properties.No_libcrt = BoolPtr(true)
apiLibraryDecorator.baseLinker.Properties.Nocrt = BoolPtr(true)
module.Init()
return module