summaryrefslogtreecommitdiff
path: root/java/java.go
diff options
context:
space:
mode:
Diffstat (limited to 'java/java.go')
-rw-r--r--java/java.go52
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()
+ }
}