Merge "Remove Device VNDK version usage from Soong" into main
This commit is contained in:
@@ -1436,10 +1436,6 @@ func (c *deviceConfig) VendorPath() string {
|
||||
return "vendor"
|
||||
}
|
||||
|
||||
func (c *deviceConfig) VndkVersion() string {
|
||||
return String(c.config.productVariables.DeviceVndkVersion)
|
||||
}
|
||||
|
||||
func (c *deviceConfig) RecoverySnapshotVersion() string {
|
||||
return String(c.config.productVariables.RecoverySnapshotVersion)
|
||||
}
|
||||
|
28
apex/apex.go
28
apex/apex.go
@@ -737,33 +737,25 @@ func (a *apexBundle) combineProperties(ctx android.BottomUpMutatorContext) {
|
||||
// suffix indicates the vndk version for vendor/product if vndk is enabled.
|
||||
// getImageVariation can simply join the result of this function to get the
|
||||
// image variation name.
|
||||
func (a *apexBundle) getImageVariationPair(deviceConfig android.DeviceConfig) (string, string) {
|
||||
func (a *apexBundle) getImageVariationPair() (string, string) {
|
||||
if a.vndkApex {
|
||||
return cc.VendorVariationPrefix, a.vndkVersion()
|
||||
}
|
||||
|
||||
prefix := android.CoreVariation
|
||||
vndkVersion := ""
|
||||
if deviceConfig.VndkVersion() != "" {
|
||||
if a.SocSpecific() || a.DeviceSpecific() {
|
||||
prefix = cc.VendorVariationPrefix
|
||||
vndkVersion = deviceConfig.VndkVersion()
|
||||
}
|
||||
} else {
|
||||
if a.SocSpecific() || a.DeviceSpecific() {
|
||||
prefix = cc.VendorVariation
|
||||
} else if a.ProductSpecific() {
|
||||
prefix = cc.ProductVariation
|
||||
}
|
||||
if a.SocSpecific() || a.DeviceSpecific() {
|
||||
prefix = cc.VendorVariation
|
||||
} else if a.ProductSpecific() {
|
||||
prefix = cc.ProductVariation
|
||||
}
|
||||
|
||||
return prefix, vndkVersion
|
||||
return prefix, ""
|
||||
}
|
||||
|
||||
// getImageVariation returns the image variant name for this apexBundle. In most cases, it's simply
|
||||
// android.CoreVariation, but gets complicated for the vendor APEXes and the VNDK APEX.
|
||||
func (a *apexBundle) getImageVariation(ctx android.BottomUpMutatorContext) string {
|
||||
prefix, vndkVersion := a.getImageVariationPair(ctx.DeviceConfig())
|
||||
func (a *apexBundle) getImageVariation() string {
|
||||
prefix, vndkVersion := a.getImageVariationPair()
|
||||
return prefix + vndkVersion
|
||||
}
|
||||
|
||||
@@ -773,7 +765,7 @@ func (a *apexBundle) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
// each target os/architectures, appropriate dependencies are selected by their
|
||||
// target.<os>.multilib.<type> groups and are added as (direct) dependencies.
|
||||
targets := ctx.MultiTargets()
|
||||
imageVariation := a.getImageVariation(ctx)
|
||||
imageVariation := a.getImageVariation()
|
||||
|
||||
a.combineProperties(ctx)
|
||||
|
||||
@@ -1534,7 +1526,7 @@ func (a *apexBundle) AddSanitizerDependencies(ctx android.BottomUpMutatorContext
|
||||
// TODO(jiyong): move this info (the sanitizer name, the lib name, etc.) to cc/sanitize.go
|
||||
// Keep only the mechanism here.
|
||||
if sanitizerName == "hwaddress" && strings.HasPrefix(a.Name(), "com.android.runtime") {
|
||||
imageVariation := a.getImageVariation(ctx)
|
||||
imageVariation := a.getImageVariation()
|
||||
for _, target := range ctx.MultiTargets() {
|
||||
if target.Arch.ArchType.Multilib == "lib64" {
|
||||
addDependenciesForNativeModules(ctx, ApexNativeDependencies{
|
||||
|
@@ -293,7 +293,7 @@ func (a *apexBundle) buildManifest(ctx android.ModuleContext, provideNativeLibs,
|
||||
}
|
||||
|
||||
if android.InList(":vndk", requireNativeLibs) {
|
||||
if _, vndkVersion := a.getImageVariationPair(ctx.DeviceConfig()); vndkVersion != "" {
|
||||
if _, vndkVersion := a.getImageVariationPair(); vndkVersion != "" {
|
||||
optCommands = append(optCommands, "-v vndkVersion "+vndkVersion)
|
||||
}
|
||||
}
|
||||
|
4
cc/cc.go
4
cc/cc.go
@@ -1865,7 +1865,6 @@ func (c *Module) DataPaths() []android.DataPath {
|
||||
func getNameSuffixWithVndkVersion(ctx android.ModuleContext, c LinkableInterface) string {
|
||||
// Returns the name suffix for product and vendor variants. If the VNDK version is not
|
||||
// "current", it will append the VNDK version to the name suffix.
|
||||
var vndkVersion string
|
||||
var nameSuffix string
|
||||
if c.InProduct() {
|
||||
if c.ProductSpecific() {
|
||||
@@ -1875,10 +1874,9 @@ func getNameSuffixWithVndkVersion(ctx android.ModuleContext, c LinkableInterface
|
||||
}
|
||||
return ProductSuffix
|
||||
} else {
|
||||
vndkVersion = ctx.DeviceConfig().VndkVersion()
|
||||
nameSuffix = VendorSuffix
|
||||
}
|
||||
if c.VndkVersion() != vndkVersion && c.VndkVersion() != "" {
|
||||
if c.VndkVersion() != "" {
|
||||
// add version suffix only if the module is using different vndk version than the
|
||||
// version in product or vendor partition.
|
||||
nameSuffix += "." + c.VndkVersion()
|
||||
|
@@ -101,21 +101,14 @@ func (g *GenruleExtraProperties) RecoveryVariantNeeded(ctx android.BaseModuleCon
|
||||
|
||||
func (g *GenruleExtraProperties) ExtraImageVariations(ctx android.BaseModuleContext) []string {
|
||||
var variants []string
|
||||
vndkVersion := ctx.DeviceConfig().VndkVersion()
|
||||
vendorVariantRequired := Bool(g.Vendor_available) || Bool(g.Odm_available) || ctx.SocSpecific() || ctx.DeviceSpecific()
|
||||
productVariantRequired := Bool(g.Product_available) || ctx.ProductSpecific()
|
||||
|
||||
if vndkVersion == "" {
|
||||
if vendorVariantRequired {
|
||||
variants = append(variants, VendorVariation)
|
||||
}
|
||||
if productVariantRequired {
|
||||
variants = append(variants, ProductVariation)
|
||||
}
|
||||
} else {
|
||||
if vendorVariantRequired {
|
||||
variants = append(variants, VendorVariationPrefix+vndkVersion)
|
||||
}
|
||||
if vendorVariantRequired {
|
||||
variants = append(variants, VendorVariation)
|
||||
}
|
||||
if productVariantRequired {
|
||||
variants = append(variants, ProductVariation)
|
||||
}
|
||||
|
||||
return variants
|
||||
|
39
cc/image.go
39
cc/image.go
@@ -428,17 +428,8 @@ func MutateImage(mctx android.BaseModuleContext, m ImageMutatableModule) {
|
||||
var vendorVariants []string
|
||||
var productVariants []string
|
||||
|
||||
boardVndkVersion := mctx.DeviceConfig().VndkVersion()
|
||||
needVndkVersionVendorVariantForLlndk := false
|
||||
if boardVndkVersion != "" {
|
||||
boardVndkApiLevel, err := android.ApiLevelFromUser(mctx, boardVndkVersion)
|
||||
if err == nil && !boardVndkApiLevel.IsPreview() {
|
||||
// VNDK snapshot newer than v30 has LLNDK stub libraries.
|
||||
// Only the VNDK version less than or equal to v30 requires generating the vendor
|
||||
// variant of the VNDK version from the source tree.
|
||||
needVndkVersionVendorVariantForLlndk = boardVndkApiLevel.LessThanOrEqualTo(android.ApiLevelOrPanic(mctx, "30"))
|
||||
}
|
||||
}
|
||||
|
||||
if m.NeedsLlndkVariants() {
|
||||
// This is an LLNDK library. The implementation of the library will be on /system,
|
||||
// and vendor and product variants will be created with LLNDK stubs.
|
||||
@@ -449,13 +440,13 @@ func MutateImage(mctx android.BaseModuleContext, m ImageMutatableModule) {
|
||||
// Generate vendor variants for boardVndkVersion only if the VNDK snapshot does not
|
||||
// provide the LLNDK stub libraries.
|
||||
if needVndkVersionVendorVariantForLlndk {
|
||||
vendorVariants = append(vendorVariants, boardVndkVersion)
|
||||
vendorVariants = append(vendorVariants, "")
|
||||
}
|
||||
} else if m.NeedsVendorPublicLibraryVariants() {
|
||||
// A vendor public library has the implementation on /vendor, with stub variants
|
||||
// for system and product.
|
||||
coreVariantNeeded = true
|
||||
vendorVariants = append(vendorVariants, boardVndkVersion)
|
||||
vendorVariants = append(vendorVariants, "")
|
||||
productVariants = append(productVariants, "")
|
||||
} else if m.IsSnapshotPrebuilt() {
|
||||
// Make vendor variants only for the versions in BOARD_VNDK_VERSION and
|
||||
@@ -483,21 +474,7 @@ func MutateImage(mctx android.BaseModuleContext, m ImageMutatableModule) {
|
||||
}
|
||||
} else if vendorSpecific && m.SdkVersion() == "" {
|
||||
// This will be available in /vendor (or /odm) only
|
||||
|
||||
// kernel_headers is a special module type whose exported headers
|
||||
// are coming from DeviceKernelHeaders() which is always vendor
|
||||
// dependent. They'll always have both vendor variants.
|
||||
// For other modules, we assume that modules under proprietary
|
||||
// paths are compatible for BOARD_VNDK_VERSION. The other modules
|
||||
// are regarded as AOSP, which is PLATFORM_VNDK_VERSION.
|
||||
if m.KernelHeadersDecorator() {
|
||||
vendorVariants = append(vendorVariants,
|
||||
"",
|
||||
boardVndkVersion,
|
||||
)
|
||||
} else {
|
||||
vendorVariants = append(vendorVariants, "")
|
||||
}
|
||||
vendorVariants = append(vendorVariants, "")
|
||||
} else {
|
||||
// This is either in /system (or similar: /data), or is a
|
||||
// module built with the NDK. Modules built with the NDK
|
||||
@@ -669,14 +646,6 @@ func (c *Module) SetImageVariation(ctx android.BaseModuleContext, variant string
|
||||
m.Properties.VndkVersion = strings.TrimPrefix(variant, VendorVariationPrefix)
|
||||
}
|
||||
squashVendorSrcs(m)
|
||||
|
||||
// Makefile shouldn't know vendor modules other than BOARD_VNDK_VERSION.
|
||||
// Hide other vendor variants to avoid collision.
|
||||
vndkVersion := ctx.DeviceConfig().VndkVersion()
|
||||
if vndkVersion != "current" && vndkVersion != "" && vndkVersion != m.Properties.VndkVersion {
|
||||
m.Properties.HideFromMake = true
|
||||
m.HideFromMake()
|
||||
}
|
||||
} else if strings.HasPrefix(variant, ProductVariation) {
|
||||
m.Properties.ImageVariation = ProductVariation
|
||||
if strings.HasPrefix(variant, ProductVariationPrefix) {
|
||||
|
@@ -17,7 +17,6 @@ package cc
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"strconv"
|
||||
@@ -746,20 +745,6 @@ func (library *libraryDecorator) getLibNameHelper(baseModuleName string, inVendo
|
||||
func (library *libraryDecorator) getLibName(ctx BaseModuleContext) string {
|
||||
name := library.getLibNameHelper(ctx.baseModuleName(), ctx.inVendor(), ctx.inProduct())
|
||||
|
||||
// Replace name with VNDK ext as original lib only when VNDK is enabled
|
||||
if ctx.IsVndkExt() {
|
||||
if ctx.DeviceConfig().VndkVersion() != "" {
|
||||
// vndk-ext lib should have the same name with original lib
|
||||
ctx.VisitDirectDepsWithTag(vndkExtDepTag, func(module android.Module) {
|
||||
originalName := module.(*Module).outputFile.Path()
|
||||
name = strings.TrimSuffix(originalName.Base(), originalName.Ext())
|
||||
})
|
||||
} else {
|
||||
// TODO(b/320208784) : Suggest a solution for former VNDK-ext libraries before VNDK deprecation.
|
||||
log.Printf("VNDK Extension on module %s will not be available once VNDK is deprecated", ctx.baseModuleName())
|
||||
}
|
||||
}
|
||||
|
||||
if ctx.Host() && Bool(library.Properties.Unique_host_soname) {
|
||||
if !strings.HasSuffix(name, "-host") {
|
||||
name = name + "-host"
|
||||
|
@@ -97,8 +97,6 @@ func makeVarsProvider(ctx android.MakeVarsContext) {
|
||||
ctx.Strict("GLOBAL_CLANG_CPPFLAGS_NO_OVERRIDE", "")
|
||||
ctx.Strict("GLOBAL_CLANG_EXTERNAL_CFLAGS_NO_OVERRIDE", "${config.NoOverrideExternalGlobalCflags}")
|
||||
|
||||
ctx.Strict("BOARD_VNDK_VERSION", ctx.DeviceConfig().VndkVersion())
|
||||
|
||||
// Filter vendor_public_library that are exported to make
|
||||
exportedVendorPublicLibraries := []string{}
|
||||
ctx.VisitAllModules(func(module android.Module) {
|
||||
|
@@ -159,11 +159,6 @@ func (p *vndkPrebuiltLibraryDecorator) link(ctx ModuleContext,
|
||||
|
||||
p.androidMkSuffix = p.NameSuffix()
|
||||
|
||||
vndkVersion := ctx.DeviceConfig().VndkVersion()
|
||||
if vndkVersion == p.Version() {
|
||||
p.androidMkSuffix = ""
|
||||
}
|
||||
|
||||
android.SetProvider(ctx, SharedLibraryInfoProvider, SharedLibraryInfo{
|
||||
SharedLibrary: in,
|
||||
Target: ctx.Target(),
|
||||
|
@@ -208,14 +208,6 @@ func (mod *Module) SetImageVariation(ctx android.BaseModuleContext, variant stri
|
||||
if strings.HasPrefix(variant, cc.VendorVariationPrefix) {
|
||||
m.Properties.VndkVersion = strings.TrimPrefix(variant, cc.VendorVariationPrefix)
|
||||
}
|
||||
|
||||
// Makefile shouldn't know vendor modules other than BOARD_VNDK_VERSION.
|
||||
// Hide other vendor variants to avoid collision.
|
||||
vndkVersion := ctx.DeviceConfig().VndkVersion()
|
||||
if vndkVersion != "current" && vndkVersion != "" && vndkVersion != m.Properties.VndkVersion {
|
||||
m.Properties.HideFromMake = true
|
||||
m.HideFromMake()
|
||||
}
|
||||
} else if strings.HasPrefix(variant, cc.ProductVariation) {
|
||||
m.Properties.ImageVariation = cc.ProductVariation
|
||||
if strings.HasPrefix(variant, cc.ProductVariationPrefix) {
|
||||
|
Reference in New Issue
Block a user