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

Commit 87987fd0 authored by Ivan Lozano's avatar Ivan Lozano Committed by Gerrit Code Review
Browse files

Merge "rust: Add vendor and recovery dylib support." into main

parents 0b5ca6ad add122a8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -10553,6 +10553,7 @@ func TestTrimmedApex(t *testing.T) {
			src: "libc.so",
			min_sdk_version: "29",
			recovery_available: true,
			vendor_available: true,
		}
		api_imports {
			name: "api_imports",
+4 −0
Original line number Diff line number Diff line
@@ -1079,6 +1079,10 @@ func (c *Module) CcLibraryInterface() bool {
	return false
}

func (c *Module) RlibStd() bool {
	panic(fmt.Errorf("RlibStd called on non-Rust module: %q", c.BaseModuleName()))
}

func (c *Module) RustLibraryInterface() bool {
	return false
}
+9 −0
Original line number Diff line number Diff line
@@ -87,6 +87,12 @@ type Snapshottable interface {
	// SnapshotStaticLibs returns the list of static library dependencies for this module.
	SnapshotStaticLibs() []string

	// SnapshotDylibs returns the list of dylib library dependencies for this module.
	SnapshotDylibs() []string

	// SnapshotRlibs returns the list of rlib library dependencies for this module.
	SnapshotRlibs() []string

	// IsSnapshotPrebuilt returns true if this module is a snapshot prebuilt.
	IsSnapshotPrebuilt() bool
}
@@ -239,6 +245,9 @@ type LinkableInterface interface {
	// Dylib returns true if this is an dylib module.
	Dylib() bool

	// RlibStd returns true if this is an rlib which links against an rlib libstd.
	RlibStd() bool

	// Static returns true if this is a static library module.
	Static() bool

+5 −1
Original line number Diff line number Diff line
@@ -100,6 +100,7 @@ const (
	snapshotBinarySuffix = "_binary."
	snapshotObjectSuffix = "_object."
	SnapshotRlibSuffix   = "_rlib."
	SnapshotDylibSuffix  = "_dylib."
)

type SnapshotProperties struct {
@@ -107,6 +108,7 @@ type SnapshotProperties struct {
	Static_libs []string `android:"arch_variant"`
	Shared_libs []string `android:"arch_variant"`
	Rlibs       []string `android:"arch_variant"`
	Dylibs      []string `android:"arch_variant"`
	Vndk_libs   []string `android:"arch_variant"`
	Binaries    []string `android:"arch_variant"`
	Objects     []string `android:"arch_variant"`
@@ -186,6 +188,7 @@ func (s *snapshotModule) DepsMutator(ctx android.BottomUpMutatorContext) {
	staticLibs := collectSnapshotMap(s.properties.Static_libs, snapshotSuffix, SnapshotStaticSuffix)
	sharedLibs := collectSnapshotMap(s.properties.Shared_libs, snapshotSuffix, SnapshotSharedSuffix)
	rlibs := collectSnapshotMap(s.properties.Rlibs, snapshotSuffix, SnapshotRlibSuffix)
	dylibs := collectSnapshotMap(s.properties.Dylibs, snapshotSuffix, SnapshotDylibSuffix)
	vndkLibs := collectSnapshotMap(s.properties.Vndk_libs, "", vndkSuffix)
	for k, v := range vndkLibs {
		sharedLibs[k] = v
@@ -198,11 +201,12 @@ func (s *snapshotModule) DepsMutator(ctx android.BottomUpMutatorContext) {
		StaticLibs: staticLibs,
		SharedLibs: sharedLibs,
		Rlibs:      rlibs,
		Dylibs:     dylibs,
	})
}

type SnapshotInfo struct {
	HeaderLibs, Binaries, Objects, StaticLibs, SharedLibs, Rlibs map[string]string
	HeaderLibs, Binaries, Objects, StaticLibs, SharedLibs, Rlibs, Dylibs map[string]string
}

var SnapshotInfoProvider = blueprint.NewMutatorProvider(SnapshotInfo{}, "deps")
+8 −0
Original line number Diff line number Diff line
@@ -57,6 +57,14 @@ func (m *Module) SnapshotStaticLibs() []string {
	return m.Properties.SnapshotStaticLibs
}

func (m *Module) SnapshotRlibs() []string {
	return []string{}
}

func (m *Module) SnapshotDylibs() []string {
	return []string{}
}

// snapshotLibraryInterface is an interface for libraries captured to VNDK / vendor snapshots.
type snapshotLibraryInterface interface {
	libraryInterface
Loading