diff options
| author | 2019-01-18 11:51:25 -0800 | |
|---|---|---|
| committer | 2019-01-23 18:05:18 +0000 | |
| commit | c4efd9cb55239a9cb71286781ef47371d4f391a9 (patch) | |
| tree | 5fbf376c6f2c7b150ffc75b8f5f7913e5a60ce24 /java/java.go | |
| parent | c7f797ea545d0c1c079b88743a4a8107a6195611 (diff) | |
jarjar_rules: accept file-group
This allows a jarjar rule to be shared among multiple targets in
different directories.
Bug: 86259915
Test: use filegroup jarjar_rules
Change-Id: I3fa476c4e87e2460ab9fabfb34229f471c80e6b0
Diffstat (limited to 'java/java.go')
| -rw-r--r-- | java/java.go | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/java/java.go b/java/java.go index 1e5c62867..e64b99eb3 100644 --- a/java/java.go +++ b/java/java.go @@ -313,6 +313,9 @@ type Module struct { // filter out Exclude_srcs, will be used by android.IDEInfo struct expandIDEInfoCompiledSrcs []string + // expanded Jarjar_rules + expandJarjarRules android.Path + dexpreopter } @@ -475,6 +478,7 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) { android.ExtractSourcesDeps(ctx, j.properties.Exclude_srcs) android.ExtractSourcesDeps(ctx, j.properties.Java_resources) android.ExtractSourceDeps(ctx, j.properties.Manifest) + android.ExtractSourceDeps(ctx, j.properties.Jarjar_rules) if j.hasSrcExt(".proto") { protoDeps(ctx, &j.protoProperties) @@ -940,6 +944,10 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars ...android.Path // that IDEInfo struct will use j.expandIDEInfoCompiledSrcs = append(j.expandIDEInfoCompiledSrcs, srcFiles.Strings()...) + if j.properties.Jarjar_rules != nil { + j.expandJarjarRules = ctx.ExpandSource(*j.properties.Jarjar_rules, "jarjar_rules") + } + jarName := ctx.ModuleName() + ".jar" javaSrcFiles := srcFiles.FilterByExt(".java") @@ -1143,17 +1151,16 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars ...android.Path } // jarjar implementation jar if necessary - if j.properties.Jarjar_rules != nil { - jarjar_rules := android.PathForModuleSrc(ctx, *j.properties.Jarjar_rules) + if j.expandJarjarRules != nil { // Transform classes.jar into classes-jarjar.jar jarjarFile := android.PathForModuleOut(ctx, "jarjar", jarName) - TransformJarJar(ctx, jarjarFile, outputFile, jarjar_rules) + TransformJarJar(ctx, jarjarFile, outputFile, j.expandJarjarRules) outputFile = jarjarFile // jarjar resource jar if necessary if j.resourceJar != nil { resourceJarJarFile := android.PathForModuleOut(ctx, "res-jarjar", jarName) - TransformJarJar(ctx, resourceJarJarFile, j.resourceJar, jarjar_rules) + TransformJarJar(ctx, resourceJarJarFile, j.resourceJar, j.expandJarjarRules) j.resourceJar = resourceJarJarFile } @@ -1296,11 +1303,10 @@ func (j *Module) compileJavaHeader(ctx android.ModuleContext, srcFiles, srcJars false, nil, []string{"META-INF"}) headerJar = combinedJar - if j.properties.Jarjar_rules != nil { - jarjar_rules := android.PathForModuleSrc(ctx, *j.properties.Jarjar_rules) + if j.expandJarjarRules != nil { // Transform classes.jar into classes-jarjar.jar jarjarFile := android.PathForModuleOut(ctx, "turbine-jarjar", jarName) - TransformJarJar(ctx, jarjarFile, headerJar, jarjar_rules) + TransformJarJar(ctx, jarjarFile, headerJar, j.expandJarjarRules) headerJar = jarjarFile if ctx.Failed() { return nil @@ -1376,8 +1382,8 @@ func (j *Module) IDEInfo(dpInfo *android.IdeInfo) { dpInfo.Deps = append(dpInfo.Deps, j.CompilerDeps()...) dpInfo.Srcs = append(dpInfo.Srcs, j.expandIDEInfoCompiledSrcs...) dpInfo.Aidl_include_dirs = append(dpInfo.Aidl_include_dirs, j.deviceProperties.Aidl.Include_dirs...) - if j.properties.Jarjar_rules != nil { - dpInfo.Jarjar_rules = append(dpInfo.Jarjar_rules, *j.properties.Jarjar_rules) + if j.expandJarjarRules != nil { + dpInfo.Jarjar_rules = append(dpInfo.Jarjar_rules, j.expandJarjarRules.String()) } } |