diff options
Diffstat (limited to 'rust/library.go')
-rw-r--r-- | rust/library.go | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/rust/library.go b/rust/library.go index 7432a12be..87b25cb9c 100644 --- a/rust/library.go +++ b/rust/library.go @@ -485,6 +485,23 @@ func (library *libraryDecorator) compilerFlags(ctx ModuleContext, flags Flags) F return flags } +func (library *libraryDecorator) compilationSourcesAndData(ctx ModuleContext) android.Paths { + var extraSrcs android.Paths + if library.rlib() { + extraSrcs = android.PathsForModuleSrc(ctx, library.Properties.Rlib.Srcs) + } else if library.dylib() { + extraSrcs = android.PathsForModuleSrc(ctx, library.Properties.Dylib.Srcs) + } else if library.static() { + extraSrcs = android.PathsForModuleSrc(ctx, library.Properties.Static.Srcs) + } else if library.shared() { + extraSrcs = android.PathsForModuleSrc(ctx, library.Properties.Shared.Srcs) + } + return android.Concat( + library.baseCompiler.compilationSourcesAndData(ctx), + extraSrcs, + ) +} + func (library *libraryDecorator) compile(ctx ModuleContext, flags Flags, deps PathDeps) buildOutput { var outputFile android.ModuleOutPath var ret buildOutput @@ -525,7 +542,6 @@ func (library *libraryDecorator) compile(ctx ModuleContext, flags Flags, deps Pa flags.RustFlags = append(flags.RustFlags, deps.depFlags...) flags.LinkFlags = append(flags.LinkFlags, deps.depLinkFlags...) - flags.LinkFlags = append(flags.LinkFlags, deps.linkObjects.Strings()...) if library.dylib() { // We need prefer-dynamic for now to avoid linking in the static stdlib. See: @@ -536,13 +552,13 @@ func (library *libraryDecorator) compile(ctx ModuleContext, flags Flags, deps Pa // Call the appropriate builder for this library type if library.rlib() { - ret.kytheFile = TransformSrctoRlib(ctx, crateRootPath, deps, flags, outputFile).kytheFile + ret.kytheFile = TransformSrctoRlib(ctx, library, crateRootPath, deps, flags, outputFile).kytheFile } else if library.dylib() { - ret.kytheFile = TransformSrctoDylib(ctx, crateRootPath, deps, flags, outputFile).kytheFile + ret.kytheFile = TransformSrctoDylib(ctx, library, crateRootPath, deps, flags, outputFile).kytheFile } else if library.static() { - ret.kytheFile = TransformSrctoStatic(ctx, crateRootPath, deps, flags, outputFile).kytheFile + ret.kytheFile = TransformSrctoStatic(ctx, library, crateRootPath, deps, flags, outputFile).kytheFile } else if library.shared() { - ret.kytheFile = TransformSrctoShared(ctx, crateRootPath, deps, flags, outputFile).kytheFile + ret.kytheFile = TransformSrctoShared(ctx, library, crateRootPath, deps, flags, outputFile).kytheFile } if library.rlib() || library.dylib() { |