diff --git a/apex/apex.go b/apex/apex.go index 8e1783ed5..25de1ee17 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -734,12 +734,14 @@ func (a *apexBundle) combineProperties(ctx android.BottomUpMutatorContext) { } } -// 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 { - deviceConfig := ctx.DeviceConfig() +// getImageVariationPair returns a pair for the image variation name as its +// prefix and suffix. The prefix indicates whether it's core/vendor/product and the +// suffix indicates the vndk version when it's vendor or product. +// getImageVariation can simply join the result of this function to get the +// image variation name. +func (a *apexBundle) getImageVariationPair(deviceConfig android.DeviceConfig) (string, string) { if a.vndkApex { - return cc.VendorVariationPrefix + a.vndkVersion(deviceConfig) + return cc.VendorVariationPrefix, a.vndkVersion(deviceConfig) } var prefix string @@ -757,10 +759,17 @@ func (a *apexBundle) getImageVariation(ctx android.BottomUpMutatorContext) strin vndkVersion = deviceConfig.PlatformVndkVersion() } if vndkVersion != "" { - return prefix + vndkVersion + return prefix, vndkVersion } - return android.CoreVariation // The usual case + return android.CoreVariation, "" // The usual case +} + +// 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()) + return prefix + vndkVersion } func (a *apexBundle) DepsMutator(ctx android.BottomUpMutatorContext) { diff --git a/apex/builder.go b/apex/builder.go index 4be34d22b..82a523c78 100644 --- a/apex/builder.go +++ b/apex/builder.go @@ -235,6 +235,12 @@ func (a *apexBundle) buildManifest(ctx android.ModuleContext, provideNativeLibs, optCommands = append(optCommands, "-a jniLibs "+strings.Join(jniLibs, " ")) } + if android.InList(":vndk", requireNativeLibs) { + if _, vndkVersion := a.getImageVariationPair(ctx.DeviceConfig()); vndkVersion != "" { + optCommands = append(optCommands, "-v vndkVersion "+vndkVersion) + } + } + manifestJsonFullOut := android.PathForModuleOut(ctx, "apex_manifest_full.json") defaultVersion := android.DefaultUpdatableModuleVersion if override := ctx.Config().Getenv("OVERRIDE_APEX_MANIFEST_DEFAULT_VERSION"); override != "" {