summaryrefslogtreecommitdiff
path: root/rust/compiler.go
diff options
context:
space:
mode:
author Matthew Maurer <mmaurer@google.com> 2023-11-20 17:49:25 +0000
committer Matthew Maurer <mmaurer@google.com> 2023-11-20 17:49:25 +0000
commit689d6f63e4cf97b30385f357dd2165207f51d0c0 (patch)
tree2a395f9409bd2f815a05448b589040e0ae4d8d24 /rust/compiler.go
parent38ec22a8168f7819dafd7026f9dae3d79bc85c16 (diff)
rust: Move compiler interface to compiler.go
Refactor cleanup Bug: 309943184 Test: m nothing Change-Id: I7dcb0af64a4db71fdc46c0876b22e5015c02438e
Diffstat (limited to 'rust/compiler.go')
-rw-r--r--rust/compiler.go38
1 files changed, 38 insertions, 0 deletions
diff --git a/rust/compiler.go b/rust/compiler.go
index b3f574d57..3c9f6d4a4 100644
--- a/rust/compiler.go
+++ b/rust/compiler.go
@@ -34,6 +34,44 @@ const (
DylibLinkage
)
+type compiler interface {
+ initialize(ctx ModuleContext)
+ compilerFlags(ctx ModuleContext, flags Flags) Flags
+ cfgFlags(ctx ModuleContext, flags Flags) Flags
+ featureFlags(ctx ModuleContext, flags Flags) Flags
+ compilerProps() []interface{}
+ compile(ctx ModuleContext, flags Flags, deps PathDeps) buildOutput
+ compilerDeps(ctx DepsContext, deps Deps) Deps
+ crateName() string
+ rustdoc(ctx ModuleContext, flags Flags, deps PathDeps) android.OptionalPath
+
+ // Output directory in which source-generated code from dependencies is
+ // copied. This is equivalent to Cargo's OUT_DIR variable.
+ CargoOutDir() android.OptionalPath
+
+ // CargoPkgVersion returns the value of the Cargo_pkg_version property.
+ CargoPkgVersion() string
+
+ // CargoEnvCompat returns whether Cargo environment variables should be used.
+ CargoEnvCompat() bool
+
+ inData() bool
+ install(ctx ModuleContext)
+ relativeInstallPath() string
+ everInstallable() bool
+
+ nativeCoverage() bool
+
+ Disabled() bool
+ SetDisabled()
+
+ stdLinkage(ctx *depsContext) RustLinkage
+ noStdlibs() bool
+
+ unstrippedOutputFilePath() android.Path
+ strippedOutputFilePath() android.OptionalPath
+}
+
func (compiler *baseCompiler) edition() string {
return proptools.StringDefault(compiler.Properties.Edition, config.DefaultEdition)
}