Support mechanism to select a specific version of module sdk prebuilt
This CL is scoped to cc_* module types. With trunk stable, we will have multiple prebuilts of the cc modules in prebuilts/module_sdk/art/<v>/host-exports/, and this CL introduces a mechanism to use apex_contributions to select a specific versioned prebuilt when building. If a soong module is selected using apex_contributions, all rdeps will get that soong module, which includes - rdep soong modules which might be depending on it via Android.bp - Soong's rule builder HostToolPath API 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: Ic8725602c81999621fcb33ce2a57fe4b9751baa8
This commit is contained in:
14
cc/cc.go
14
cc/cc.go
@@ -1744,7 +1744,7 @@ func (ctx *moduleContextImpl) useClangLld(actx ModuleContext) bool {
|
||||
}
|
||||
|
||||
func (ctx *moduleContextImpl) baseModuleName() string {
|
||||
return ctx.mod.ModuleBase.BaseModuleName()
|
||||
return ctx.mod.BaseModuleName()
|
||||
}
|
||||
|
||||
func (ctx *moduleContextImpl) getVndkExtendsModuleName() string {
|
||||
@@ -4173,6 +4173,18 @@ func (c *Module) Partition() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
type sourceModuleName interface {
|
||||
sourceModuleName() string
|
||||
}
|
||||
|
||||
func (c *Module) BaseModuleName() string {
|
||||
if smn, ok := c.linker.(sourceModuleName); ok && smn.sourceModuleName() != "" {
|
||||
// if the prebuilt module sets a source_module_name in Android.bp, use that
|
||||
return smn.sourceModuleName()
|
||||
}
|
||||
return c.ModuleBase.BaseModuleName()
|
||||
}
|
||||
|
||||
var Bool = proptools.Bool
|
||||
var BoolDefault = proptools.BoolDefault
|
||||
var BoolPtr = proptools.BoolPtr
|
||||
|
Reference in New Issue
Block a user