Support mechanism to select a specific version of module sdk prebuilt

This CL is the java_(test_)_import equivalent of aosp/2928483.

With trunk stable, we will have
multiple prebuilts of the prebuilt java .jars in
prebuilts/module_sdk/art/<v>/test-exports/, and this CL introduces a
mechanism to use apex_contributions to select a specific versioned
prebuilt when building.

Implementation details: Create a new source_module_name property to
identify the root module. rdeps referring to the root module will get
redirected if necessary. This property also
becomes the stem, if `stem` is not set explicitly.

Bug: 322175508

Test: Added a unit test
Change-Id: I2dff38acdf2002355586dbb2be8c1f98af4741f7
This commit is contained in:
Spandan Das
2024-01-19 00:22:22 +00:00
parent 2b6dfb554d
commit 3cf0463a47
3 changed files with 117 additions and 4 deletions

View File

@@ -2089,6 +2089,11 @@ type ImportProperties struct {
// that depend on this module, as well as to aidl for this module.
Export_include_dirs []string
}
// Name of the source soong module that gets shadowed by this prebuilt
// If unspecified, follows the naming convention that the source module of
// the prebuilt is Name() without "prebuilt_" prefix
Source_module_name *string
}
type Import struct {
@@ -2162,12 +2167,16 @@ func (j *Import) PrebuiltSrcs() []string {
return j.properties.Jars
}
func (j *Import) BaseModuleName() string {
return proptools.StringDefault(j.properties.Source_module_name, j.ModuleBase.Name())
}
func (j *Import) Name() string {
return j.prebuilt.Name(j.ModuleBase.Name())
}
func (j *Import) Stem() string {
return proptools.StringDefault(j.properties.Stem, j.ModuleBase.Name())
return proptools.StringDefault(j.properties.Stem, j.BaseModuleName())
}
func (a *Import) JacocoReportClassesFile() android.Path {