Export Rust SourceProvider types and methods

The AIDL compiler now uses SourceProvider to compiler the generated Rust
code from system/tools/aidl/build/aidl_interface.go using its own
SourceProvider object, which needs access to baseSourceProvider and all
methods of SourceProvider.

Test: mmma system/tools/aidl with 1357705 applied
Change-Id: I226609a7fccca2e7e1bfbad5d69d1821d37e43a1
This commit is contained in:
Andrei Homescu
2020-08-05 06:36:19 -07:00
parent d13b308960
commit c7767922e0
4 changed files with 62 additions and 54 deletions

View File

@@ -83,7 +83,7 @@ type Module struct {
clippy *clippy
cachedToolchain config.Toolchain
sourceProvider SourceProvider
subAndroidMkOnce map[subAndroidMkProvider]bool
subAndroidMkOnce map[SubAndroidMkProvider]bool
outputFile android.OptionalPath
generatedFile android.OptionalPath
@@ -537,7 +537,7 @@ func (mod *Module) Init() android.Module {
mod.AddProperties(mod.clippy.props()...)
}
if mod.sourceProvider != nil {
mod.AddProperties(mod.sourceProvider.sourceProviderProps()...)
mod.AddProperties(mod.sourceProvider.SourceProviderProps()...)
}
android.InitAndroidArchModule(mod, mod.hod, mod.multilib)
@@ -671,10 +671,10 @@ func (mod *Module) GenerateAndroidBuildActions(actx android.ModuleContext) {
flags, deps = mod.clippy.flags(ctx, flags, deps)
}
// SourceProvider needs to call generateSource() before compiler calls compile() so it can provide the source.
// SourceProvider needs to call GenerateSource() before compiler calls compile() so it can provide the source.
// TODO(b/162588681) This shouldn't have to run for every variant.
if mod.sourceProvider != nil {
generatedFile := mod.sourceProvider.generateSource(ctx, deps)
generatedFile := mod.sourceProvider.GenerateSource(ctx, deps)
mod.generatedFile = android.OptionalPathForPath(generatedFile)
mod.sourceProvider.setSubName(ctx.ModuleSubDir())
}
@@ -696,7 +696,7 @@ func (mod *Module) deps(ctx DepsContext) Deps {
deps = mod.compiler.compilerDeps(ctx, deps)
}
if mod.sourceProvider != nil {
deps = mod.sourceProvider.sourceProviderDeps(ctx, deps)
deps = mod.sourceProvider.SourceProviderDeps(ctx, deps)
}
if mod.coverage != nil {