When a stub is built for APEX, it is generated with --apex
Now, symbols that are only to be visible to across APEXes can be tagged
as # vndk. Then when generating the stubs library, the tagged symbol
is included. The symbol is NOT included in other cases; build NDK stubs,
etc.
Bug: 120638081
Test: m (apex_test updated.)
Change-Id: Idb2b552badddfc26af113cc8d4b984788f478813
diff --git a/cc/ndk_library.go b/cc/ndk_library.go
index 53fe314..1b09f88 100644
--- a/cc/ndk_library.go
+++ b/cc/ndk_library.go
@@ -31,9 +31,9 @@
genStubSrc = pctx.AndroidStaticRule("genStubSrc",
blueprint.RuleParams{
Command: "$toolPath --arch $arch --api $apiLevel --api-map " +
- "$apiMap $vndk $in $out",
+ "$apiMap $flags $in $out",
CommandDeps: []string{"$toolPath"},
- }, "arch", "apiLevel", "apiMap", "vndk")
+ }, "arch", "apiLevel", "apiMap", "flags")
ndkLibrarySuffix = ".ndk"
@@ -271,7 +271,7 @@
return addStubLibraryCompilerFlags(flags)
}
-func compileStubLibrary(ctx ModuleContext, flags Flags, symbolFile, apiLevel, vndk string) (Objects, android.ModuleGenPath) {
+func compileStubLibrary(ctx ModuleContext, flags Flags, symbolFile, apiLevel, genstubFlags string) (Objects, android.ModuleGenPath) {
arch := ctx.Arch().ArchType.String()
stubSrcPath := android.PathForModuleGen(ctx, "stub.c")
@@ -288,7 +288,7 @@
"arch": arch,
"apiLevel": apiLevel,
"apiMap": apiLevelsJson.String(),
- "vndk": vndk,
+ "flags": genstubFlags,
},
})