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

Commit 9f381d5c authored by Martin Stjernholm's avatar Martin Stjernholm Committed by Gerrit Code Review
Browse files

Merge "Only output make targets for uninstallable static libs in the APEX...

Merge "Only output make targets for uninstallable static libs in the APEX unavailable-to-platform case."
parents 9bf30424 9e9bb7f2
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -296,7 +296,10 @@ func (m *ApexModuleBase) CreateApexVariations(mctx BottomUpMutatorContext) []Mod
		for i, mod := range modules {
			platformVariation := i == 0
			if platformVariation && !mctx.Host() && !mod.(ApexModule).AvailableFor(AvailableToPlatform) {
				mod.SkipInstall()
				// Do not install the module for platform, but still allow it to output
				// uninstallable AndroidMk entries in certain cases when they have
				// side effects.
				mod.MakeUninstallable()
			}
			if !platformVariation {
				mod.(ApexModule).apexModuleBase().ApexProperties.Info = m.apexVariations[i-1]
+10 −0
Original line number Diff line number Diff line
@@ -256,6 +256,7 @@ type Module interface {
	InstallForceOS() *OsType
	SkipInstall()
	IsSkipInstall() bool
	MakeUninstallable()
	ExportedToMake() bool
	InitRc() Paths
	VintfFragments() Paths
@@ -1046,6 +1047,15 @@ func (m *ModuleBase) IsSkipInstall() bool {
	return m.commonProperties.SkipInstall == true
}

// Similar to SkipInstall, but if the AndroidMk entry would set
// LOCAL_UNINSTALLABLE_MODULE then this variant may still output that entry
// rather than leaving it out altogether. That happens in cases where it would
// have other side effects, in particular when it adds a NOTICE file target,
// which other install targets might depend on.
func (m *ModuleBase) MakeUninstallable() {
	m.SkipInstall()
}

func (m *ModuleBase) ExportedToMake() bool {
	return m.commonProperties.NamespaceExportedToMake
}
+2 −4
Original line number Diff line number Diff line
@@ -286,10 +286,8 @@ func (library *libraryDecorator) AndroidMkEntries(ctx AndroidMkContext, entries
			entries.SubName = "." + library.stubsVersion()
		}
		entries.ExtraEntries = append(entries.ExtraEntries, func(entries *android.AndroidMkEntries) {
			// Note library.skipInstall() has a special case to get here for static
			// libraries that otherwise would have skipped installation and hence not
			// have executed AndroidMkEntries at all. The reason is to ensure they get
			// a NOTICE file make target which other libraries might depend on.
			// library.makeUninstallable() depends on this to bypass SkipInstall() for
			// static libraries.
			entries.SetBool("LOCAL_UNINSTALLABLE_MODULE", true)
			if library.buildStubs() {
				entries.SetBool("LOCAL_NO_NOTICE_FILE", true)
+4 −4
Original line number Diff line number Diff line
@@ -418,7 +418,7 @@ type installer interface {
	inSanitizerDir() bool
	hostToolPath() android.OptionalPath
	relativeInstallPath() string
	skipInstall(mod *Module)
	makeUninstallable(mod *Module)
}

type xref interface {
@@ -2730,12 +2730,12 @@ func (c *Module) InstallInRecovery() bool {
	return c.InRecovery()
}

func (c *Module) SkipInstall() {
func (c *Module) MakeUninstallable() {
	if c.installer == nil {
		c.ModuleBase.SkipInstall()
		c.ModuleBase.MakeUninstallable()
		return
	}
	c.installer.skipInstall(c)
	c.installer.makeUninstallable(c)
}

func (c *Module) HostToolPath() android.OptionalPath {
+2 −2
Original line number Diff line number Diff line
@@ -107,6 +107,6 @@ func (installer *baseInstaller) relativeInstallPath() string {
	return String(installer.Properties.Relative_install_path)
}

func (installer *baseInstaller) skipInstall(mod *Module) {
	mod.ModuleBase.SkipInstall()
func (installer *baseInstaller) makeUninstallable(mod *Module) {
	mod.ModuleBase.MakeUninstallable()
}
Loading