Propagate DirectlyInAnyApex to transitive dependencies
`UpdateDirectlyInAnyApex` is used to propagate the ApexProperties `DirectlyInAnyApex` and `InAnyApex` to the direct dependencies of the direct dependencies of an apex bundle. In other words, this will be propagated only to two-levels max dependency from the apex bundle. However, the implementation library of the sdk library can have longer dependency chain from the apex bundle than two levels: e.g. apex -> bcpf -> sdk_lib -> sdk_lib impl lib Therefore, even if the implementation library of the sdk library is registered as a dependency using the "CopyDirectlyInAnyApexTag" dependency tag, the ApexProperties would not be propagated to the implementation library. In order to resolve this issue and recognize the implementation library to be directly in apex and allow instrumentation for the implementation library, this change proposes propagating `DirectlyInAnyApex` and `InAnyApex` to transitive dependencies on top of direct dependencies. Test: DIST_DIR=dist_dir TARGET_BUILD_VARIANT=userdebug PRODUCT=mainline_modules_x86_64 COVERAGE_MODULES="uwb" ./vendor/google/build/build_unbundled_coverage_mainline_module.sh && \ unzip -l out/target/product/module_x86_64/jacoco-report-classes-all.jar and ensure that framework-uwb is included Bug: 341170242 Change-Id: I27d7a74f6e5bc3e0a044d13c619f4897b6b2eb57
This commit is contained in:
@@ -1506,6 +1506,12 @@ var implLibraryTag = sdkLibraryComponentTag{name: "impl-library"}
|
||||
|
||||
var _ android.InstallNeededDependencyTag = sdkLibraryComponentTag{}
|
||||
|
||||
// To satisfy the CopyDirectlyInAnyApexTag interface. Implementation library of the sdk library
|
||||
// in an apex is considered to be directly in the apex, as if it was listed in java_libs.
|
||||
func (t sdkLibraryComponentTag) CopyDirectlyInAnyApex() {}
|
||||
|
||||
var _ android.CopyDirectlyInAnyApexTag = implLibraryTag
|
||||
|
||||
func (t sdkLibraryComponentTag) InstallDepNeeded() bool {
|
||||
return t.name == "xml-permissions-file" || t.name == "impl-library"
|
||||
}
|
||||
|
Reference in New Issue
Block a user