aboutsummaryrefslogtreecommitdiff
path: root/sysprop/sysprop_library.go
diff options
context:
space:
mode:
Diffstat (limited to 'sysprop/sysprop_library.go')
-rw-r--r--sysprop/sysprop_library.go44
1 files changed, 24 insertions, 20 deletions
diff --git a/sysprop/sysprop_library.go b/sysprop/sysprop_library.go
index a398cbce2..a82bf66de 100644
--- a/sysprop/sysprop_library.go
+++ b/sysprop/sysprop_library.go
@@ -86,14 +86,20 @@ func init() {
pctx.HostBinToolVariable("syspropRustCmd", "sysprop_rust")
}
+var SyspropLibraryInfoProvider = blueprint.NewProvider[SyspropLibraryInfo]()
+
+type SyspropLibraryInfo struct {
+ CheckApiFileTimeStamp android.WritablePath
+}
+
// syspropJavaGenRule module generates srcjar containing generated java APIs.
// It also depends on check api rule, so api check has to pass to use sysprop_library.
func (g *syspropJavaGenRule) GenerateAndroidBuildActions(ctx android.ModuleContext) {
var checkApiFileTimeStamp android.WritablePath
- ctx.VisitDirectDeps(func(dep android.Module) {
- if m, ok := dep.(*syspropLibrary); ok {
- checkApiFileTimeStamp = m.checkApiFileTimeStamp
+ ctx.VisitDirectDepsProxy(func(dep android.ModuleProxy) {
+ if info, ok := android.OtherModuleProvider(ctx, dep, SyspropLibraryInfoProvider); ok {
+ checkApiFileTimeStamp = info.CheckApiFileTimeStamp
}
})
@@ -136,9 +142,9 @@ func syspropJavaGenFactory() android.Module {
func (g *syspropRustGenRule) GenerateSource(ctx rust.ModuleContext, deps rust.PathDeps) android.Path {
var checkApiFileTimeStamp android.WritablePath
- ctx.VisitDirectDeps(func(dep android.Module) {
- if m, ok := dep.(*syspropLibrary); ok {
- checkApiFileTimeStamp = m.checkApiFileTimeStamp
+ ctx.VisitDirectDepsProxy(func(dep android.ModuleProxy) {
+ if info, ok := android.OtherModuleProvider(ctx, dep, SyspropLibraryInfoProvider); ok {
+ checkApiFileTimeStamp = info.CheckApiFileTimeStamp
}
})
@@ -207,8 +213,6 @@ type syspropLibrary struct {
properties syspropLibraryProperties
checkApiFileTimeStamp android.WritablePath
- latestApiFile android.OptionalPath
- currentApiFile android.OptionalPath
dumpedApiFile android.WritablePath
}
@@ -335,10 +339,6 @@ func (m *syspropLibrary) BaseModuleName() string {
return m.ModuleBase.Name()
}
-func (m *syspropLibrary) CurrentSyspropApiFile() android.OptionalPath {
- return m.currentApiFile
-}
-
// GenerateAndroidBuildActions of sysprop_library handles API dump and API check.
// generated java_library will depend on these API files.
func (m *syspropLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) {
@@ -357,8 +357,8 @@ func (m *syspropLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext)
apiDirectoryPath := path.Join(ctx.ModuleDir(), "api")
currentApiFilePath := path.Join(apiDirectoryPath, baseModuleName+"-current.txt")
latestApiFilePath := path.Join(apiDirectoryPath, baseModuleName+"-latest.txt")
- m.currentApiFile = android.ExistentPathForSource(ctx, currentApiFilePath)
- m.latestApiFile = android.ExistentPathForSource(ctx, latestApiFilePath)
+ currentApiFile := android.ExistentPathForSource(ctx, currentApiFilePath)
+ latestApiFile := android.ExistentPathForSource(ctx, latestApiFilePath)
// dump API rule
rule := android.NewRuleBuilder(pctx, ctx)
@@ -379,15 +379,15 @@ func (m *syspropLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext)
// method.
var apiFileList android.Paths
currentApiArgument := os.DevNull
- if m.currentApiFile.Valid() {
- apiFileList = append(apiFileList, m.currentApiFile.Path())
- currentApiArgument = m.currentApiFile.String()
+ if currentApiFile.Valid() {
+ apiFileList = append(apiFileList, currentApiFile.Path())
+ currentApiArgument = currentApiFile.String()
}
latestApiArgument := os.DevNull
- if m.latestApiFile.Valid() {
- apiFileList = append(apiFileList, m.latestApiFile.Path())
- latestApiArgument = m.latestApiFile.String()
+ if latestApiFile.Valid() {
+ apiFileList = append(apiFileList, latestApiFile.Path())
+ latestApiArgument = latestApiFile.String()
}
// 1. compares current.txt to api-dump.txt
@@ -431,6 +431,10 @@ func (m *syspropLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext)
Output(m.checkApiFileTimeStamp)
rule.Build(baseModuleName+"_check_api", baseModuleName+" check api")
+
+ android.SetProvider(ctx, SyspropLibraryInfoProvider, SyspropLibraryInfo{
+ CheckApiFileTimeStamp: m.checkApiFileTimeStamp,
+ })
}
func (m *syspropLibrary) AndroidMk() android.AndroidMkData {