Fix apex_vndk with TARGET_VNDK_USE_CORE_VARIANT
When TARGET_VNDK_USE_CORE_VARIANT is set, vndk apex should have only
- vndk sp libraries
- vndk core libraries which are marked as "must use vendor variant"
Previously, vndk sp libs are discarded when TARGET_VNDK_USE_CORE_VARIANT
is set.
Bug: 143374795
Bug: 139772411
Test: TARGET_VNDK_USE_CORE_VARIANT=true m com.android.vndk.current
see if vndk sp lib(e.g. libunwindstakc) is included.
Change-Id: Iae218fff5c354eb874839a1f71be30633fb8a9ab
diff --git a/cc/vndk.go b/cc/vndk.go
index ec8f023..2805e56 100644
--- a/cc/vndk.go
+++ b/cc/vndk.go
@@ -337,6 +337,10 @@
return false
}
+ if !mctx.Device() {
+ return false
+ }
+
if m.Target().NativeBridge == android.NativeBridgeEnabled {
return false
}
@@ -350,8 +354,7 @@
if lib, ok := m.linker.(libraryInterface); ok {
useCoreVariant := m.vndkVersion() == mctx.DeviceConfig().PlatformVndkVersion() &&
- mctx.DeviceConfig().VndkUseCoreVariant() &&
- !inList(m.BaseModuleName(), config.VndkMustUseVendorVariantList)
+ mctx.DeviceConfig().VndkUseCoreVariant() && !m.MustUseVendorVariant()
return lib.shared() && m.UseVndk() && m.IsVndk() && !m.isVndkExt() && !useCoreVariant
}
return false