Merge "Generate the known NDK libraries list." am: 2e1b8baeda
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1353447 Change-Id: I05725fdfbbd34ee839ac63ff5534a7c40643a122
This commit is contained in:
commit
5f33df625a
4 changed files with 32 additions and 63 deletions
12
cc/cc.go
12
cc/cc.go
|
@ -873,7 +873,7 @@ func (c *Module) isCoverageVariant() bool {
|
|||
}
|
||||
|
||||
func (c *Module) IsNdk() bool {
|
||||
return inList(c.Name(), ndkMigratedLibs)
|
||||
return inList(c.Name(), ndkKnownLibs)
|
||||
}
|
||||
|
||||
func (c *Module) isLlndk(config android.Config) bool {
|
||||
|
@ -1759,8 +1759,6 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) {
|
|||
variantNdkLibs := []string{}
|
||||
variantLateNdkLibs := []string{}
|
||||
if ctx.Os() == android.Android {
|
||||
version := ctx.sdkVersion()
|
||||
|
||||
// rewriteLibs takes a list of names of shared libraries and scans it for three types
|
||||
// of names:
|
||||
//
|
||||
|
@ -1802,12 +1800,8 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) {
|
|||
for _, entry := range list {
|
||||
// strip #version suffix out
|
||||
name, _ := StubsLibNameAndVersion(entry)
|
||||
if ctx.useSdk() && inList(name, ndkPrebuiltSharedLibraries) {
|
||||
if !inList(name, ndkMigratedLibs) {
|
||||
nonvariantLibs = append(nonvariantLibs, name+".ndk."+version)
|
||||
} else {
|
||||
variantLibs = append(variantLibs, name+ndkLibrarySuffix)
|
||||
}
|
||||
if ctx.useSdk() && inList(name, ndkKnownLibs) {
|
||||
variantLibs = append(variantLibs, name+ndkLibrarySuffix)
|
||||
} else if ctx.useVndk() {
|
||||
nonvariantLibs = append(nonvariantLibs, rewriteVendorLibs(entry))
|
||||
} else if (ctx.Platform() || ctx.ProductSpecific()) && inList(name, *vendorPublicLibraries) {
|
||||
|
|
|
@ -97,7 +97,12 @@ func makeVarsProvider(ctx android.MakeVarsContext) {
|
|||
ctx.Strict("CLANG_EXTERNAL_CFLAGS", "${config.ClangExternalCflags}")
|
||||
ctx.Strict("GLOBAL_CLANG_CFLAGS_NO_OVERRIDE", "${config.NoOverrideClangGlobalCflags}")
|
||||
ctx.Strict("GLOBAL_CLANG_CPPFLAGS_NO_OVERRIDE", "")
|
||||
ctx.Strict("NDK_PREBUILT_SHARED_LIBRARIES", strings.Join(ndkPrebuiltSharedLibs, " "))
|
||||
ndkLibNames := []string{}
|
||||
for _, lib := range ndkKnownLibs {
|
||||
ndkLibNames = append(ndkLibNames, strings.TrimPrefix(lib, "lib"))
|
||||
}
|
||||
sort.Strings(ndkLibNames)
|
||||
ctx.Strict("NDK_PREBUILT_SHARED_LIBRARIES", strings.Join(ndkLibNames, " "))
|
||||
|
||||
ctx.Strict("BOARD_VNDK_VERSION", ctx.DeviceConfig().VndkVersion())
|
||||
|
||||
|
@ -174,8 +179,8 @@ func makeVarsProvider(ctx android.MakeVarsContext) {
|
|||
ctx.StrictRaw("SRC_HEADERS", strings.Join(includes, " "))
|
||||
ctx.StrictRaw("SRC_SYSTEM_HEADERS", strings.Join(systemIncludes, " "))
|
||||
|
||||
sort.Strings(ndkMigratedLibs)
|
||||
ctx.Strict("NDK_MIGRATED_LIBS", strings.Join(ndkMigratedLibs, " "))
|
||||
sort.Strings(ndkKnownLibs)
|
||||
ctx.Strict("NDK_MIGRATED_LIBS", strings.Join(ndkKnownLibs, " "))
|
||||
|
||||
hostTargets := ctx.Config().Targets[android.BuildOs]
|
||||
makeVarsToolchain(ctx, "", hostTargets[0])
|
||||
|
|
|
@ -47,37 +47,10 @@ var (
|
|||
|
||||
ndkLibrarySuffix = ".ndk"
|
||||
|
||||
ndkPrebuiltSharedLibs = []string{
|
||||
"aaudio",
|
||||
"amidi",
|
||||
"android",
|
||||
"binder_ndk",
|
||||
"c",
|
||||
"camera2ndk",
|
||||
"dl",
|
||||
"EGL",
|
||||
"GLESv1_CM",
|
||||
"GLESv2",
|
||||
"GLESv3",
|
||||
"jnigraphics",
|
||||
"log",
|
||||
"mediandk",
|
||||
"nativewindow",
|
||||
"m",
|
||||
"neuralnetworks",
|
||||
"OpenMAXAL",
|
||||
"OpenSLES",
|
||||
"stdc++",
|
||||
"sync",
|
||||
"vulkan",
|
||||
"z",
|
||||
}
|
||||
ndkPrebuiltSharedLibraries = addPrefix(append([]string(nil), ndkPrebuiltSharedLibs...), "lib")
|
||||
|
||||
// These libraries have migrated over to the new ndk_library, which is added
|
||||
// as a variation dependency via depsMutator.
|
||||
ndkMigratedLibs = []string{}
|
||||
ndkMigratedLibsLock sync.Mutex // protects ndkMigratedLibs writes during parallel BeginMutator
|
||||
// Added as a variation dependency via depsMutator.
|
||||
ndkKnownLibs = []string{}
|
||||
// protects ndkKnownLibs writes during parallel BeginMutator.
|
||||
ndkKnownLibsLock sync.Mutex
|
||||
)
|
||||
|
||||
// Creates a stub shared library based on the provided version file.
|
||||
|
@ -257,14 +230,14 @@ func (c *stubDecorator) compilerInit(ctx BaseModuleContext) {
|
|||
ctx.PropertyErrorf("name", "Do not append %q manually, just use the base name", ndkLibrarySuffix)
|
||||
}
|
||||
|
||||
ndkMigratedLibsLock.Lock()
|
||||
defer ndkMigratedLibsLock.Unlock()
|
||||
for _, lib := range ndkMigratedLibs {
|
||||
ndkKnownLibsLock.Lock()
|
||||
defer ndkKnownLibsLock.Unlock()
|
||||
for _, lib := range ndkKnownLibs {
|
||||
if lib == name {
|
||||
return
|
||||
}
|
||||
}
|
||||
ndkMigratedLibs = append(ndkMigratedLibs, name)
|
||||
ndkKnownLibs = append(ndkKnownLibs, name)
|
||||
}
|
||||
|
||||
func addStubLibraryCompilerFlags(flags Flags) Flags {
|
||||
|
|
|
@ -32,6 +32,7 @@ func RegisterRequiredBuildComponentsForTest(ctx android.RegistrationContext) {
|
|||
ctx.RegisterModuleType("cc_object", ObjectFactory)
|
||||
ctx.RegisterModuleType("ndk_prebuilt_shared_stl", NdkPrebuiltSharedStlFactory)
|
||||
ctx.RegisterModuleType("ndk_prebuilt_object", NdkPrebuiltObjectFactory)
|
||||
ctx.RegisterModuleType("ndk_library", NdkLibraryFactory)
|
||||
}
|
||||
|
||||
func GatherRequiredDepsForTest(oses ...android.OsType) string {
|
||||
|
@ -393,25 +394,22 @@ func GatherRequiredDepsForTest(oses ...android.OsType) string {
|
|||
system_shared_libs: [],
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "libc.ndk.current",
|
||||
sdk_version: "current",
|
||||
stl: "none",
|
||||
system_shared_libs: [],
|
||||
ndk_library {
|
||||
name: "libc",
|
||||
first_version: "minimum",
|
||||
symbol_file: "libc.map.txt",
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "libm.ndk.current",
|
||||
sdk_version: "current",
|
||||
stl: "none",
|
||||
system_shared_libs: [],
|
||||
ndk_library {
|
||||
name: "libm",
|
||||
first_version: "minimum",
|
||||
symbol_file: "libm.map.txt",
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "libdl.ndk.current",
|
||||
sdk_version: "current",
|
||||
stl: "none",
|
||||
system_shared_libs: [],
|
||||
ndk_library {
|
||||
name: "libdl",
|
||||
first_version: "minimum",
|
||||
symbol_file: "libdl.map.txt",
|
||||
}
|
||||
|
||||
ndk_prebuilt_object {
|
||||
|
@ -503,7 +501,6 @@ func CreateTestContext() *android.TestContext {
|
|||
ctx.RegisterModuleType("cc_fuzz", FuzzFactory)
|
||||
ctx.RegisterModuleType("cc_test", TestFactory)
|
||||
ctx.RegisterModuleType("llndk_headers", llndkHeadersFactory)
|
||||
ctx.RegisterModuleType("ndk_library", NdkLibraryFactory)
|
||||
ctx.RegisterModuleType("vendor_public_library", vendorPublicLibraryFactory)
|
||||
ctx.RegisterModuleType("filegroup", android.FileGroupFactory)
|
||||
ctx.RegisterModuleType("vndk_prebuilt_shared", VndkPrebuiltSharedFactory)
|
||||
|
|
Loading…
Reference in a new issue