Drop host variant of lidbexfile in >=V snapshots
The host variant of libdexfile and its deps were added to module sdk to support the use case of building platform tests without art's source code. This use case is not very relevant today, so we can drop the host variant of these modules from the module sdk. We still need to keep them in <= U snapshots, so this CL uses a hack to drop these libraries only if `SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE` is greater than UDC Test: SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE=UpsideDownCake m out/soong/mainline-sdks/art-module-host-exports-current.zip # verified that libartbase is in the generated Android.bp Test: m out/soong/mainline-sdks/art-module-host-exports-current.zip # verified that libartbase is not in the generated Android.bp Test: In `main`, deleted the host variants from prebuilts/module_sdk locally; enabled art prebuilts; Test: atest --host --no-bazel-mode libunwindstack_unit_test Bug: 329830257 Change-Id: Iab23853ef5e96661a5f5c2989add1be32fb07fbc
This commit is contained in:
parent
219ce55481
commit
cfff924ef9
1 changed files with 22 additions and 0 deletions
|
@ -163,6 +163,20 @@ func (s *sdk) collectMembers(ctx android.ModuleContext) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A denylist of modules whose host variants will be removed from the generated snapshots above the ApiLevel
|
||||||
|
// even if they are listed in the corresponding `sdk`.
|
||||||
|
// The key is the module name
|
||||||
|
// The value is the _last_ dessert where the host variant of the module will be present
|
||||||
|
// This is a workaround to ensure that these modules are generated in <=$ApiLevel, but not in in >=$ApiLevel
|
||||||
|
var ignoreHostModuleVariantsAboveDessert = map[string]android.ApiLevel{
|
||||||
|
// ignore host variant of libdexfile and its transitive dependencies.
|
||||||
|
// The platform test that depends on them (`libunwindstack_unit_test` at the time of writing)
|
||||||
|
// no longer requires a prebuilt variant of libdexfile.
|
||||||
|
"libdexfile": android.ApiLevelUpsideDownCake,
|
||||||
|
"libartpalette": android.ApiLevelUpsideDownCake,
|
||||||
|
"libartbase": android.ApiLevelUpsideDownCake,
|
||||||
|
}
|
||||||
|
|
||||||
// groupMemberVariantsByMemberThenType groups the member variant dependencies so that all the
|
// groupMemberVariantsByMemberThenType groups the member variant dependencies so that all the
|
||||||
// variants of each member are grouped together within an sdkMember instance.
|
// variants of each member are grouped together within an sdkMember instance.
|
||||||
//
|
//
|
||||||
|
@ -181,6 +195,14 @@ func (s *sdk) groupMemberVariantsByMemberThenType(ctx android.ModuleContext, tar
|
||||||
variant := memberVariantDep.variant
|
variant := memberVariantDep.variant
|
||||||
|
|
||||||
name := ctx.OtherModuleName(variant)
|
name := ctx.OtherModuleName(variant)
|
||||||
|
targetApiLevel, err := android.ApiLevelFromUser(ctx, targetBuildRelease.name)
|
||||||
|
if err != nil {
|
||||||
|
targetApiLevel = android.FutureApiLevel
|
||||||
|
}
|
||||||
|
if lastApiLevel, exists := ignoreHostModuleVariantsAboveDessert[name]; exists && targetApiLevel.GreaterThan(lastApiLevel) && memberVariantDep.Host() {
|
||||||
|
// ignore host variant of this module if the targetApiLevel is V and above.
|
||||||
|
continue
|
||||||
|
}
|
||||||
member := byName[name]
|
member := byName[name]
|
||||||
if member == nil {
|
if member == nil {
|
||||||
member = &sdkMember{memberType: memberType, name: name}
|
member = &sdkMember{memberType: memberType, name: name}
|
||||||
|
|
Loading…
Reference in a new issue