summaryrefslogtreecommitdiff
path: root/rust/rust.go
diff options
context:
space:
mode:
author mrziwang <mrziwang@google.com> 2024-06-20 16:39:25 -0700
committer mrziwang <mrziwang@google.com> 2024-06-24 11:55:47 -0700
commit0cbd3b0e79a438d9ee35c82e52e18acfaeddab3e (patch)
treeeb8abfbaef1ebdab3bd8d1e58f5575b2cd3dc0a1 /rust/rust.go
parentfe658ac53a137b2666b6109c58d9759305553dc4 (diff)
Add OutputFilesProvider support for singleton
This CL also changes to use OutputFilesProvider on rust module, which has singleton involved. Test: CI Bug: 339477385 Bug: 348494466 Change-Id: Idc5c0fb9f8425f09184d5b73531ee3052e5a076c
Diffstat (limited to 'rust/rust.go')
-rw-r--r--rust/rust.go39
1 files changed, 15 insertions, 24 deletions
diff --git a/rust/rust.go b/rust/rust.go
index 7cd9df4c7..042ba8e17 100644
--- a/rust/rust.go
+++ b/rust/rust.go
@@ -206,27 +206,6 @@ func (mod *Module) IsPrebuilt() bool {
return false
}
-func (mod *Module) OutputFiles(tag string) (android.Paths, error) {
- switch tag {
- case "":
- if mod.sourceProvider != nil && (mod.compiler == nil || mod.compiler.Disabled()) {
- return mod.sourceProvider.Srcs(), nil
- } else {
- if mod.OutputFile().Valid() {
- return android.Paths{mod.OutputFile().Path()}, nil
- }
- return android.Paths{}, nil
- }
- case "unstripped":
- if mod.compiler != nil {
- return android.PathsIfNonNil(mod.compiler.unstrippedOutputFilePath()), nil
- }
- return nil, nil
- default:
- return nil, fmt.Errorf("unsupported module reference tag %q", tag)
- }
-}
-
func (mod *Module) SelectedStl() string {
return ""
}
@@ -986,6 +965,20 @@ func (mod *Module) GenerateAndroidBuildActions(actx android.ModuleContext) {
if mod.testModule {
android.SetProvider(ctx, testing.TestModuleProviderKey, testing.TestModuleProviderData{})
}
+ mod.setOutputFiles(ctx)
+}
+
+func (mod *Module) setOutputFiles(ctx ModuleContext) {
+ if mod.sourceProvider != nil && (mod.compiler == nil || mod.compiler.Disabled()) {
+ ctx.SetOutputFiles(mod.sourceProvider.Srcs(), "")
+ } else if mod.OutputFile().Valid() {
+ ctx.SetOutputFiles(android.Paths{mod.OutputFile().Path()}, "")
+ } else {
+ ctx.SetOutputFiles(android.Paths{}, "")
+ }
+ if mod.compiler != nil {
+ ctx.SetOutputFiles(android.PathsIfNonNil(mod.compiler.unstrippedOutputFilePath()), "unstripped")
+ }
}
func (mod *Module) deps(ctx DepsContext) Deps {
@@ -1469,7 +1462,7 @@ func (mod *Module) depsToPaths(ctx android.ModuleContext) PathDeps {
var srcProviderDepFiles android.Paths
for _, dep := range directSrcProvidersDeps {
- srcs, _ := dep.OutputFiles("")
+ srcs := android.OutputFilesForModule(ctx, dep, "")
srcProviderDepFiles = append(srcProviderDepFiles, srcs...)
}
for _, dep := range directSrcDeps {
@@ -1856,5 +1849,3 @@ var Bool = proptools.Bool
var BoolDefault = proptools.BoolDefault
var String = proptools.String
var StringPtr = proptools.StringPtr
-
-var _ android.OutputFileProducer = (*Module)(nil)