diff options
-rw-r--r-- | api/StubLibraries.bp | 12 | ||||
-rw-r--r-- | api/api.go | 27 | ||||
-rw-r--r-- | api/api_test.go | 12 |
3 files changed, 44 insertions, 7 deletions
diff --git a/api/StubLibraries.bp b/api/StubLibraries.bp index 93d20dd199bf..ed5a8f26c0a8 100644 --- a/api/StubLibraries.bp +++ b/api/StubLibraries.bp @@ -341,7 +341,7 @@ java_defaults { } java_library { - name: "android_stubs_current", + name: "android_stubs_current.from-source", static_libs: [ "all-modules-public-stubs", "android-non-updatable.stubs", @@ -351,7 +351,7 @@ java_library { } java_library { - name: "android_system_stubs_current", + name: "android_system_stubs_current.from-source", static_libs: [ "all-modules-system-stubs", "android-non-updatable.stubs.system", @@ -375,7 +375,7 @@ java_library { } java_library { - name: "android_test_stubs_current", + name: "android_test_stubs_current.from-source", static_libs: [ // Updatable modules do not have test APIs, but we want to include their SystemApis, like we // include the SystemApi of framework-non-updatable-sources. @@ -395,7 +395,7 @@ java_library { } java_library { - name: "android_module_lib_stubs_current", + name: "android_module_lib_stubs_current.from-source", defaults: [ "android.jar_defaults", "android_stubs_dists_default", @@ -411,7 +411,7 @@ java_library { } java_library { - name: "android_system_server_stubs_current", + name: "android_system_server_stubs_current.from-source", defaults: [ "android.jar_defaults", "android_stubs_dists_default", @@ -419,7 +419,7 @@ java_library { srcs: [":services-non-updatable-stubs"], installable: false, static_libs: [ - "android_module_lib_stubs_current", + "android_module_lib_stubs_current.from-source", ], dist: { dir: "apistubs/android/system-server", diff --git a/api/api.go b/api/api.go index af817b5666cd..c568a45de5d0 100644 --- a/api/api.go +++ b/api/api.go @@ -96,6 +96,7 @@ type libraryProps struct { Sdk_version *string Static_libs []string Visibility []string + Defaults []string } type fgProps struct { @@ -362,6 +363,30 @@ func createApiContributionDefaults(ctx android.LoadHookContext, modules []string } } +func createFullApiLibraries(ctx android.LoadHookContext) { + javaLibraryNames := []string{ + "android_stubs_current", + "android_system_stubs_current", + "android_test_stubs_current", + "android_module_lib_stubs_current", + "android_system_server_stubs_current", + } + + for _, libraryName := range javaLibraryNames { + props := libraryProps{} + props.Name = proptools.StringPtr(libraryName) + staticLib := libraryName + ".from-source" + if ctx.Config().BuildFromTextStub() { + staticLib = libraryName + ".from-text" + } + props.Static_libs = []string{staticLib} + props.Defaults = []string{"android.jar_defaults"} + props.Visibility = []string{"//visibility:public"} + + ctx.CreateModule(java.LibraryFactory, &props) + } +} + func (a *CombinedApis) createInternalModules(ctx android.LoadHookContext) { bootclasspath := a.properties.Bootclasspath system_server_classpath := a.properties.System_server_classpath @@ -382,6 +407,8 @@ func (a *CombinedApis) createInternalModules(ctx android.LoadHookContext) { createPublicStubsSourceFilegroup(ctx, bootclasspath) createApiContributionDefaults(ctx, bootclasspath) + + createFullApiLibraries(ctx) } func combinedApisModuleFactory() android.Module { diff --git a/api/api_test.go b/api/api_test.go index 15b695ca0d36..1f4c2af32493 100644 --- a/api/api_test.go +++ b/api/api_test.go @@ -19,6 +19,7 @@ import ( "android/soong/android" "android/soong/bp2build" + "android/soong/java" ) func runCombinedApisTestCaseWithRegistrationCtxFunc(t *testing.T, tc bp2build.Bp2buildTestCase, registrationCtxFunc func(ctx android.RegistrationContext)) { @@ -30,7 +31,9 @@ func runCombinedApisTestCaseWithRegistrationCtxFunc(t *testing.T, tc bp2build.Bp func runCombinedApisTestCase(t *testing.T, tc bp2build.Bp2buildTestCase) { t.Helper() - runCombinedApisTestCaseWithRegistrationCtxFunc(t, tc, func(ctx android.RegistrationContext) {}) + runCombinedApisTestCaseWithRegistrationCtxFunc(t, tc, func(ctx android.RegistrationContext) { + ctx.RegisterModuleType("java_defaults", java.DefaultsFactory) + }) } func TestCombinedApisGeneral(t *testing.T) { @@ -42,6 +45,13 @@ func TestCombinedApisGeneral(t *testing.T) { system_server_classpath: ["ssc"], } `, + Filesystem: map[string]string{ + "a/Android.bp": ` + java_defaults { + name: "android.jar_defaults", + } + `, + }, ExpectedBazelTargets: []string{ bp2build.MakeBazelTargetNoRestrictions("merged_txts", "foo-current.txt", bp2build.AttrNameToString{ "scope": `"public"`, |