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

Commit 82089236 authored by Martin Stjernholm's avatar Martin Stjernholm Committed by Automerger Merge Worker
Browse files

Fix missing NOTICE targets for static libs that aren't available to am: 2a6e9d0b

Change-Id: I0f8d012e50b55a3155e73b82edfd8417e52151bf
parents 15b7b413 2a6e9d0b
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -248,6 +248,10 @@ 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.
			entries.SetBool("LOCAL_UNINSTALLABLE_MODULE", true)
			if library.buildStubs() {
				entries.SetBool("LOCAL_NO_NOTICE_FILE", true)
+9 −0
Original line number Diff line number Diff line
@@ -377,6 +377,7 @@ type installer interface {
	inSanitizerDir() bool
	hostToolPath() android.OptionalPath
	relativeInstallPath() string
	skipInstall(mod *Module)
}

type xref interface {
@@ -2588,6 +2589,14 @@ func (c *Module) InstallInRecovery() bool {
	return c.InRecovery()
}

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

func (c *Module) HostToolPath() android.OptionalPath {
	if c.installer == nil {
		return android.OptionalPath{}
+4 −0
Original line number Diff line number Diff line
@@ -101,3 +101,7 @@ func (installer *baseInstaller) hostToolPath() android.OptionalPath {
func (installer *baseInstaller) relativeInstallPath() string {
	return String(installer.Properties.Relative_install_path)
}

func (installer *baseInstaller) skipInstall(mod *Module) {
	mod.ModuleBase.SkipInstall()
}
+12 −0
Original line number Diff line number Diff line
@@ -1303,6 +1303,18 @@ func (library *libraryDecorator) availableFor(what string) bool {
	return android.CheckAvailableForApex(what, list)
}

func (library *libraryDecorator) skipInstall(mod *Module) {
	if library.static() && library.buildStatic() && !library.buildStubs() {
		// If we're asked to skip installation of a static library (in particular
		// when it's not //apex_available:platform) we still want an AndroidMk entry
		// for it to ensure we get the relevant NOTICE file targets (cf.
		// notice_files.mk) that other libraries might depend on. AndroidMkEntries
		// always sets LOCAL_UNINSTALLABLE_MODULE for these entries.
		return
	}
	mod.ModuleBase.SkipInstall()
}

var versioningMacroNamesListKey = android.NewOnceKey("versioningMacroNamesList")

func versioningMacroNamesList(config android.Config) *map[string]string {
+5 −0
Original line number Diff line number Diff line
@@ -134,6 +134,10 @@ func (p *prebuiltLibraryLinker) disablePrebuilt() {
	p.properties.Srcs = nil
}

func (p *prebuiltLibraryLinker) skipInstall(mod *Module) {
	mod.ModuleBase.SkipInstall()
}

func NewPrebuiltLibrary(hod android.HostOrDeviceSupported) (*Module, *libraryDecorator) {
	module, library := NewLibrary(hod)
	module.compiler = nil
@@ -142,6 +146,7 @@ func NewPrebuiltLibrary(hod android.HostOrDeviceSupported) (*Module, *libraryDec
		libraryDecorator: library,
	}
	module.linker = prebuilt
	module.installer = prebuilt

	module.AddProperties(&prebuilt.properties)