From 7d3f096cf47c23c7f17f6333af553722bc3ea280 Mon Sep 17 00:00:00 2001 From: Bill Peckham Date: Mon, 29 Jun 2020 16:49:15 -0700 Subject: [PATCH] Include shared lib in vendor snapshot if isVndkExt A VDNK extension is an image:vendor module provided by a vendor-modified framework project. So it should be provided to the vendor build as a prebuilt (for the purposes of building against a vendor snapshot). Exempt-From-Owner-Approval: cherry pick from internal branch Bug: 160189878 Test: manual Change-Id: I3eb4794c1be2949b9c85fd52f823e5e14df4ad7d Merged-In: I3eb4794c1be2949b9c85fd52f823e5e14df4ad7d --- cc/vendor_snapshot.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/cc/vendor_snapshot.go b/cc/vendor_snapshot.go index 4dad730d6..fec0c8bb6 100644 --- a/cc/vendor_snapshot.go +++ b/cc/vendor_snapshot.go @@ -569,7 +569,13 @@ func isVendorSnapshotModule(m *Module, moduleDir string) bool { return m.outputFile.Valid() && proptools.BoolDefault(m.VendorProperties.Vendor_available, true) } if l.shared() { - return m.outputFile.Valid() && !m.IsVndk() + if !m.outputFile.Valid() { + return false + } + if !m.IsVndk() { + return true + } + return m.isVndkExt() } return true } @@ -669,7 +675,16 @@ func (c *vendorSnapshotSingleton) GenerateBuildActions(ctx android.SingletonCont // Common properties among snapshots. prop.ModuleName = ctx.ModuleName(m) - prop.RelativeInstallPath = m.RelativeInstallPath() + if m.isVndkExt() { + // vndk exts are installed to /vendor/lib(64)?/vndk(-sp)? + if m.isVndkSp() { + prop.RelativeInstallPath = "vndk-sp" + } else { + prop.RelativeInstallPath = "vndk" + } + } else { + prop.RelativeInstallPath = m.RelativeInstallPath() + } prop.RuntimeLibs = m.Properties.SnapshotRuntimeLibs prop.Required = m.RequiredModuleNames() for _, path := range m.InitRc() {