Loading apex/apex_test.go +2 −2 Original line number Diff line number Diff line Loading @@ -250,7 +250,7 @@ func testApexContext(_ *testing.T, bp string, handlers ...testCustomizer) (*andr ctx.RegisterModuleType("cc_test", cc.TestFactory) ctx.RegisterModuleType("vndk_prebuilt_shared", cc.VndkPrebuiltSharedFactory) ctx.RegisterModuleType("vndk_libraries_txt", cc.VndkLibrariesTxtFactory) cc.RegisterVndkLibraryTxtTypes(ctx) prebuilt_etc.RegisterPrebuiltEtcBuildComponents(ctx) ctx.RegisterModuleType("platform_compat_config", java.PlatformCompatConfigFactory) ctx.RegisterModuleType("sh_binary", sh.ShBinaryFactory) Loading Loading @@ -3219,7 +3219,7 @@ func vndkLibrariesTxtFiles(vers ...string) (result string) { if v == "current" { for _, txt := range []string{"llndk", "vndkcore", "vndksp", "vndkprivate", "vndkproduct"} { result += ` vndk_libraries_txt { ` + txt + `_libraries_txt { name: "` + txt + `.libraries.txt", } ` Loading cc/cc_test.go +12 −9 Original line number Diff line number Diff line Loading @@ -418,23 +418,24 @@ func TestVndk(t *testing.T) { }, } vndk_libraries_txt { llndk_libraries_txt { name: "llndk.libraries.txt", } vndk_libraries_txt { vndkcore_libraries_txt { name: "vndkcore.libraries.txt", } vndk_libraries_txt { vndksp_libraries_txt { name: "vndksp.libraries.txt", } vndk_libraries_txt { vndkprivate_libraries_txt { name: "vndkprivate.libraries.txt", } vndk_libraries_txt { vndkproduct_libraries_txt { name: "vndkproduct.libraries.txt", } vndk_libraries_txt { vndkcorevariant_libraries_txt { name: "vndkcorevariant.libraries.txt", insert_vndk_version: false, } ` Loading Loading @@ -546,7 +547,7 @@ func TestVndkWithHostSupported(t *testing.T) { } } vndk_libraries_txt { vndkcore_libraries_txt { name: "vndkcore.libraries.txt", } `) Loading @@ -556,8 +557,9 @@ func TestVndkWithHostSupported(t *testing.T) { func TestVndkLibrariesTxtAndroidMk(t *testing.T) { bp := ` vndk_libraries_txt { llndk_libraries_txt { name: "llndk.libraries.txt", insert_vndk_version: true, }` config := TestConfig(buildDir, android.Android, nil, bp, nil) config.TestProductVariables.DeviceVndkVersion = StringPtr("current") Loading Loading @@ -603,8 +605,9 @@ func TestVndkUsingCoreVariant(t *testing.T) { nocrt: true, } vndk_libraries_txt { vndkcorevariant_libraries_txt { name: "vndkcorevariant.libraries.txt", insert_vndk_version: false, } ` Loading cc/testing.go +1 −1 Original line number Diff line number Diff line Loading @@ -568,10 +568,10 @@ func CreateTestContext(config android.Config) *android.TestContext { ctx.RegisterModuleType("vendor_public_library", vendorPublicLibraryFactory) ctx.RegisterModuleType("filegroup", android.FileGroupFactory) ctx.RegisterModuleType("vndk_prebuilt_shared", VndkPrebuiltSharedFactory) ctx.RegisterModuleType("vndk_libraries_txt", VndkLibrariesTxtFactory) ctx.RegisterModuleType("vendor_snapshot_shared", VendorSnapshotSharedFactory) ctx.RegisterModuleType("vendor_snapshot_static", VendorSnapshotStaticFactory) ctx.RegisterModuleType("vendor_snapshot_binary", VendorSnapshotBinaryFactory) RegisterVndkLibraryTxtTypes(ctx) ctx.PreArchMutators(android.RegisterDefaultsPreArchMutators) android.RegisterPrebuiltMutators(ctx) RegisterRequiredBuildComponentsForTest(ctx) Loading cc/vndk.go +40 −26 Original line number Diff line number Diff line Loading @@ -449,15 +449,32 @@ func VndkMutator(mctx android.BottomUpMutatorContext) { } func init() { android.RegisterModuleType("vndk_libraries_txt", VndkLibrariesTxtFactory) RegisterVndkLibraryTxtTypes(android.InitRegistrationContext) android.RegisterSingletonType("vndk-snapshot", VndkSnapshotSingleton) } func RegisterVndkLibraryTxtTypes(ctx android.RegistrationContext) { ctx.RegisterModuleType("llndk_libraries_txt", VndkLibrariesTxtFactory(libclangRTRemover(llndkLibraries))) ctx.RegisterModuleType("vndksp_libraries_txt", VndkLibrariesTxtFactory(vndkSpLibraries)) ctx.RegisterModuleType("vndkcore_libraries_txt", VndkLibrariesTxtFactory(vndkCoreLibraries)) ctx.RegisterModuleType("vndkprivate_libraries_txt", VndkLibrariesTxtFactory(vndkPrivateLibraries)) ctx.RegisterModuleType("vndkproduct_libraries_txt", VndkLibrariesTxtFactory(vndkProductLibraries)) ctx.RegisterModuleType("vndkcorevariant_libraries_txt", VndkLibrariesTxtFactory(vndkUsingCoreVariantLibraries)) } type vndkLibrariesTxt struct { android.ModuleBase lister func(android.Config) map[string]string properties VndkLibrariesTxtProperties outputFile android.OutputPath } type VndkLibrariesTxtProperties struct { Insert_vndk_version *bool } var _ etc.PrebuiltEtcModule = &vndkLibrariesTxt{} var _ android.OutputFileProducer = &vndkLibrariesTxt{} Loading @@ -471,11 +488,16 @@ var _ android.OutputFileProducer = &vndkLibrariesTxt{} // A module behaves like a prebuilt_etc but its content is generated by soong. // By being a soong module, these files can be referenced by other soong modules. // For example, apex_vndk can depend on these files as prebuilt. func VndkLibrariesTxtFactory() android.Module { m := &vndkLibrariesTxt{} func VndkLibrariesTxtFactory(lister func(android.Config) map[string]string) android.ModuleFactory { return func() android.Module { m := &vndkLibrariesTxt{ lister: lister, } m.AddProperties(&m.properties) android.InitAndroidModule(m) return m } } func insertVndkVersion(filename string, vndkVersion string) string { if index := strings.LastIndex(filename, "."); index != -1 { Loading @@ -484,33 +506,25 @@ func insertVndkVersion(filename string, vndkVersion string) string { return filename } func (txt *vndkLibrariesTxt) GenerateAndroidBuildActions(ctx android.ModuleContext) { var list []string switch txt.Name() { case llndkLibrariesTxt: for _, filename := range android.SortedStringMapValues(llndkLibraries(ctx.Config())) { if strings.HasPrefix(filename, "libclang_rt.hwasan-") { func libclangRTRemover(lister func(android.Config) map[string]string) func(android.Config) map[string]string { return func(config android.Config) map[string]string { libs := lister(config) filteredLibs := make(map[string]string, len(libs)) for lib, v := range libs { if strings.HasPrefix(lib, "libclang_rt.hwasan-") { continue } list = append(list, filename) } case vndkCoreLibrariesTxt: list = android.SortedStringMapValues(vndkCoreLibraries(ctx.Config())) case vndkSpLibrariesTxt: list = android.SortedStringMapValues(vndkSpLibraries(ctx.Config())) case vndkPrivateLibrariesTxt: list = android.SortedStringMapValues(vndkPrivateLibraries(ctx.Config())) case vndkProductLibrariesTxt: list = android.SortedStringMapValues(vndkProductLibraries(ctx.Config())) case vndkUsingCoreVariantLibrariesTxt: list = android.SortedStringMapValues(vndkUsingCoreVariantLibraries(ctx.Config())) default: ctx.ModuleErrorf("name(%s) is unknown.", txt.Name()) return filteredLibs[lib] = v } return filteredLibs } } func (txt *vndkLibrariesTxt) GenerateAndroidBuildActions(ctx android.ModuleContext) { list := android.SortedStringMapValues(txt.lister(ctx.Config())) var filename string if txt.Name() != vndkUsingCoreVariantLibrariesTxt { if BoolDefault(txt.properties.Insert_vndk_version, true) { filename = insertVndkVersion(txt.Name(), ctx.DeviceConfig().PlatformVndkVersion()) } else { filename = txt.Name() Loading Loading
apex/apex_test.go +2 −2 Original line number Diff line number Diff line Loading @@ -250,7 +250,7 @@ func testApexContext(_ *testing.T, bp string, handlers ...testCustomizer) (*andr ctx.RegisterModuleType("cc_test", cc.TestFactory) ctx.RegisterModuleType("vndk_prebuilt_shared", cc.VndkPrebuiltSharedFactory) ctx.RegisterModuleType("vndk_libraries_txt", cc.VndkLibrariesTxtFactory) cc.RegisterVndkLibraryTxtTypes(ctx) prebuilt_etc.RegisterPrebuiltEtcBuildComponents(ctx) ctx.RegisterModuleType("platform_compat_config", java.PlatformCompatConfigFactory) ctx.RegisterModuleType("sh_binary", sh.ShBinaryFactory) Loading Loading @@ -3219,7 +3219,7 @@ func vndkLibrariesTxtFiles(vers ...string) (result string) { if v == "current" { for _, txt := range []string{"llndk", "vndkcore", "vndksp", "vndkprivate", "vndkproduct"} { result += ` vndk_libraries_txt { ` + txt + `_libraries_txt { name: "` + txt + `.libraries.txt", } ` Loading
cc/cc_test.go +12 −9 Original line number Diff line number Diff line Loading @@ -418,23 +418,24 @@ func TestVndk(t *testing.T) { }, } vndk_libraries_txt { llndk_libraries_txt { name: "llndk.libraries.txt", } vndk_libraries_txt { vndkcore_libraries_txt { name: "vndkcore.libraries.txt", } vndk_libraries_txt { vndksp_libraries_txt { name: "vndksp.libraries.txt", } vndk_libraries_txt { vndkprivate_libraries_txt { name: "vndkprivate.libraries.txt", } vndk_libraries_txt { vndkproduct_libraries_txt { name: "vndkproduct.libraries.txt", } vndk_libraries_txt { vndkcorevariant_libraries_txt { name: "vndkcorevariant.libraries.txt", insert_vndk_version: false, } ` Loading Loading @@ -546,7 +547,7 @@ func TestVndkWithHostSupported(t *testing.T) { } } vndk_libraries_txt { vndkcore_libraries_txt { name: "vndkcore.libraries.txt", } `) Loading @@ -556,8 +557,9 @@ func TestVndkWithHostSupported(t *testing.T) { func TestVndkLibrariesTxtAndroidMk(t *testing.T) { bp := ` vndk_libraries_txt { llndk_libraries_txt { name: "llndk.libraries.txt", insert_vndk_version: true, }` config := TestConfig(buildDir, android.Android, nil, bp, nil) config.TestProductVariables.DeviceVndkVersion = StringPtr("current") Loading Loading @@ -603,8 +605,9 @@ func TestVndkUsingCoreVariant(t *testing.T) { nocrt: true, } vndk_libraries_txt { vndkcorevariant_libraries_txt { name: "vndkcorevariant.libraries.txt", insert_vndk_version: false, } ` Loading
cc/testing.go +1 −1 Original line number Diff line number Diff line Loading @@ -568,10 +568,10 @@ func CreateTestContext(config android.Config) *android.TestContext { ctx.RegisterModuleType("vendor_public_library", vendorPublicLibraryFactory) ctx.RegisterModuleType("filegroup", android.FileGroupFactory) ctx.RegisterModuleType("vndk_prebuilt_shared", VndkPrebuiltSharedFactory) ctx.RegisterModuleType("vndk_libraries_txt", VndkLibrariesTxtFactory) ctx.RegisterModuleType("vendor_snapshot_shared", VendorSnapshotSharedFactory) ctx.RegisterModuleType("vendor_snapshot_static", VendorSnapshotStaticFactory) ctx.RegisterModuleType("vendor_snapshot_binary", VendorSnapshotBinaryFactory) RegisterVndkLibraryTxtTypes(ctx) ctx.PreArchMutators(android.RegisterDefaultsPreArchMutators) android.RegisterPrebuiltMutators(ctx) RegisterRequiredBuildComponentsForTest(ctx) Loading
cc/vndk.go +40 −26 Original line number Diff line number Diff line Loading @@ -449,15 +449,32 @@ func VndkMutator(mctx android.BottomUpMutatorContext) { } func init() { android.RegisterModuleType("vndk_libraries_txt", VndkLibrariesTxtFactory) RegisterVndkLibraryTxtTypes(android.InitRegistrationContext) android.RegisterSingletonType("vndk-snapshot", VndkSnapshotSingleton) } func RegisterVndkLibraryTxtTypes(ctx android.RegistrationContext) { ctx.RegisterModuleType("llndk_libraries_txt", VndkLibrariesTxtFactory(libclangRTRemover(llndkLibraries))) ctx.RegisterModuleType("vndksp_libraries_txt", VndkLibrariesTxtFactory(vndkSpLibraries)) ctx.RegisterModuleType("vndkcore_libraries_txt", VndkLibrariesTxtFactory(vndkCoreLibraries)) ctx.RegisterModuleType("vndkprivate_libraries_txt", VndkLibrariesTxtFactory(vndkPrivateLibraries)) ctx.RegisterModuleType("vndkproduct_libraries_txt", VndkLibrariesTxtFactory(vndkProductLibraries)) ctx.RegisterModuleType("vndkcorevariant_libraries_txt", VndkLibrariesTxtFactory(vndkUsingCoreVariantLibraries)) } type vndkLibrariesTxt struct { android.ModuleBase lister func(android.Config) map[string]string properties VndkLibrariesTxtProperties outputFile android.OutputPath } type VndkLibrariesTxtProperties struct { Insert_vndk_version *bool } var _ etc.PrebuiltEtcModule = &vndkLibrariesTxt{} var _ android.OutputFileProducer = &vndkLibrariesTxt{} Loading @@ -471,11 +488,16 @@ var _ android.OutputFileProducer = &vndkLibrariesTxt{} // A module behaves like a prebuilt_etc but its content is generated by soong. // By being a soong module, these files can be referenced by other soong modules. // For example, apex_vndk can depend on these files as prebuilt. func VndkLibrariesTxtFactory() android.Module { m := &vndkLibrariesTxt{} func VndkLibrariesTxtFactory(lister func(android.Config) map[string]string) android.ModuleFactory { return func() android.Module { m := &vndkLibrariesTxt{ lister: lister, } m.AddProperties(&m.properties) android.InitAndroidModule(m) return m } } func insertVndkVersion(filename string, vndkVersion string) string { if index := strings.LastIndex(filename, "."); index != -1 { Loading @@ -484,33 +506,25 @@ func insertVndkVersion(filename string, vndkVersion string) string { return filename } func (txt *vndkLibrariesTxt) GenerateAndroidBuildActions(ctx android.ModuleContext) { var list []string switch txt.Name() { case llndkLibrariesTxt: for _, filename := range android.SortedStringMapValues(llndkLibraries(ctx.Config())) { if strings.HasPrefix(filename, "libclang_rt.hwasan-") { func libclangRTRemover(lister func(android.Config) map[string]string) func(android.Config) map[string]string { return func(config android.Config) map[string]string { libs := lister(config) filteredLibs := make(map[string]string, len(libs)) for lib, v := range libs { if strings.HasPrefix(lib, "libclang_rt.hwasan-") { continue } list = append(list, filename) } case vndkCoreLibrariesTxt: list = android.SortedStringMapValues(vndkCoreLibraries(ctx.Config())) case vndkSpLibrariesTxt: list = android.SortedStringMapValues(vndkSpLibraries(ctx.Config())) case vndkPrivateLibrariesTxt: list = android.SortedStringMapValues(vndkPrivateLibraries(ctx.Config())) case vndkProductLibrariesTxt: list = android.SortedStringMapValues(vndkProductLibraries(ctx.Config())) case vndkUsingCoreVariantLibrariesTxt: list = android.SortedStringMapValues(vndkUsingCoreVariantLibraries(ctx.Config())) default: ctx.ModuleErrorf("name(%s) is unknown.", txt.Name()) return filteredLibs[lib] = v } return filteredLibs } } func (txt *vndkLibrariesTxt) GenerateAndroidBuildActions(ctx android.ModuleContext) { list := android.SortedStringMapValues(txt.lister(ctx.Config())) var filename string if txt.Name() != vndkUsingCoreVariantLibrariesTxt { if BoolDefault(txt.properties.Insert_vndk_version, true) { filename = insertVndkVersion(txt.Name(), ctx.DeviceConfig().PlatformVndkVersion()) } else { filename = txt.Name() Loading