Loading java/sdk_library.go +23 −0 Original line number Diff line number Diff line Loading @@ -2479,6 +2479,10 @@ func (module *SdkLibraryImport) createInternalModules(mctx android.DefaultableHo if len(scopeProperties.Stub_srcs) > 0 { module.createPrebuiltStubsSources(mctx, apiScope, scopeProperties) } if scopeProperties.Current_api != nil { module.createPrebuiltApiContribution(mctx, apiScope, scopeProperties) } } javaSdkLibraries := javaSdkLibraries(mctx.Config()) Loading Loading @@ -2534,6 +2538,25 @@ func (module *SdkLibraryImport) createPrebuiltStubsSources(mctx android.Defaulta mctx.CreateModule(PrebuiltStubsSourcesFactory, &props) } func (module *SdkLibraryImport) createPrebuiltApiContribution(mctx android.DefaultableHookContext, apiScope *apiScope, scopeProperties *sdkLibraryScopeProperties) { api_file := scopeProperties.Current_api api_surface := &apiScope.name props := struct { Name *string Api_surface *string Api_file *string Visibility []string }{} props.Name = proptools.StringPtr(module.stubsSourceModuleName(apiScope) + ".api.contribution") props.Api_surface = api_surface props.Api_file = api_file props.Visibility = []string{"//visibility:override", "//visibility:public"} mctx.CreateModule(ApiContributionImportFactory, &props) } // Add the dependencies on the child module in the component deps mutator so that it // creates references to the prebuilt and not the source modules. func (module *SdkLibraryImport) ComponentDepsMutator(ctx android.BottomUpMutatorContext) { Loading java/sdk_library_test.go +5 −0 Original line number Diff line number Diff line Loading @@ -74,6 +74,8 @@ func TestJavaSdkLibrary(t *testing.T) { name: "quuz", public: { jars: ["c.jar"], current_api: "api/current.txt", removed_api: "api/removed.txt", }, } java_sdk_library_import { Loading Loading @@ -173,6 +175,9 @@ func TestJavaSdkLibrary(t *testing.T) { android.AssertDeepEquals(t, "qux exports (optional)", []string{}, optionalSdkLibs) } // test if quuz have created the api_contribution module result.ModuleForTests(apiScopePublic.stubsSourceModuleName("quuz")+".api.contribution", "") fooDexJar := result.ModuleForTests("foo", "android_common").Rule("d8") // tests if kotlinc generated files are NOT excluded from output of foo. android.AssertStringDoesNotContain(t, "foo dex", fooDexJar.BuildParams.Args["mergeZipsFlags"], "-stripFile META-INF/*.kotlin_module") Loading Loading
java/sdk_library.go +23 −0 Original line number Diff line number Diff line Loading @@ -2479,6 +2479,10 @@ func (module *SdkLibraryImport) createInternalModules(mctx android.DefaultableHo if len(scopeProperties.Stub_srcs) > 0 { module.createPrebuiltStubsSources(mctx, apiScope, scopeProperties) } if scopeProperties.Current_api != nil { module.createPrebuiltApiContribution(mctx, apiScope, scopeProperties) } } javaSdkLibraries := javaSdkLibraries(mctx.Config()) Loading Loading @@ -2534,6 +2538,25 @@ func (module *SdkLibraryImport) createPrebuiltStubsSources(mctx android.Defaulta mctx.CreateModule(PrebuiltStubsSourcesFactory, &props) } func (module *SdkLibraryImport) createPrebuiltApiContribution(mctx android.DefaultableHookContext, apiScope *apiScope, scopeProperties *sdkLibraryScopeProperties) { api_file := scopeProperties.Current_api api_surface := &apiScope.name props := struct { Name *string Api_surface *string Api_file *string Visibility []string }{} props.Name = proptools.StringPtr(module.stubsSourceModuleName(apiScope) + ".api.contribution") props.Api_surface = api_surface props.Api_file = api_file props.Visibility = []string{"//visibility:override", "//visibility:public"} mctx.CreateModule(ApiContributionImportFactory, &props) } // Add the dependencies on the child module in the component deps mutator so that it // creates references to the prebuilt and not the source modules. func (module *SdkLibraryImport) ComponentDepsMutator(ctx android.BottomUpMutatorContext) { Loading
java/sdk_library_test.go +5 −0 Original line number Diff line number Diff line Loading @@ -74,6 +74,8 @@ func TestJavaSdkLibrary(t *testing.T) { name: "quuz", public: { jars: ["c.jar"], current_api: "api/current.txt", removed_api: "api/removed.txt", }, } java_sdk_library_import { Loading Loading @@ -173,6 +175,9 @@ func TestJavaSdkLibrary(t *testing.T) { android.AssertDeepEquals(t, "qux exports (optional)", []string{}, optionalSdkLibs) } // test if quuz have created the api_contribution module result.ModuleForTests(apiScopePublic.stubsSourceModuleName("quuz")+".api.contribution", "") fooDexJar := result.ModuleForTests("foo", "android_common").Rule("d8") // tests if kotlinc generated files are NOT excluded from output of foo. android.AssertStringDoesNotContain(t, "foo dex", fooDexJar.BuildParams.Args["mergeZipsFlags"], "-stripFile META-INF/*.kotlin_module") Loading