diff options
Diffstat (limited to 'java/java.go')
-rw-r--r-- | java/java.go | 52 |
1 files changed, 31 insertions, 21 deletions
diff --git a/java/java.go b/java/java.go index 45e55d53c..38361bfa7 100644 --- a/java/java.go +++ b/java/java.go @@ -432,6 +432,9 @@ type JavaInfo struct { DexJarBuildPath OptionalDexJarPath DexpreopterInfo *DexpreopterInfo + + XrefJavaFiles android.Paths + XrefKotlinFiles android.Paths } var JavaInfoProvider = blueprint.NewProvider[*JavaInfo]() @@ -1172,6 +1175,16 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) { buildComplianceMetadata(ctx) j.createApiXmlFile(ctx) + + if j.dexer.proguardDictionary.Valid() { + android.SetProvider(ctx, ProguardProvider, ProguardInfo{ + ModuleName: ctx.ModuleName(), + Class: "JAVA_LIBRARIES", + ProguardDictionary: j.dexer.proguardDictionary.Path(), + ProguardUsageZip: j.dexer.proguardUsageZip.Path(), + ClassesJar: j.implementationAndResourcesJar, + }) + } } func (j *Library) javaLibraryModuleInfoJSON(ctx android.ModuleContext) *android.ModuleInfoJSON { @@ -1539,6 +1552,11 @@ type testProperties struct { // host test. Device_first_prefer32_data []string `android:"path_device_first_prefer32"` + // Same as data, but will add dependencies on modules using the host's os variation and + // the common arch variation. Useful for a device test that wants to depend on a host + // module, for example to include a custom Tradefed test runner. + Host_common_data []string `android:"path_host_common"` + // Flag to indicate whether or not to create test config automatically. If AndroidTest.xml // doesn't exist next to the Android.bp, this attribute doesn't need to be set to true // explicitly. @@ -1837,6 +1855,7 @@ func (j *Test) generateAndroidBuildActionsWithConfig(ctx android.ModuleContext, j.data = append(j.data, android.PathsForModuleSrc(ctx, j.testProperties.Device_common_data)...) j.data = append(j.data, android.PathsForModuleSrc(ctx, j.testProperties.Device_first_data)...) j.data = append(j.data, android.PathsForModuleSrc(ctx, j.testProperties.Device_first_prefer32_data)...) + j.data = append(j.data, android.PathsForModuleSrc(ctx, j.testProperties.Host_common_data)...) j.extraTestConfigs = android.PathsForModuleSrc(ctx, j.testProperties.Test_options.Extra_test_configs) @@ -3072,12 +3091,7 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) { // file of the module to be named jarName. var outputFile android.Path combinedImplementationJar := android.PathForModuleOut(ctx, "combined", jarName) - var implementationJars android.Paths - if ctx.Config().UseTransitiveJarsInClasspath() { - implementationJars = completeStaticLibsImplementationJars.ToList() - } else { - implementationJars = append(slices.Clone(localJars), staticJars...) - } + implementationJars := completeStaticLibsImplementationJars.ToList() TransformJarsToJar(ctx, combinedImplementationJar, "combine prebuilt implementation jars", implementationJars, android.OptionalPath{}, false, j.properties.Exclude_files, j.properties.Exclude_dirs) outputFile = combinedImplementationJar @@ -3100,12 +3114,7 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) { if reuseImplementationJarAsHeaderJar { headerJar = outputFile } else { - var headerJars android.Paths - if ctx.Config().UseTransitiveJarsInClasspath() { - headerJars = completeStaticLibsHeaderJars.ToList() - } else { - headerJars = append(slices.Clone(localJars), staticHeaderJars...) - } + headerJars := completeStaticLibsHeaderJars.ToList() headerOutputFile := android.PathForModuleOut(ctx, "turbine-combined", jarName) TransformJarsToJar(ctx, headerOutputFile, "combine prebuilt header jars", headerJars, android.OptionalPath{}, false, j.properties.Exclude_files, j.properties.Exclude_dirs) @@ -3169,11 +3178,7 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) { j.exportAidlIncludeDirs = android.PathsForModuleSrc(ctx, j.properties.Aidl.Export_include_dirs) - if ctx.Config().UseTransitiveJarsInClasspath() { - ctx.CheckbuildFile(localJars...) - } else { - ctx.CheckbuildFile(outputFile) - } + ctx.CheckbuildFile(localJars...) if ctx.Device() { // Shared libraries deapexed from prebuilt apexes are no longer supported. @@ -3647,10 +3652,10 @@ type kytheExtractJavaSingleton struct { func (ks *kytheExtractJavaSingleton) GenerateBuildActions(ctx android.SingletonContext) { var xrefTargets android.Paths var xrefKotlinTargets android.Paths - ctx.VisitAllModules(func(module android.Module) { - if javaModule, ok := module.(xref); ok { - xrefTargets = append(xrefTargets, javaModule.XrefJavaFiles()...) - xrefKotlinTargets = append(xrefKotlinTargets, javaModule.XrefKotlinFiles()...) + ctx.VisitAllModuleProxies(func(module android.ModuleProxy) { + if javaInfo, ok := android.OtherModuleProvider(ctx, module, JavaInfoProvider); ok { + xrefTargets = append(xrefTargets, javaInfo.XrefJavaFiles...) + xrefKotlinTargets = append(xrefKotlinTargets, javaInfo.XrefKotlinFiles...) } }) // TODO(asmundak): perhaps emit a rule to output a warning if there were no xrefTargets @@ -3851,4 +3856,9 @@ func setExtraJavaInfo(ctx android.ModuleContext, module android.Module, javaInfo ApexSystemServerDexJars: di.ApexSystemServerDexJars(), } } + + if xr, ok := module.(xref); ok { + javaInfo.XrefJavaFiles = xr.XrefJavaFiles() + javaInfo.XrefKotlinFiles = xr.XrefKotlinFiles() + } } |