Merge "Dedup registration code for module types and singletons"
This commit is contained in:
@@ -114,3 +114,43 @@ func ModuleTypeFactories() map[string]ModuleFactory {
|
|||||||
}
|
}
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Interface for registering build components.
|
||||||
|
//
|
||||||
|
// Provided to allow registration of build components to be shared between the runtime
|
||||||
|
// and test environments.
|
||||||
|
type RegistrationContext interface {
|
||||||
|
RegisterModuleType(name string, factory ModuleFactory)
|
||||||
|
RegisterSingletonType(name string, factory SingletonFactory)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Used to register build components from an init() method, e.g.
|
||||||
|
//
|
||||||
|
// init() {
|
||||||
|
// RegisterBuildComponents(android.InitRegistrationContext)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// func RegisterBuildComponents(ctx android.RegistrationContext) {
|
||||||
|
// ctx.RegisterModuleType(...)
|
||||||
|
// ...
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// Extracting the actual registration into a separate RegisterBuildComponents(ctx) function
|
||||||
|
// allows it to be used to initialize test context, e.g.
|
||||||
|
//
|
||||||
|
// ctx := android.NewTestContext()
|
||||||
|
// RegisterBuildComponents(ctx)
|
||||||
|
var InitRegistrationContext RegistrationContext = initRegistrationContext{}
|
||||||
|
|
||||||
|
// Make sure the TestContext implements RegistrationContext.
|
||||||
|
var _ RegistrationContext = (*TestContext)(nil)
|
||||||
|
|
||||||
|
type initRegistrationContext struct{}
|
||||||
|
|
||||||
|
func (ctx initRegistrationContext) RegisterModuleType(name string, factory ModuleFactory) {
|
||||||
|
RegisterModuleType(name, factory)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ctx initRegistrationContext) RegisterSingletonType(name string, factory SingletonFactory) {
|
||||||
|
RegisterSingletonType(name, factory)
|
||||||
|
}
|
||||||
|
@@ -303,14 +303,10 @@ func testApexContext(t *testing.T, bp string, handlers ...testCustomizer) (*andr
|
|||||||
ctx.RegisterModuleType("toolchain_library", cc.ToolchainLibraryFactory)
|
ctx.RegisterModuleType("toolchain_library", cc.ToolchainLibraryFactory)
|
||||||
ctx.RegisterModuleType("prebuilt_etc", android.PrebuiltEtcFactory)
|
ctx.RegisterModuleType("prebuilt_etc", android.PrebuiltEtcFactory)
|
||||||
ctx.RegisterModuleType("sh_binary", android.ShBinaryFactory)
|
ctx.RegisterModuleType("sh_binary", android.ShBinaryFactory)
|
||||||
ctx.RegisterModuleType("android_app_certificate", java.AndroidAppCertificateFactory)
|
|
||||||
ctx.RegisterModuleType("filegroup", android.FileGroupFactory)
|
ctx.RegisterModuleType("filegroup", android.FileGroupFactory)
|
||||||
ctx.RegisterModuleType("java_library", java.LibraryFactory)
|
java.RegisterJavaBuildComponents(ctx)
|
||||||
ctx.RegisterModuleType("java_import", java.ImportFactory)
|
|
||||||
ctx.RegisterModuleType("java_system_modules", java.SystemModulesFactory)
|
ctx.RegisterModuleType("java_system_modules", java.SystemModulesFactory)
|
||||||
ctx.RegisterModuleType("android_app", java.AndroidAppFactory)
|
java.RegisterAppBuildComponents(ctx)
|
||||||
ctx.RegisterModuleType("android_app_import", java.AndroidAppImportFactory)
|
|
||||||
ctx.RegisterModuleType("override_android_app", java.OverrideAndroidAppModuleFactory)
|
|
||||||
|
|
||||||
ctx.PreArchMutators(android.RegisterDefaultsPreArchMutators)
|
ctx.PreArchMutators(android.RegisterDefaultsPreArchMutators)
|
||||||
ctx.PreArchMutators(func(ctx android.RegisterMutatorsContext) {
|
ctx.PreArchMutators(func(ctx android.RegisterMutatorsContext) {
|
||||||
|
@@ -34,8 +34,12 @@ type AndroidLibraryDependency interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
android.RegisterModuleType("android_library_import", AARImportFactory)
|
RegisterAARBuildComponents(android.InitRegistrationContext)
|
||||||
android.RegisterModuleType("android_library", AndroidLibraryFactory)
|
}
|
||||||
|
|
||||||
|
func RegisterAARBuildComponents(ctx android.RegistrationContext) {
|
||||||
|
ctx.RegisterModuleType("android_library_import", AARImportFactory)
|
||||||
|
ctx.RegisterModuleType("android_library", AndroidLibraryFactory)
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
20
java/app.go
20
java/app.go
@@ -33,18 +33,22 @@ import (
|
|||||||
var supportedDpis = []string{"ldpi", "mdpi", "hdpi", "xhdpi", "xxhdpi", "xxxhdpi"}
|
var supportedDpis = []string{"ldpi", "mdpi", "hdpi", "xhdpi", "xxhdpi", "xxxhdpi"}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
android.RegisterModuleType("android_app", AndroidAppFactory)
|
RegisterAppBuildComponents(android.InitRegistrationContext)
|
||||||
android.RegisterModuleType("android_test", AndroidTestFactory)
|
|
||||||
android.RegisterModuleType("android_test_helper_app", AndroidTestHelperAppFactory)
|
|
||||||
android.RegisterModuleType("android_app_certificate", AndroidAppCertificateFactory)
|
|
||||||
android.RegisterModuleType("override_android_app", OverrideAndroidAppModuleFactory)
|
|
||||||
android.RegisterModuleType("override_android_test", OverrideAndroidTestModuleFactory)
|
|
||||||
android.RegisterModuleType("android_app_import", AndroidAppImportFactory)
|
|
||||||
android.RegisterModuleType("android_test_import", AndroidTestImportFactory)
|
|
||||||
|
|
||||||
initAndroidAppImportVariantGroupTypes()
|
initAndroidAppImportVariantGroupTypes()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func RegisterAppBuildComponents(ctx android.RegistrationContext) {
|
||||||
|
ctx.RegisterModuleType("android_app", AndroidAppFactory)
|
||||||
|
ctx.RegisterModuleType("android_test", AndroidTestFactory)
|
||||||
|
ctx.RegisterModuleType("android_test_helper_app", AndroidTestHelperAppFactory)
|
||||||
|
ctx.RegisterModuleType("android_app_certificate", AndroidAppCertificateFactory)
|
||||||
|
ctx.RegisterModuleType("override_android_app", OverrideAndroidAppModuleFactory)
|
||||||
|
ctx.RegisterModuleType("override_android_test", OverrideAndroidTestModuleFactory)
|
||||||
|
ctx.RegisterModuleType("android_app_import", AndroidAppImportFactory)
|
||||||
|
ctx.RegisterModuleType("android_test_import", AndroidTestImportFactory)
|
||||||
|
}
|
||||||
|
|
||||||
// AndroidManifest.xml merging
|
// AndroidManifest.xml merging
|
||||||
// package splits
|
// package splits
|
||||||
|
|
||||||
|
40
java/java.go
40
java/java.go
@@ -34,24 +34,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
android.RegisterModuleType("java_defaults", DefaultsFactory)
|
RegisterJavaBuildComponents(android.InitRegistrationContext)
|
||||||
|
|
||||||
android.RegisterModuleType("java_library", LibraryFactory)
|
|
||||||
android.RegisterModuleType("java_library_static", LibraryStaticFactory)
|
|
||||||
android.RegisterModuleType("java_library_host", LibraryHostFactory)
|
|
||||||
android.RegisterModuleType("java_binary", BinaryFactory)
|
|
||||||
android.RegisterModuleType("java_binary_host", BinaryHostFactory)
|
|
||||||
android.RegisterModuleType("java_test", TestFactory)
|
|
||||||
android.RegisterModuleType("java_test_helper_library", TestHelperLibraryFactory)
|
|
||||||
android.RegisterModuleType("java_test_host", TestHostFactory)
|
|
||||||
android.RegisterModuleType("java_import", ImportFactory)
|
|
||||||
android.RegisterModuleType("java_import_host", ImportFactoryHost)
|
|
||||||
android.RegisterModuleType("java_device_for_host", DeviceForHostFactory)
|
|
||||||
android.RegisterModuleType("java_host_for_device", HostForDeviceFactory)
|
|
||||||
android.RegisterModuleType("dex_import", DexImportFactory)
|
|
||||||
|
|
||||||
android.RegisterSingletonType("logtags", LogtagsSingleton)
|
|
||||||
android.RegisterSingletonType("kythe_java_extract", kytheExtractJavaFactory)
|
|
||||||
|
|
||||||
// Register sdk member types.
|
// Register sdk member types.
|
||||||
android.RegisterSdkMemberType(&headerLibrarySdkMemberType{
|
android.RegisterSdkMemberType(&headerLibrarySdkMemberType{
|
||||||
@@ -71,6 +54,27 @@ func init() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func RegisterJavaBuildComponents(ctx android.RegistrationContext) {
|
||||||
|
ctx.RegisterModuleType("java_defaults", DefaultsFactory)
|
||||||
|
|
||||||
|
ctx.RegisterModuleType("java_library", LibraryFactory)
|
||||||
|
ctx.RegisterModuleType("java_library_static", LibraryStaticFactory)
|
||||||
|
ctx.RegisterModuleType("java_library_host", LibraryHostFactory)
|
||||||
|
ctx.RegisterModuleType("java_binary", BinaryFactory)
|
||||||
|
ctx.RegisterModuleType("java_binary_host", BinaryHostFactory)
|
||||||
|
ctx.RegisterModuleType("java_test", TestFactory)
|
||||||
|
ctx.RegisterModuleType("java_test_helper_library", TestHelperLibraryFactory)
|
||||||
|
ctx.RegisterModuleType("java_test_host", TestHostFactory)
|
||||||
|
ctx.RegisterModuleType("java_import", ImportFactory)
|
||||||
|
ctx.RegisterModuleType("java_import_host", ImportFactoryHost)
|
||||||
|
ctx.RegisterModuleType("java_device_for_host", DeviceForHostFactory)
|
||||||
|
ctx.RegisterModuleType("java_host_for_device", HostForDeviceFactory)
|
||||||
|
ctx.RegisterModuleType("dex_import", DexImportFactory)
|
||||||
|
|
||||||
|
ctx.RegisterSingletonType("logtags", LogtagsSingleton)
|
||||||
|
ctx.RegisterSingletonType("kythe_java_extract", kytheExtractJavaFactory)
|
||||||
|
}
|
||||||
|
|
||||||
func (j *Module) checkSdkVersion(ctx android.ModuleContext) {
|
func (j *Module) checkSdkVersion(ctx android.ModuleContext) {
|
||||||
if j.SocSpecific() || j.DeviceSpecific() ||
|
if j.SocSpecific() || j.DeviceSpecific() ||
|
||||||
(j.ProductSpecific() && ctx.Config().EnforceProductPartitionInterface()) {
|
(j.ProductSpecific() && ctx.Config().EnforceProductPartitionInterface()) {
|
||||||
|
@@ -63,27 +63,12 @@ func testConfig(env map[string]string, bp string, fs map[string][]byte) android.
|
|||||||
func testContext() *android.TestContext {
|
func testContext() *android.TestContext {
|
||||||
|
|
||||||
ctx := android.NewTestArchContext()
|
ctx := android.NewTestArchContext()
|
||||||
ctx.RegisterModuleType("android_app", AndroidAppFactory)
|
RegisterJavaBuildComponents(ctx)
|
||||||
ctx.RegisterModuleType("android_app_certificate", AndroidAppCertificateFactory)
|
RegisterAppBuildComponents(ctx)
|
||||||
ctx.RegisterModuleType("android_app_import", AndroidAppImportFactory)
|
RegisterAARBuildComponents(ctx)
|
||||||
ctx.RegisterModuleType("android_library", AndroidLibraryFactory)
|
|
||||||
ctx.RegisterModuleType("android_test", AndroidTestFactory)
|
|
||||||
ctx.RegisterModuleType("android_test_helper_app", AndroidTestHelperAppFactory)
|
|
||||||
ctx.RegisterModuleType("android_test_import", AndroidTestImportFactory)
|
|
||||||
ctx.RegisterModuleType("java_binary", BinaryFactory)
|
|
||||||
ctx.RegisterModuleType("java_binary_host", BinaryHostFactory)
|
|
||||||
ctx.RegisterModuleType("java_device_for_host", DeviceForHostFactory)
|
|
||||||
ctx.RegisterModuleType("java_host_for_device", HostForDeviceFactory)
|
|
||||||
ctx.RegisterModuleType("java_library", LibraryFactory)
|
|
||||||
ctx.RegisterModuleType("java_library_host", LibraryHostFactory)
|
|
||||||
ctx.RegisterModuleType("java_test", TestFactory)
|
|
||||||
ctx.RegisterModuleType("java_import", ImportFactory)
|
|
||||||
ctx.RegisterModuleType("java_import_host", ImportFactoryHost)
|
|
||||||
ctx.RegisterModuleType("java_defaults", DefaultsFactory)
|
|
||||||
ctx.RegisterModuleType("java_system_modules", SystemModulesFactory)
|
ctx.RegisterModuleType("java_system_modules", SystemModulesFactory)
|
||||||
ctx.RegisterModuleType("java_genrule", genRuleFactory)
|
ctx.RegisterModuleType("java_genrule", genRuleFactory)
|
||||||
ctx.RegisterModuleType("java_plugin", PluginFactory)
|
ctx.RegisterModuleType("java_plugin", PluginFactory)
|
||||||
ctx.RegisterModuleType("dex_import", DexImportFactory)
|
|
||||||
ctx.RegisterModuleType("filegroup", android.FileGroupFactory)
|
ctx.RegisterModuleType("filegroup", android.FileGroupFactory)
|
||||||
ctx.RegisterModuleType("genrule", genrule.GenRuleFactory)
|
ctx.RegisterModuleType("genrule", genrule.GenRuleFactory)
|
||||||
ctx.RegisterModuleType("droiddoc", DroiddocFactory)
|
ctx.RegisterModuleType("droiddoc", DroiddocFactory)
|
||||||
@@ -92,8 +77,6 @@ func testContext() *android.TestContext {
|
|||||||
ctx.RegisterModuleType("prebuilt_stubs_sources", PrebuiltStubsSourcesFactory)
|
ctx.RegisterModuleType("prebuilt_stubs_sources", PrebuiltStubsSourcesFactory)
|
||||||
ctx.RegisterModuleType("java_sdk_library", SdkLibraryFactory)
|
ctx.RegisterModuleType("java_sdk_library", SdkLibraryFactory)
|
||||||
ctx.RegisterModuleType("java_sdk_library_import", sdkLibraryImportFactory)
|
ctx.RegisterModuleType("java_sdk_library_import", sdkLibraryImportFactory)
|
||||||
ctx.RegisterModuleType("override_android_app", OverrideAndroidAppModuleFactory)
|
|
||||||
ctx.RegisterModuleType("override_android_test", OverrideAndroidTestModuleFactory)
|
|
||||||
ctx.RegisterModuleType("prebuilt_apis", PrebuiltApisFactory)
|
ctx.RegisterModuleType("prebuilt_apis", PrebuiltApisFactory)
|
||||||
ctx.PreArchMutators(android.RegisterPrebuiltsPreArchMutators)
|
ctx.PreArchMutators(android.RegisterPrebuiltsPreArchMutators)
|
||||||
ctx.PreArchMutators(android.RegisterPrebuiltsPostDepsMutators)
|
ctx.PreArchMutators(android.RegisterPrebuiltsPostDepsMutators)
|
||||||
|
@@ -78,10 +78,8 @@ func testSdkContext(bp string, fs map[string][]byte) (*android.TestContext, andr
|
|||||||
ctx.RegisterModuleType("package", android.PackageFactory)
|
ctx.RegisterModuleType("package", android.PackageFactory)
|
||||||
|
|
||||||
// from java package
|
// from java package
|
||||||
ctx.RegisterModuleType("android_app_certificate", java.AndroidAppCertificateFactory)
|
java.RegisterJavaBuildComponents(ctx)
|
||||||
ctx.RegisterModuleType("java_defaults", java.DefaultsFactory)
|
java.RegisterAppBuildComponents(ctx)
|
||||||
ctx.RegisterModuleType("java_library", java.LibraryFactory)
|
|
||||||
ctx.RegisterModuleType("java_import", java.ImportFactory)
|
|
||||||
ctx.RegisterModuleType("droidstubs", java.DroidstubsFactory)
|
ctx.RegisterModuleType("droidstubs", java.DroidstubsFactory)
|
||||||
ctx.RegisterModuleType("prebuilt_stubs_sources", java.PrebuiltStubsSourcesFactory)
|
ctx.RegisterModuleType("prebuilt_stubs_sources", java.PrebuiltStubsSourcesFactory)
|
||||||
|
|
||||||
|
@@ -56,8 +56,8 @@ func TestMain(m *testing.M) {
|
|||||||
func testContext(config android.Config) *android.TestContext {
|
func testContext(config android.Config) *android.TestContext {
|
||||||
|
|
||||||
ctx := android.NewTestArchContext()
|
ctx := android.NewTestArchContext()
|
||||||
ctx.RegisterModuleType("android_app", java.AndroidAppFactory)
|
java.RegisterJavaBuildComponents(ctx)
|
||||||
ctx.RegisterModuleType("java_library", java.LibraryFactory)
|
java.RegisterAppBuildComponents(ctx)
|
||||||
ctx.RegisterModuleType("java_system_modules", java.SystemModulesFactory)
|
ctx.RegisterModuleType("java_system_modules", java.SystemModulesFactory)
|
||||||
ctx.PreArchMutators(android.RegisterPrebuiltsPreArchMutators)
|
ctx.PreArchMutators(android.RegisterPrebuiltsPreArchMutators)
|
||||||
ctx.PreArchMutators(android.RegisterPrebuiltsPostDepsMutators)
|
ctx.PreArchMutators(android.RegisterPrebuiltsPostDepsMutators)
|
||||||
|
Reference in New Issue
Block a user