summaryrefslogtreecommitdiff
path: root/rust/compiler.go
diff options
context:
space:
mode:
Diffstat (limited to 'rust/compiler.go')
-rw-r--r--rust/compiler.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/rust/compiler.go b/rust/compiler.go
index d6c52e8d4..3fa3ccd69 100644
--- a/rust/compiler.go
+++ b/rust/compiler.go
@@ -82,6 +82,9 @@ type BaseCompilerProperties struct {
// not directly used as source files.
Crate_root *string `android:"path,arch_variant"`
+ // Additional data files that are used during compilation only. These are not accessible at runtime.
+ Compile_data []string `android:"path,arch_variant"`
+
// name of the lint set that should be used to validate this module.
//
// Possible values are "default" (for using a sensible set of lints
@@ -343,6 +346,23 @@ func (compiler *baseCompiler) compile(ctx ModuleContext, flags Flags, deps PathD
panic(fmt.Errorf("baseCrater doesn't know how to crate things!"))
}
+func (compile *baseCompiler) crateRoot(ctx ModuleContext) android.Path {
+ if compile.Properties.Crate_root != nil {
+ return android.PathForModuleSrc(ctx, *compile.Properties.Crate_root)
+ }
+ return nil
+}
+
+// compilationSourcesAndData returns a list of files necessary to complete the compilation.
+// This includes the rust source files as well as any other data files that
+// are referenced during the build.
+func (compile *baseCompiler) compilationSourcesAndData(ctx ModuleContext) android.Paths {
+ return android.PathsForModuleSrc(ctx, android.Concat(
+ compile.Properties.Srcs,
+ compile.Properties.Compile_data,
+ ))
+}
+
func (compiler *baseCompiler) rustdoc(ctx ModuleContext, flags Flags,
deps PathDeps) android.OptionalPath {