Merge "Add a property to rust_ffi targets to exclude them from APEXes." into main

This commit is contained in:
Treehugger Robot
2024-08-27 20:13:19 +00:00
committed by Gerrit Code Review
3 changed files with 30 additions and 0 deletions

View File

@@ -70,6 +70,10 @@ type LibraryCompilerProperties struct {
// Whether this library is part of the Rust toolchain sysroot.
Sysroot *bool
// Exclude this rust_ffi target from being included in APEXes.
// TODO(b/362509506): remove this once stubs are properly supported by rust_ffi targets.
Apex_exclude *bool
}
type LibraryMutatedProperties struct {
@@ -122,6 +126,7 @@ type libraryInterface interface {
shared() bool
sysroot() bool
source() bool
apexExclude() bool
// Returns true if the build options for the module have selected a particular build type
buildRlib() bool
@@ -186,6 +191,10 @@ func (library *libraryDecorator) source() bool {
return library.MutatedProperties.VariantIsSource
}
func (library *libraryDecorator) apexExclude() bool {
return Bool(library.Properties.Apex_exclude)
}
func (library *libraryDecorator) buildRlib() bool {
return library.MutatedProperties.BuildRlib && BoolDefault(library.Properties.Rlib.Enabled, true)
}

View File

@@ -294,6 +294,15 @@ func (mod *Module) StaticExecutable() bool {
return mod.StaticallyLinked()
}
func (mod *Module) ApexExclude() bool {
if mod.compiler != nil {
if library, ok := mod.compiler.(libraryInterface); ok {
return library.apexExclude()
}
}
return false
}
func (mod *Module) Object() bool {
// Rust has no modules which produce only object files.
return false
@@ -1863,6 +1872,10 @@ func (mod *Module) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Mo
return false
}
if rustDep, ok := dep.(*Module); ok && rustDep.ApexExclude() {
return false
}
return true
}