Add test_for property
This change adds 'test_for' property to cc_test_* types. The property is used to mark a module as a test for one or more APEXes, in which case the module has accecss to the private part of the listed APEXes. For example, the module is linked with the actrual shared library in the APEX instead of the stub of the shared library. Exempt-From-Owner-Approval: already +2'ed by owner Bug: 129539670 Bug: 153046163 Test: m Change-Id: I45ed0d7a15540b0d69b2a3b8d9c4cb202adff6f2
This commit is contained in:
19
cc/cc.go
19
cc/cc.go
@@ -2338,6 +2338,15 @@ func (c *Module) depsToPaths(ctx android.ModuleContext) PathDeps {
|
||||
// always link to non-stub variant
|
||||
useThisDep = !depIsStubs
|
||||
}
|
||||
for _, testFor := range c.TestFor() {
|
||||
// Another exception: if this module is bundled with an APEX, then
|
||||
// it is linked with the non-stub variant of a module in the APEX
|
||||
// as if this is part of the APEX.
|
||||
if android.DirectlyInApex(testFor, depName) {
|
||||
useThisDep = !depIsStubs
|
||||
break
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// If building for APEX, use stubs only when it is not from
|
||||
// the same APEX
|
||||
@@ -2764,6 +2773,16 @@ func (c *Module) AvailableFor(what string) bool {
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Module) TestFor() []string {
|
||||
if test, ok := c.linker.(interface {
|
||||
testFor() []string
|
||||
}); ok {
|
||||
return test.testFor()
|
||||
} else {
|
||||
return c.ApexModuleBase.TestFor()
|
||||
}
|
||||
}
|
||||
|
||||
// Return true if the module is ever installable.
|
||||
func (c *Module) EverInstallable() bool {
|
||||
return c.installer != nil &&
|
||||
|
Reference in New Issue
Block a user