support sandboxed rust rules
This commit adds support for compiling rust rules inside the sbox sandbox. To compile a rust module with sandboxing enabled, the entry point to the crate must be specified via the `crate_root` property, and all input sources and compile-time data must be specified via the `srcs` and `compile_data` properties. Bug: 286077158 Change-Id: I8c9dc5cf7578037a583b4be2e2f73cf20ffd4408
This commit is contained in:
@@ -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 {
|
||||
|
||||
|
Reference in New Issue
Block a user