diff options
Diffstat (limited to 'java/java.go')
| -rw-r--r-- | java/java.go | 21 | 
1 files changed, 19 insertions, 2 deletions
diff --git a/java/java.go b/java/java.go index 659f98a7c..a003162eb 100644 --- a/java/java.go +++ b/java/java.go @@ -1633,6 +1633,10 @@ type JavaApiLibraryProperties struct {  	// List of shared java libs that this module has dependencies to and  	// should be passed as classpath in javac invocation  	Libs []string + +	// List of java libs that this module has static dependencies to and will be +	// passed in metalava invocation +	Static_libs []string  }  func ApiLibraryFactory() android.Module { @@ -1705,6 +1709,7 @@ func (al *ApiLibrary) DepsMutator(ctx android.BottomUpMutatorContext) {  		ctx.AddDependency(ctx.Module(), javaApiContributionTag, apiContributionName)  	}  	ctx.AddVariationDependencies(nil, libTag, al.properties.Libs...) +	ctx.AddVariationDependencies(nil, staticLibTag, al.properties.Static_libs...)  }  func (al *ApiLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) { @@ -1724,6 +1729,7 @@ func (al *ApiLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) {  	var srcFiles android.Paths  	var classPaths android.Paths +	var staticLibs android.Paths  	ctx.VisitDirectDeps(func(dep android.Module) {  		tag := ctx.OtherModuleDependencyTag(dep)  		switch tag { @@ -1737,6 +1743,9 @@ func (al *ApiLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) {  		case libTag:  			provider := ctx.OtherModuleProvider(dep, JavaInfoProvider).(JavaInfo)  			classPaths = append(classPaths, provider.HeaderJars...) +		case staticLibTag: +			provider := ctx.OtherModuleProvider(dep, JavaInfoProvider).(JavaInfo) +			staticLibs = append(staticLibs, provider.HeaderJars...)  		}  	}) @@ -1761,7 +1770,7 @@ func (al *ApiLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) {  		FlagWithArg("-D ", stubsDir.String())  	rule.Build("metalava", "metalava merged") - +	compiledStubs := android.PathForModuleOut(ctx, ctx.ModuleName(), "stubs.jar")  	al.stubsJar = android.PathForModuleOut(ctx, ctx.ModuleName(), "android.jar")  	var flags javaBuilderFlags @@ -1769,9 +1778,17 @@ func (al *ApiLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) {  	flags.javacFlags = strings.Join(al.properties.Javacflags, " ")  	flags.classpath = classpath(classPaths) -	TransformJavaToClasses(ctx, al.stubsJar, 0, android.Paths{}, +	TransformJavaToClasses(ctx, compiledStubs, 0, android.Paths{},  		android.Paths{al.stubsSrcJar}, flags, android.Paths{}) +	builder := android.NewRuleBuilder(pctx, ctx) +	builder.Command(). +		BuiltTool("merge_zips"). +		Output(al.stubsJar). +		Inputs(android.Paths{compiledStubs}). +		Inputs(staticLibs) +	builder.Build("merge_zips", "merge jar files") +  	ctx.Phony(ctx.ModuleName(), al.stubsJar)  	ctx.SetProvider(JavaInfoProvider, JavaInfo{  |