Merge "Experimental code to support build action caching." into main

This commit is contained in:
Yu Liu
2024-06-19 01:57:12 +00:00
committed by Gerrit Code Review
7 changed files with 206 additions and 5 deletions

View File

@@ -32,6 +32,7 @@ type AconfigReleaseConfigValue struct {
type DeclarationsModule struct {
android.ModuleBase
android.DefaultableModuleBase
blueprint.IncrementalModule
// Properties for "aconfig_declarations"
properties struct {
@@ -217,3 +218,17 @@ func (module *DeclarationsModule) GenerateAndroidBuildActions(ctx android.Module
android.SetProvider(ctx, android.AconfigDeclarationsProviderKey, providerData[""])
android.SetProvider(ctx, android.AconfigReleaseDeclarationsProviderKey, providerData)
}
func (module *DeclarationsModule) BuildActionProviderKeys() []blueprint.AnyProviderKey {
return []blueprint.AnyProviderKey{android.AconfigDeclarationsProviderKey}
}
func (module *DeclarationsModule) PackageContextPath() string {
return pkgPath
}
func (module *DeclarationsModule) CachedRules() []blueprint.Rule {
return []blueprint.Rule{aconfigRule, aconfigTextRule}
}
var _ blueprint.Incremental = &DeclarationsModule{}

View File

@@ -15,13 +15,16 @@
package aconfig
import (
"encoding/gob"
"android/soong/android"
"github.com/google/blueprint"
)
var (
pctx = android.NewPackageContext("android/soong/aconfig")
pkgPath = "android/soong/aconfig"
pctx = android.NewPackageContext(pkgPath)
// For aconfig_declarations: Generate cache file
aconfigRule = pctx.AndroidStaticRule("aconfig",
@@ -106,6 +109,9 @@ func init() {
RegisterBuildComponents(android.InitRegistrationContext)
pctx.HostBinToolVariable("aconfig", "aconfig")
pctx.HostBinToolVariable("soong_zip", "soong_zip")
gob.Register(android.AconfigDeclarationsProviderData{})
gob.Register(android.ModuleOutPath{})
}
func RegisterBuildComponents(ctx android.RegistrationContext) {