Add java_api_contribution_import module type
java_api_contribution_import is a prebuilt module type of java_api_contribution. It's build actions are identical to those of java_api_contribution. Test: m nothing Bug: 300174357 Change-Id: I831806990b37b340af21858eb2bab5de62fdf7a9
This commit is contained in:
28
java/java.go
28
java/java.go
@@ -64,6 +64,7 @@ func registerJavaBuildComponents(ctx android.RegistrationContext) {
|
||||
ctx.RegisterModuleType("dex_import", DexImportFactory)
|
||||
ctx.RegisterModuleType("java_api_library", ApiLibraryFactory)
|
||||
ctx.RegisterModuleType("java_api_contribution", ApiContributionFactory)
|
||||
ctx.RegisterModuleType("java_api_contribution_import", ApiContributionImportFactory)
|
||||
|
||||
// This mutator registers dependencies on dex2oat for modules that should be
|
||||
// dexpreopted. This is done late when the final variants have been
|
||||
@@ -3421,3 +3422,30 @@ func (i *Import) QueueBazelCall(ctx android.BaseModuleContext) {
|
||||
func (i *Import) IsMixedBuildSupported(ctx android.BaseModuleContext) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
type JavaApiContributionImport struct {
|
||||
JavaApiContribution
|
||||
|
||||
prebuilt android.Prebuilt
|
||||
}
|
||||
|
||||
func ApiContributionImportFactory() android.Module {
|
||||
module := &JavaApiContributionImport{}
|
||||
android.InitAndroidModule(module)
|
||||
android.InitDefaultableModule(module)
|
||||
android.InitPrebuiltModule(module, &[]string{""})
|
||||
module.AddProperties(&module.properties)
|
||||
return module
|
||||
}
|
||||
|
||||
func (module *JavaApiContributionImport) Prebuilt() *android.Prebuilt {
|
||||
return &module.prebuilt
|
||||
}
|
||||
|
||||
func (module *JavaApiContributionImport) Name() string {
|
||||
return module.prebuilt.Name(module.ModuleBase.Name())
|
||||
}
|
||||
|
||||
func (ap *JavaApiContributionImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
ap.JavaApiContribution.GenerateAndroidBuildActions(ctx)
|
||||
}
|
||||
|
@@ -2388,3 +2388,22 @@ func TestHeadersOnly(t *testing.T) {
|
||||
javac := ctx.ModuleForTests("foo", "android_common").MaybeRule("javac")
|
||||
android.AssertDeepEquals(t, "javac rule", nil, javac.Rule)
|
||||
}
|
||||
|
||||
func TestJavaApiContributionImport(t *testing.T) {
|
||||
ctx, _ := testJava(t, `
|
||||
java_api_library {
|
||||
name: "foo",
|
||||
api_contributions: ["bar"],
|
||||
}
|
||||
java_api_contribution_import {
|
||||
name: "bar",
|
||||
api_file: "current.txt",
|
||||
}
|
||||
`)
|
||||
m := ctx.ModuleForTests("foo", "android_common")
|
||||
manifest := m.Output("metalava.sbox.textproto")
|
||||
sboxProto := android.RuleBuilderSboxProtoForTests(t, manifest)
|
||||
manifestCommand := sboxProto.Commands[0].GetCommand()
|
||||
sourceFilesFlag := "--source-files current.txt"
|
||||
android.AssertStringDoesContain(t, "source text files not present", manifestCommand, sourceFilesFlag)
|
||||
}
|
||||
|
Reference in New Issue
Block a user