diff --git a/cc/linkable.go b/cc/linkable.go index c58bfdfbd..2316d865c 100644 --- a/cc/linkable.go +++ b/cc/linkable.go @@ -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 diff --git a/java/app.go b/java/app.go index 8ff5d91c2..23a9816b4 100755 --- a/java/app.go +++ b/java/app.go @@ -740,7 +740,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 } diff --git a/rust/rust.go b/rust/rust.go index 48419eb8e..d5d492971 100644 --- a/rust/rust.go +++ b/rust/rust.go @@ -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