diff --git a/android/module.go b/android/module.go index b0ad89bb2..b2a04b6ea 100644 --- a/android/module.go +++ b/android/module.go @@ -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) diff --git a/cc/cc.go b/cc/cc.go index f45b654da..d71900671 100644 --- a/cc/cc.go +++ b/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 { diff --git a/cc/ndk_library.go b/cc/ndk_library.go index a5c43fe21..10de889d1 100644 --- a/cc/ndk_library.go +++ b/cc/ndk_library.go @@ -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 } diff --git a/cc/ndk_prebuilt.go b/cc/ndk_prebuilt.go index 793ab37fb..8d522d0c4 100644 --- a/cc/ndk_prebuilt.go +++ b/cc/ndk_prebuilt.go @@ -70,7 +70,6 @@ func (*ndkPrebuiltObjectLinker) linkerDeps(ctx DepsContext, deps Deps) Deps { // ./prebuilts/ndk/current/platforms/android-/arch-$(HOST_ARCH)/usr/lib/.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() } diff --git a/cc/sdk.go b/cc/sdk.go index ec57f06f4..2c3fec3fd 100644 --- a/cc/sdk.go +++ b/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("") }