Merge "Dedup registration code for module types and singletons" am: 65b174c9c7
am: dffc72bf4e
Change-Id: Ibc9a08348e838fa3b2e45c108de2a996a2641085
This commit is contained in:
@@ -114,3 +114,43 @@ func ModuleTypeFactories() map[string]ModuleFactory {
|
||||
}
|
||||
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("prebuilt_etc", android.PrebuiltEtcFactory)
|
||||
ctx.RegisterModuleType("sh_binary", android.ShBinaryFactory)
|
||||
ctx.RegisterModuleType("android_app_certificate", java.AndroidAppCertificateFactory)
|
||||
ctx.RegisterModuleType("filegroup", android.FileGroupFactory)
|
||||
ctx.RegisterModuleType("java_library", java.LibraryFactory)
|
||||
ctx.RegisterModuleType("java_import", java.ImportFactory)
|
||||
java.RegisterJavaBuildComponents(ctx)
|
||||
ctx.RegisterModuleType("java_system_modules", java.SystemModulesFactory)
|
||||
ctx.RegisterModuleType("android_app", java.AndroidAppFactory)
|
||||
ctx.RegisterModuleType("android_app_import", java.AndroidAppImportFactory)
|
||||
ctx.RegisterModuleType("override_android_app", java.OverrideAndroidAppModuleFactory)
|
||||
java.RegisterAppBuildComponents(ctx)
|
||||
|
||||
ctx.PreArchMutators(android.RegisterDefaultsPreArchMutators)
|
||||
ctx.PreArchMutators(func(ctx android.RegisterMutatorsContext) {
|
||||
|
@@ -34,8 +34,12 @@ type AndroidLibraryDependency interface {
|
||||
}
|
||||
|
||||
func init() {
|
||||
android.RegisterModuleType("android_library_import", AARImportFactory)
|
||||
android.RegisterModuleType("android_library", AndroidLibraryFactory)
|
||||
RegisterAARBuildComponents(android.InitRegistrationContext)
|
||||
}
|
||||
|
||||
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"}
|
||||
|
||||
func init() {
|
||||
android.RegisterModuleType("android_app", AndroidAppFactory)
|
||||
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)
|
||||
RegisterAppBuildComponents(android.InitRegistrationContext)
|
||||
|
||||
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
|
||||
// package splits
|
||||
|
||||
|
40
java/java.go
40
java/java.go
@@ -34,24 +34,7 @@ import (
|
||||
)
|
||||
|
||||
func init() {
|
||||
android.RegisterModuleType("java_defaults", DefaultsFactory)
|
||||
|
||||
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)
|
||||
RegisterJavaBuildComponents(android.InitRegistrationContext)
|
||||
|
||||
// Register sdk member types.
|
||||
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) {
|
||||
if j.SocSpecific() || j.DeviceSpecific() ||
|
||||
(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 {
|
||||
|
||||
ctx := android.NewTestArchContext()
|
||||
ctx.RegisterModuleType("android_app", AndroidAppFactory)
|
||||
ctx.RegisterModuleType("android_app_certificate", AndroidAppCertificateFactory)
|
||||
ctx.RegisterModuleType("android_app_import", AndroidAppImportFactory)
|
||||
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)
|
||||
RegisterJavaBuildComponents(ctx)
|
||||
RegisterAppBuildComponents(ctx)
|
||||
RegisterAARBuildComponents(ctx)
|
||||
ctx.RegisterModuleType("java_system_modules", SystemModulesFactory)
|
||||
ctx.RegisterModuleType("java_genrule", genRuleFactory)
|
||||
ctx.RegisterModuleType("java_plugin", PluginFactory)
|
||||
ctx.RegisterModuleType("dex_import", DexImportFactory)
|
||||
ctx.RegisterModuleType("filegroup", android.FileGroupFactory)
|
||||
ctx.RegisterModuleType("genrule", genrule.GenRuleFactory)
|
||||
ctx.RegisterModuleType("droiddoc", DroiddocFactory)
|
||||
@@ -92,8 +77,6 @@ func testContext() *android.TestContext {
|
||||
ctx.RegisterModuleType("prebuilt_stubs_sources", PrebuiltStubsSourcesFactory)
|
||||
ctx.RegisterModuleType("java_sdk_library", SdkLibraryFactory)
|
||||
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.PreArchMutators(android.RegisterPrebuiltsPreArchMutators)
|
||||
ctx.PreArchMutators(android.RegisterPrebuiltsPostDepsMutators)
|
||||
|
@@ -78,10 +78,8 @@ func testSdkContext(bp string, fs map[string][]byte) (*android.TestContext, andr
|
||||
ctx.RegisterModuleType("package", android.PackageFactory)
|
||||
|
||||
// from java package
|
||||
ctx.RegisterModuleType("android_app_certificate", java.AndroidAppCertificateFactory)
|
||||
ctx.RegisterModuleType("java_defaults", java.DefaultsFactory)
|
||||
ctx.RegisterModuleType("java_library", java.LibraryFactory)
|
||||
ctx.RegisterModuleType("java_import", java.ImportFactory)
|
||||
java.RegisterJavaBuildComponents(ctx)
|
||||
java.RegisterAppBuildComponents(ctx)
|
||||
ctx.RegisterModuleType("droidstubs", java.DroidstubsFactory)
|
||||
ctx.RegisterModuleType("prebuilt_stubs_sources", java.PrebuiltStubsSourcesFactory)
|
||||
|
||||
|
@@ -56,8 +56,8 @@ func TestMain(m *testing.M) {
|
||||
func testContext(config android.Config) *android.TestContext {
|
||||
|
||||
ctx := android.NewTestArchContext()
|
||||
ctx.RegisterModuleType("android_app", java.AndroidAppFactory)
|
||||
ctx.RegisterModuleType("java_library", java.LibraryFactory)
|
||||
java.RegisterJavaBuildComponents(ctx)
|
||||
java.RegisterAppBuildComponents(ctx)
|
||||
ctx.RegisterModuleType("java_system_modules", java.SystemModulesFactory)
|
||||
ctx.PreArchMutators(android.RegisterPrebuiltsPreArchMutators)
|
||||
ctx.PreArchMutators(android.RegisterPrebuiltsPostDepsMutators)
|
||||
|
Reference in New Issue
Block a user