summaryrefslogtreecommitdiff
path: root/java/java.go
diff options
context:
space:
mode:
authorAnton Hansson <hansson@google.com>2020-03-27 19:39:48 +0000
committerAnton Hansson <hansson@google.com>2020-03-30 13:55:32 +0100
commit1e65f94a4b2cc7dea1896937c2068b87c899c465 (patch)
treec4d39708e5577501990b1a3c216994254370baf3 /java/java.go
parent0ed9a7d67462fc55dff3d22fc6939dd308ab82f7 (diff)
Add a Tag field to dist to dist a tagged output
Make java_library support this mode of output, to allow callers to dist the classes.jar file rather than the dexed jar file. Bug: 152618077 Test: followup CL Change-Id: I5ba6949833a0fbb95376142aec5096ff5f084c00
Diffstat (limited to 'java/java.go')
-rw-r--r--java/java.go23
1 files changed, 22 insertions, 1 deletions
diff --git a/java/java.go b/java/java.go
index dc0b27244..edf83cfe1 100644
--- a/java/java.go
+++ b/java/java.go
@@ -419,6 +419,8 @@ type Module struct {
// list of the xref extraction files
kytheFiles android.Paths
+
+ distFile android.Path
}
func (j *Module) OutputFiles(tag string) (android.Paths, error) {
@@ -1775,9 +1777,18 @@ func (j *Module) IsInstallable() bool {
// Java libraries (.jar file)
//
+type LibraryProperties struct {
+ Dist struct {
+ // The tag of the output of this module that should be output.
+ Tag *string `android:"arch_variant"`
+ } `android:"arch_variant"`
+}
+
type Library struct {
Module
+ libraryProperties LibraryProperties
+
InstallMixin func(ctx android.ModuleContext, installPath android.Path) (extraInstallDeps android.Paths)
}
@@ -1821,6 +1832,15 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) {
j.installFile = ctx.InstallFile(android.PathForModuleInstall(ctx, "framework"),
ctx.ModuleName()+".jar", j.outputFile, extraInstallDeps...)
}
+
+ // Verify Dist.Tag is set to a supported output
+ if j.libraryProperties.Dist.Tag != nil {
+ distFiles, err := j.OutputFiles(*j.libraryProperties.Dist.Tag)
+ if err != nil {
+ ctx.PropertyErrorf("dist.tag", "%s", err.Error())
+ }
+ j.distFile = distFiles[0]
+ }
}
func (j *Library) DepsMutator(ctx android.BottomUpMutatorContext) {
@@ -1945,7 +1965,8 @@ func LibraryFactory() android.Module {
&module.Module.properties,
&module.Module.deviceProperties,
&module.Module.dexpreoptProperties,
- &module.Module.protoProperties)
+ &module.Module.protoProperties,
+ &module.libraryProperties)
android.InitApexModule(module)
android.InitSdkAwareModule(module)