Export SOONG_CC_API_XML to Make outside androidmk The SOONG_CC_API_XML values are needed for modules that are not exported to Make, export them from a singleton that covers all modules instead of an AndroidMkProvider that may not be called for some modules. Bug: 193819970 Test: manual Change-Id: Ie0a945d879de4f99ce76d005aea8041719c244f7
diff --git a/cc/androidmk.go b/cc/androidmk.go index cd52363..e95d5a7 100644 --- a/cc/androidmk.go +++ b/cc/androidmk.go
@@ -294,9 +294,6 @@ if library.buildStubs() { entries.SetBool("LOCAL_NO_NOTICE_FILE", true) } - if library.apiListCoverageXmlPath.String() != "" { - entries.SetString("SOONG_CC_API_XML", "$(SOONG_CC_API_XML) "+library.apiListCoverageXmlPath.String()) - } }) } // If a library providing a stub is included in an APEX, the private APIs of the library
diff --git a/cc/library.go b/cc/library.go index de9d01e..bbb0c75 100644 --- a/cc/library.go +++ b/cc/library.go
@@ -1035,6 +1035,8 @@ androidMkWriteAdditionalDependenciesForSourceAbiDiff(w io.Writer) availableFor(string) bool + + getAPIListCoverageXMLPath() android.ModuleOutPath } type versionedInterface interface { @@ -1971,6 +1973,10 @@ mod.ModuleBase.MakeUninstallable() } +func (library *libraryDecorator) getAPIListCoverageXMLPath() android.ModuleOutPath { + return library.apiListCoverageXmlPath +} + var versioningMacroNamesListKey = android.NewOnceKey("versioningMacroNamesList") // versioningMacroNamesList returns a singleton map, where keys are "version macro names",
diff --git a/cc/stub_library.go b/cc/stub_library.go index 1722c80..76da782 100644 --- a/cc/stub_library.go +++ b/cc/stub_library.go
@@ -15,6 +15,7 @@ package cc import ( + "sort" "strings" "android/soong/android" @@ -27,6 +28,8 @@ type stubLibraries struct { stubLibraryMap map[string]bool + + apiListCoverageXmlPaths []string } // Check if the module defines stub, or itself is stub @@ -53,6 +56,11 @@ s.stubLibraryMap[name] = true } } + if m.library != nil { + if p := m.library.getAPIListCoverageXMLPath().String(); p != "" { + s.apiListCoverageXmlPaths = append(s.apiListCoverageXmlPaths, p) + } + } } }) } @@ -66,4 +74,8 @@ func (s *stubLibraries) MakeVars(ctx android.MakeVarsContext) { // Convert stub library file names into Makefile variable. ctx.Strict("STUB_LIBRARIES", strings.Join(android.SortedStringKeys(s.stubLibraryMap), " ")) + + // Export the list of API XML files to Make. + sort.Strings(s.apiListCoverageXmlPaths) + ctx.Strict("SOONG_CC_API_XML", strings.Join(s.apiListCoverageXmlPaths, " ")) }