Automated NDK API coverage used by Mainline modules build integration.

Add gen_ndk_usedby_apex.sh script to generate NDK API list used by Mainlain modules when modules get build.

Test: TARGET_BUILD_APPS=com.android.adbd m dist apps_only

Change-Id: Ib1b2f0dd2f9ae85b1545c6cc5bb4c5bbdfac1c15
This commit is contained in:
sophiez
2021-01-09 01:03:42 +00:00
parent 55e8815fb8
commit 87ff51db84
4 changed files with 83 additions and 6 deletions

View File

@@ -686,7 +686,7 @@ func (a *apexBundle) buildUnflattenedApex(ctx android.ModuleContext) {
implicitInputs = append(implicitInputs, unsignedOutputFile)
// Run coverage analysis
apisUsedbyOutputFile := android.PathForModuleOut(ctx, a.Name()+".txt")
apisUsedbyOutputFile := android.PathForModuleOut(ctx, a.Name()+"_using.txt")
ctx.Build(pctx, android.BuildParams{
Rule: generateAPIsUsedbyApexRule,
Implicits: implicitInputs,
@@ -697,7 +697,19 @@ func (a *apexBundle) buildUnflattenedApex(ctx android.ModuleContext) {
"readelf": "${config.ClangBin}/llvm-readelf",
},
})
a.coverageOutputPath = apisUsedbyOutputFile
a.apisUsedByModuleFile = apisUsedbyOutputFile
apisBackedbyOutputFile := android.PathForModuleOut(ctx, a.Name()+"_backing.txt")
ndkLibraryList := android.PathForSource(ctx, "system/core/rootdir/etc/public.libraries.android.txt")
rule := android.NewRuleBuilder(pctx, ctx)
rule.Command().
Tool(android.PathForSource(ctx, "build/soong/scripts/gen_ndk_backedby_apex.sh")).
Text(imageDir.String()).
Implicits(implicitInputs).
Output(apisBackedbyOutputFile).
Input(ndkLibraryList)
rule.Build("ndk_backedby_list", "Generate API libraries backed by Apex")
a.apisBackedByModuleFile = apisBackedbyOutputFile
bundleConfig := a.buildBundleConfig(ctx)