rust: move crateRootPath to compiler

Test: m nothing
Bug: 309943184
Change-Id: I45028945357c394301d93ca7995a4f9adf281931
This commit is contained in:
Matthew Maurer
2023-11-20 21:02:40 +00:00
parent cd41653b96
commit d221d31534
2 changed files with 15 additions and 7 deletions

View File

@@ -70,6 +70,8 @@ type compiler interface {
unstrippedOutputFilePath() android.Path
strippedOutputFilePath() android.OptionalPath
crateRootPath(ctx ModuleContext) android.Path
}
func (compiler *baseCompiler) edition() string {
@@ -537,6 +539,15 @@ func (compiler *baseCompiler) relativeInstallPath() string {
return String(compiler.Properties.Relative_install_path)
}
func (compiler *baseCompiler) crateRootPath(ctx ModuleContext) android.Path {
if compiler.Properties.Crate_root == nil {
path, _ := srcPathFromModuleSrcs(ctx, compiler.Properties.Srcs)
return path
} else {
return android.PathForModuleSrc(ctx, *compiler.Properties.Crate_root)
}
}
// Returns the Path for the main source file along with Paths for generated source files from modules listed in srcs.
func srcPathFromModuleSrcs(ctx ModuleContext, srcs []string) (android.Path, android.Paths) {
if len(srcs) == 0 {

View File

@@ -489,7 +489,7 @@ func (library *libraryDecorator) compile(ctx ModuleContext, flags Flags, deps Pa
var outputFile android.ModuleOutPath
var ret buildOutput
var fileName string
crateRootPath := library.crateRootPath(ctx, deps)
crateRootPath := library.crateRootPath(ctx)
if library.sourceProvider != nil {
deps.srcProviderFiles = append(deps.srcProviderFiles, library.sourceProvider.Srcs()...)
@@ -584,15 +584,12 @@ func (library *libraryDecorator) compile(ctx ModuleContext, flags Flags, deps Pa
return ret
}
func (library *libraryDecorator) crateRootPath(ctx ModuleContext, _ PathDeps) android.Path {
func (library *libraryDecorator) crateRootPath(ctx ModuleContext) android.Path {
if library.sourceProvider != nil {
// Assume the first source from the source provider is the library entry point.
return library.sourceProvider.Srcs()[0]
} else if library.baseCompiler.Properties.Crate_root == nil {
path, _ := srcPathFromModuleSrcs(ctx, library.baseCompiler.Properties.Srcs)
return path
} else {
return android.PathForModuleSrc(ctx, *library.baseCompiler.Properties.Crate_root)
return library.baseCompiler.crateRootPath(ctx)
}
}
@@ -607,7 +604,7 @@ func (library *libraryDecorator) rustdoc(ctx ModuleContext, flags Flags,
return android.OptionalPath{}
}
return android.OptionalPathForPath(Rustdoc(ctx, library.crateRootPath(ctx, deps),
return android.OptionalPathForPath(Rustdoc(ctx, library.crateRootPath(ctx),
deps, flags))
}