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

Commit 7f67c2a6 authored by Ivan Lozano's avatar Ivan Lozano
Browse files

rust: Allow rust_ffi_shared in jni_libs

Allow listing rust_ffi_shared modules as a jni_libs dependency
in conjunction with platform_api: true. This allows inclusion by
android_app modules.

Bug: 237304791
Test: android_app module builds with a rust_ffi_shared dependency.
Change-Id: I3a28e1baa522ad8f9c2aa86f1d23b19ce9f967e1
parent 2ff57f9d
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -106,6 +106,9 @@ type LinkableInterface interface {
	UnstrippedOutputFile() android.Path
	CoverageFiles() android.Paths

	// CoverageOutputFile returns the output archive of gcno coverage information files.
	CoverageOutputFile() android.OptionalPath

	NonCcVariants() bool

	SelectedStl() string
@@ -133,6 +136,12 @@ type LinkableInterface interface {

	UseSdk() bool

	// IsNdk returns true if the library is in the configs known NDK list.
	IsNdk(config android.Config) bool

	// IsStubs returns true if the this is a stubs library.
	IsStubs() bool

	// IsLlndk returns true for both LLNDK (public) and LLNDK-private libs.
	IsLlndk() bool

+1 −1
Original line number Diff line number Diff line
@@ -731,7 +731,7 @@ func collectAppDeps(ctx android.ModuleContext, app appDepsInterface,
		tag := ctx.OtherModuleDependencyTag(module)

		if IsJniDepTag(tag) || cc.IsSharedDepTag(tag) {
			if dep, ok := module.(*cc.Module); ok {
			if dep, ok := module.(cc.LinkableInterface); ok {
				if dep.IsNdk(ctx.Config()) || dep.IsStubs() {
					return false
				}
+13 −0
Original line number Diff line number Diff line
@@ -695,6 +695,19 @@ func (mod *Module) CoverageFiles() android.Paths {
	panic(fmt.Errorf("CoverageFiles called on non-library module: %q", mod.BaseModuleName()))
}

// Rust does not produce gcno files, and therefore does not produce a coverage archive.
func (mod *Module) CoverageOutputFile() android.OptionalPath {
	return android.OptionalPath{}
}

func (mod *Module) IsNdk(config android.Config) bool {
	return false
}

func (mod *Module) IsStubs() bool {
	return false
}

func (mod *Module) installable(apexInfo android.ApexInfo) bool {
	if !proptools.BoolDefault(mod.Installable(), mod.EverInstallable()) {
		return false