diff options
Diffstat (limited to 'java/java.go')
| -rw-r--r-- | java/java.go | 45 |
1 files changed, 39 insertions, 6 deletions
diff --git a/java/java.go b/java/java.go index d9a6b3556..900f0e32f 100644 --- a/java/java.go +++ b/java/java.go @@ -402,7 +402,12 @@ type JavaInfo struct { BuiltInstalled string - BuiltInstalledForApex []dexpreopterInstall + // ApexSystemServerDexpreoptInstalls stores the list of dexpreopt artifacts if this is a system server + // jar in an apex. + ApexSystemServerDexpreoptInstalls []DexpreopterInstall + + // ApexSystemServerDexJars stores the list of dex jars if this is a system server jar in an apex. + ApexSystemServerDexJars android.Paths // The config is used for two purposes: // - Passing dexpreopt information about libraries from Soong to Make. This is needed when @@ -590,7 +595,7 @@ var ( ) func IsLibDepTag(depTag blueprint.DependencyTag) bool { - return depTag == libTag || depTag == sdkLibTag + return depTag == libTag } func IsStaticLibDepTag(depTag blueprint.DependencyTag) bool { @@ -1129,7 +1134,8 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) { javaInfo.BootDexJarPath = j.bootDexJarPath javaInfo.UncompressDexState = j.uncompressDexState javaInfo.Active = j.active - javaInfo.BuiltInstalledForApex = j.builtInstalledForApex + javaInfo.ApexSystemServerDexpreoptInstalls = j.apexSystemServerDexpreoptInstalls + javaInfo.ApexSystemServerDexJars = j.apexSystemServerDexJars javaInfo.BuiltInstalled = j.builtInstalled javaInfo.ConfigPath = j.configPath javaInfo.OutputProfilePathOnHost = j.outputProfilePathOnHost @@ -1147,6 +1153,8 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) { setOutputFiles(ctx, j.Module) j.javaLibraryModuleInfoJSON(ctx) + + buildComplianceMetadata(ctx) } func (j *Library) javaLibraryModuleInfoJSON(ctx android.ModuleContext) *android.ModuleInfoJSON { @@ -1170,11 +1178,34 @@ func (j *Library) javaLibraryModuleInfoJSON(ctx android.ModuleContext) *android. if j.hideApexVariantFromMake { moduleInfoJSON.Disabled = true - j.dexpreopter.ModuleInfoJSONForApex(ctx) } return moduleInfoJSON } +func buildComplianceMetadata(ctx android.ModuleContext) { + // Dump metadata that can not be done in android/compliance-metadata.go + complianceMetadataInfo := ctx.ComplianceMetadataInfo() + builtFiles := ctx.GetOutputFiles().DefaultOutputFiles.Strings() + for _, paths := range ctx.GetOutputFiles().TaggedOutputFiles { + builtFiles = append(builtFiles, paths.Strings()...) + } + complianceMetadataInfo.SetListValue(android.ComplianceMetadataProp.BUILT_FILES, android.FirstUniqueStrings(builtFiles)) + + // Static deps + staticDepNames := make([]string, 0) + staticDepFiles := android.Paths{} + ctx.VisitDirectDepsWithTag(staticLibTag, func(module android.Module) { + if dep, ok := android.OtherModuleProvider(ctx, module, JavaInfoProvider); ok { + staticDepNames = append(staticDepNames, module.Name()) + staticDepFiles = append(staticDepFiles, dep.ImplementationJars...) + staticDepFiles = append(staticDepFiles, dep.HeaderJars...) + staticDepFiles = append(staticDepFiles, dep.ResourceJars...) + } + }) + complianceMetadataInfo.SetListValue(android.ComplianceMetadataProp.STATIC_DEPS, android.FirstUniqueStrings(staticDepNames)) + complianceMetadataInfo.SetListValue(android.ComplianceMetadataProp.STATIC_DEP_FILES, android.FirstUniqueStrings(staticDepFiles.Strings())) +} + func (j *Library) getJarInstallDir(ctx android.ModuleContext) android.InstallPath { var installDir android.InstallPath if ctx.InstallInTestcases() { @@ -1857,8 +1888,8 @@ func (j *Test) generateAndroidBuildActionsWithConfig(ctx android.ModuleContext, dataPath := android.DataPath{SrcPath: data} ctx.InstallTestData(pathInTestCases, []android.DataPath{dataPath}) } - if j.installFile != nil { - ctx.InstallFile(pathInTestCases, ctx.ModuleName()+".jar", j.installFile) + if j.outputFile != nil { + ctx.InstallFile(pathInTestCases, ctx.ModuleName()+".jar", j.outputFile) } } } @@ -3173,6 +3204,8 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) { ctx.SetOutputFiles(android.Paths{j.combinedImplementationFile}, "") ctx.SetOutputFiles(android.Paths{j.combinedImplementationFile}, ".jar") + + buildComplianceMetadata(ctx) } func (j *Import) maybeInstall(ctx android.ModuleContext, jarName string, outputFile android.Path) { |