Don't create SDK variants for native bridge modules
Native bridge modules never need to build against NDK stubs, so don't create SDK variants. Also clear the sdk_version property for modules that don't have SDK variants so that later code doesn't use it to trigger SDK behaviors. Test: m checkbuild Change-Id: I1920fa82e9fab06235f01a62624382efa16cc6e3
This commit is contained in:
parent
86cc40a74c
commit
94e347e6a5
5 changed files with 15 additions and 8 deletions
|
@ -2427,10 +2427,6 @@ func (m *ModuleBase) MakeAsPlatform() {
|
|||
m.commonProperties.System_ext_specific = boolPtr(false)
|
||||
}
|
||||
|
||||
func (m *ModuleBase) EnableNativeBridgeSupportByDefault() {
|
||||
m.commonProperties.Native_bridge_supported = boolPtr(true)
|
||||
}
|
||||
|
||||
func (m *ModuleBase) MakeAsSystemExt() {
|
||||
m.commonProperties.Vendor = boolPtr(false)
|
||||
m.commonProperties.Proprietary = boolPtr(false)
|
||||
|
|
3
cc/cc.go
3
cc/cc.go
|
@ -1046,7 +1046,8 @@ func (c *Module) UseVndk() bool {
|
|||
}
|
||||
|
||||
func (c *Module) canUseSdk() bool {
|
||||
return c.Os() == android.Android && !c.UseVndk() && !c.InRamdisk() && !c.InRecovery() && !c.InVendorRamdisk()
|
||||
return c.Os() == android.Android && c.Target().NativeBridge == android.NativeBridgeDisabled &&
|
||||
!c.UseVndk() && !c.InRamdisk() && !c.InRecovery() && !c.InVendorRamdisk()
|
||||
}
|
||||
|
||||
func (c *Module) UseSdk() bool {
|
||||
|
|
|
@ -354,6 +354,5 @@ func newStubLibrary() *Module {
|
|||
func NdkLibraryFactory() android.Module {
|
||||
module := newStubLibrary()
|
||||
android.InitAndroidArchModule(module, android.DeviceSupported, android.MultilibBoth)
|
||||
module.ModuleBase.EnableNativeBridgeSupportByDefault()
|
||||
return module
|
||||
}
|
||||
|
|
|
@ -70,7 +70,6 @@ func (*ndkPrebuiltObjectLinker) linkerDeps(ctx DepsContext, deps Deps) Deps {
|
|||
// ./prebuilts/ndk/current/platforms/android-<sdk_version>/arch-$(HOST_ARCH)/usr/lib/<NAME>.o.
|
||||
func NdkPrebuiltObjectFactory() android.Module {
|
||||
module := newBaseModule(android.DeviceSupported, android.MultilibBoth)
|
||||
module.ModuleBase.EnableNativeBridgeSupportByDefault()
|
||||
module.linker = &ndkPrebuiltObjectLinker{
|
||||
objectLinker: objectLinker{
|
||||
baseLinker: NewBaseLinker(nil),
|
||||
|
@ -150,7 +149,6 @@ func NdkPrebuiltStaticStlFactory() android.Module {
|
|||
module.Properties.AlwaysSdk = true
|
||||
module.Properties.Sdk_version = StringPtr("current")
|
||||
module.stl.Properties.Stl = StringPtr("none")
|
||||
module.ModuleBase.EnableNativeBridgeSupportByDefault()
|
||||
return module.Init()
|
||||
}
|
||||
|
||||
|
|
13
cc/sdk.go
13
cc/sdk.go
|
@ -38,18 +38,31 @@ func sdkMutator(ctx android.BottomUpMutatorContext) {
|
|||
ctx.CreateVariations("sdk")
|
||||
} else if m.UseSdk() || m.SplitPerApiLevel() {
|
||||
modules := ctx.CreateVariations("", "sdk")
|
||||
|
||||
// Clear the sdk_version property for the platform (non-SDK) variant so later code
|
||||
// doesn't get confused by it.
|
||||
modules[0].(*Module).Properties.Sdk_version = nil
|
||||
|
||||
// Mark the SDK variant.
|
||||
modules[1].(*Module).Properties.IsSdkVariant = true
|
||||
|
||||
if ctx.Config().UnbundledBuildApps() {
|
||||
// For an unbundled apps build, hide the platform variant from Make.
|
||||
modules[0].(*Module).Properties.HideFromMake = true
|
||||
modules[0].(*Module).Properties.PreventInstall = true
|
||||
} else {
|
||||
// For a platform build, mark the SDK variant so that it gets a ".sdk" suffix when
|
||||
// exposed to Make.
|
||||
modules[1].(*Module).Properties.SdkAndPlatformVariantVisibleToMake = true
|
||||
modules[1].(*Module).Properties.PreventInstall = true
|
||||
}
|
||||
ctx.AliasVariation("")
|
||||
} else {
|
||||
if m, ok := ctx.Module().(*Module); ok {
|
||||
// Clear the sdk_version property for modules that don't have an SDK variant so
|
||||
// later code doesn't get confused by it.
|
||||
m.Properties.Sdk_version = nil
|
||||
}
|
||||
ctx.CreateVariations("")
|
||||
ctx.AliasVariation("")
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue