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

Commit d95964a3 authored by dimitry's avatar dimitry Committed by Colin Cross
Browse files

Enable overrides and add stem library properties

This allows modules to override exiting libraries
with custom implementations.

Bug: http://b/114470065
Test: make
Change-Id: I2692a5416a2620ab2268df8998dd2620074adc1f
parent 6028c3bd
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -143,6 +143,9 @@ func (library *libraryDecorator) AndroidMk(ctx AndroidMkContext, ret *android.An
		ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) {
			fmt.Fprintln(w, "LOCAL_SOONG_TOC :=", library.toc().String())
			fmt.Fprintln(w, "LOCAL_SOONG_UNSTRIPPED_BINARY :=", library.unstrippedOutputFile.String())
			if len(library.Properties.Overrides) > 0 {
				fmt.Fprintln(w, "LOCAL_OVERRIDES_MODULES := "+strings.Join(library.Properties.Overrides, " "))
			}
		})
	} else if library.header() {
		ret.Class = "HEADER_LIBRARIES"
+14 −1
Original line number Diff line number Diff line
@@ -77,6 +77,16 @@ type LibraryProperties struct {
		// List versions to generate stubs libs for.
		Versions []string
	}

	// set the name of the output
	Stem *string `android:"arch_variant"`

	// Names of modules to be overridden. Listed modules can only be other shared libraries
	// (in Make or Soong).
	// This does not completely prevent installation of the overridden libraries, but if both
	// binaries would be installed by default (in PRODUCT_PACKAGES) the other library will be removed
	// from PRODUCT_PACKAGES.
	Overrides []string
}

type LibraryMutatedProperties struct {
@@ -428,9 +438,12 @@ type libraryInterface interface {

func (library *libraryDecorator) getLibName(ctx ModuleContext) string {
	name := library.libName
	if name == "" {
		name = String(library.Properties.Stem)
		if name == "" {
			name = ctx.baseModuleName()
		}
	}

	if ctx.isVndkExt() {
		name = ctx.getVndkExtendsModuleName()