Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 94e347e6 authored by Colin Cross's avatar Colin Cross
Browse files

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
parent 86cc40a7
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -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)
+2 −1
Original line number Diff line number Diff line
@@ -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 {
+0 −1
Original line number Diff line number Diff line
@@ -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
}
+0 −2
Original line number Diff line number Diff line
@@ -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 −0
Original line number Diff line number Diff line
@@ -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("")
		}