Ignore some prebuilt vndk libs for trunk-stable next

Source tree may include prebuilt vndk snapshot libs that are newer
than or equal to the PLATFORM_VNDK_VERSION.
Ignore those prebuilt vndk snapshot libs.

Bug: 296488609
Test: lunch cf_x86_64_phone-next-userdebug; m nothing
Change-Id: I3adaf3b7636f53884f08540959d2ec2fddfb6921
This commit is contained in:
Justin Yun 2023-08-18 17:51:14 +09:00
parent c21f48def3
commit f14beafb7c
3 changed files with 21 additions and 3 deletions

View file

@ -80,6 +80,10 @@ func apexVndkMutator(mctx android.TopDownMutatorContext) {
// config targets the 'current' VNDK (see `vndkVersion`).
ab.Disable()
}
if proptools.String(ab.vndkProperties.Vndk_version) != "" &&
apiLevel.GreaterThanOrEqualTo(android.ApiLevelOrPanic(mctx, mctx.DeviceConfig().PlatformVndkVersion())) {
ab.Disable()
}
}
}

View file

@ -352,13 +352,21 @@ func IsForVndkApex(mctx android.BottomUpMutatorContext, m *Module) bool {
return false
}
// prebuilt vndk modules should match with device
// TODO(b/142675459): Use enabled: to select target device in vndk_prebuilt_shared
// When b/142675459 is landed, remove following check
if p, ok := m.linker.(*vndkPrebuiltLibraryDecorator); ok && !p.MatchesWithDevice(mctx.DeviceConfig()) {
if p, ok := m.linker.(*vndkPrebuiltLibraryDecorator); ok {
// prebuilt vndk modules should match with device
if !p.MatchesWithDevice(mctx.DeviceConfig()) {
return false
}
// ignore prebuilt vndk modules that are newer than or equal to the platform vndk version
platformVndkApiLevel := android.ApiLevelOrPanic(mctx, mctx.DeviceConfig().PlatformVndkVersion())
if platformVndkApiLevel.LessThanOrEqualTo(android.ApiLevelOrPanic(mctx, p.Version())) {
return false
}
}
if lib, ok := m.linker.(libraryInterface); ok {
// VNDK APEX for VNDK-Lite devices will have VNDK-SP libraries from core variants
if mctx.DeviceConfig().VndkVersion() == "" {

View file

@ -131,6 +131,12 @@ func (p *vndkPrebuiltLibraryDecorator) singleSourcePath(ctx ModuleContext) andro
func (p *vndkPrebuiltLibraryDecorator) link(ctx ModuleContext,
flags Flags, deps PathDeps, objs Objects) android.Path {
platformVndkApiLevel := android.ApiLevelOrPanic(ctx, ctx.DeviceConfig().PlatformVndkVersion())
if platformVndkApiLevel.LessThanOrEqualTo(android.ApiLevelOrPanic(ctx, p.Version())) {
// This prebuilt VNDK module is not required for the current build
ctx.Module().HideFromMake()
return nil
}
if !p.MatchesWithDevice(ctx.DeviceConfig()) {
ctx.Module().HideFromMake()