Only apply apex transition to DCLA libs for now.

Bug: 270339610
Test: mixed_droid.sh
Change-Id: I6a8b7fdefeb504a25256e92647de9b487d5b65a3
This commit is contained in:
Yu Liu 2023-02-22 10:42:15 -08:00
parent a1e3a55810
commit bfb2362cde
2 changed files with 18 additions and 1 deletions

View file

@ -201,6 +201,8 @@ type BazelContext interface {
// (for example, that it is MixedBuildBuildable).
IsModuleNameAllowed(moduleName string, withinApex bool) bool
IsModuleDclaAllowed(moduleName string) bool
// Returns the bazel output base (the root directory for all bazel intermediate outputs).
OutputBase() string
@ -341,6 +343,10 @@ func (m MockBazelContext) IsModuleNameAllowed(_ string, _ bool) bool {
return true
}
func (m MockBazelContext) IsModuleDclaAllowed(_ string) bool {
return true
}
func (m MockBazelContext) OutputBase() string { return m.OutputBaseDir }
func (m MockBazelContext) BuildStatementsToRegister() []*bazel.BuildStatement {
@ -483,6 +489,10 @@ func (n noopBazelContext) IsModuleNameAllowed(_ string, _ bool) bool {
return false
}
func (n noopBazelContext) IsModuleDclaAllowed(_ string) bool {
return false
}
func (m noopBazelContext) BuildStatementsToRegister() []*bazel.BuildStatement {
return []*bazel.BuildStatement{}
}
@ -619,13 +629,17 @@ func (context *mixedBuildBazelContext) IsModuleNameAllowed(moduleName string, wi
if context.bazelEnabledModules[moduleName] {
return true
}
if withinApex && context.bazelDclaEnabledModules[moduleName] {
if withinApex && context.IsModuleDclaAllowed(moduleName) {
return true
}
return context.modulesDefaultToBazel
}
func (context *mixedBuildBazelContext) IsModuleDclaAllowed(moduleName string) bool {
return context.bazelDclaEnabledModules[moduleName]
}
func pwdPrefix() string {
// Darwin doesn't have /proc
if runtime.GOOS != "darwin" {

View file

@ -1920,6 +1920,9 @@ func isUbsanEnabled(c *Module) bool {
func GetApexConfigKey(ctx android.BaseModuleContext) *android.ApexConfigKey {
apexInfo := ctx.Provider(android.ApexInfoProvider).(android.ApexInfo)
if !apexInfo.IsForPlatform() {
if !ctx.Config().BazelContext.IsModuleDclaAllowed(ctx.Module().Name()) {
return nil
}
apexKey := android.ApexConfigKey{
WithinApex: true,
ApexSdkVersion: findApexSdkVersion(ctx, apexInfo).String(),