cc: export Stripper struct

The cc stripping logic can be reused for Rust. Export the Stripper
structure for that purpose. Extract the strip-related flags from
builderFlags into StripFlags. Add the method flagsToStripFlags
(similarly to flagsToBuilderFlags).

Add the helper method disableStripping on libraryDecorator.

Test: m
Bug: 153430439
Change-Id: I11aef1abb8d498a4c1672500a7398279edf7f548
This commit is contained in:
Thiébaud Weksteen
2020-08-19 14:53:01 +02:00
parent 3806fc0943
commit d458745f15
12 changed files with 82 additions and 69 deletions

View File

@@ -264,7 +264,7 @@ func vendorSnapshotLibrary(suffix string) (*Module, *vendorSnapshotLibraryDecora
module.stl = nil
module.sanitize = nil
library.StripProperties.Strip.None = BoolPtr(true)
library.disableStripping()
prebuilt := &vendorSnapshotLibraryDecorator{
libraryDecorator: library,
@@ -340,12 +340,12 @@ func (p *vendorSnapshotBinaryDecorator) link(ctx ModuleContext,
}
in := android.PathForModuleSrc(ctx, *p.properties.Src)
builderFlags := flagsToBuilderFlags(flags)
stripFlags := flagsToStripFlags(flags)
p.unstrippedOutputFile = in
binName := in.Base()
if p.needsStrip(ctx) {
if p.stripper.NeedsStrip(ctx) {
stripped := android.PathForModuleOut(ctx, "stripped", binName)
p.stripExecutableOrSharedLib(ctx, in, stripped, builderFlags)
p.stripper.StripExecutableOrSharedLib(ctx, in, stripped, stripFlags)
in = stripped
}