diff options
Diffstat (limited to 'rust/toolchain_library.go')
| -rw-r--r-- | rust/toolchain_library.go | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/rust/toolchain_library.go b/rust/toolchain_library.go index 054104ccc..b174daf28 100644 --- a/rust/toolchain_library.go +++ b/rust/toolchain_library.go @@ -52,6 +52,16 @@ type toolchainLibraryDecorator struct { Properties toolchainLibraryProperties } +// toolchainCrateRoot implements toolchainCompiler. +func (t *toolchainLibraryDecorator) toolchainCrateRoot() *string { + return t.Properties.Toolchain_crate_root +} + +// toolchainSrcs implements toolchainCompiler. +func (t *toolchainLibraryDecorator) toolchainSrcs() []string { + return t.Properties.Toolchain_srcs +} + // rust_toolchain_library produces all rust variants. func rustToolchainLibraryFactory() android.Module { module, library := NewRustLibrary(android.HostAndDeviceSupported) @@ -87,12 +97,19 @@ func initToolchainLibrary(module *Module, library *libraryDecorator) android.Mod return module.Init() } +type toolchainCompiler interface { + toolchainCrateRoot() *string + toolchainSrcs() []string +} + +var _ toolchainCompiler = (*toolchainLibraryDecorator)(nil) + func rustSetToolchainSource(ctx android.LoadHookContext) { - if toolchainLib, ok := ctx.Module().(*Module).compiler.(*toolchainLibraryDecorator); ok { + if toolchainLib, ok := ctx.Module().(*Module).compiler.(toolchainCompiler); ok { prefix := filepath.Join("linux-x86", GetRustPrebuiltVersion(ctx)) - versionedCrateRoot := path.Join(prefix, android.String(toolchainLib.Properties.Toolchain_crate_root)) - versionedSrcs := make([]string, len(toolchainLib.Properties.Toolchain_srcs)) - for i, src := range toolchainLib.Properties.Toolchain_srcs { + versionedCrateRoot := path.Join(prefix, android.String(toolchainLib.toolchainCrateRoot())) + versionedSrcs := make([]string, len(toolchainLib.toolchainSrcs())) + for i, src := range toolchainLib.toolchainSrcs() { versionedSrcs[i] = path.Join(prefix, src) } @@ -105,7 +122,7 @@ func rustSetToolchainSource(ctx android.LoadHookContext) { p.Srcs = versionedSrcs ctx.AppendProperties(p) } else { - ctx.ModuleErrorf("Called rustSetToolchainSource on a non-Rust Module.") + ctx.ModuleErrorf("Called rustSetToolchainSource on a non-Toolchain Module.") } } |
