Skip writing ninja file for module with a cache hit during incremental build.

This is just the first change, many more will come to make this feature
really work. The main changes included here are:

1. Skip the writing of ninja file if a module has a cache hit.
2. Handle the case where a skipped module doesn't have the build defs
   info for the OrderOnlyStrings dedup logic to work by caching the
   missing info.

Bug: 335718784
Test: local manual tests
Change-Id: I32542bd1e7fd268113e072e7f68b51b293d83d03
This commit is contained in:
Yu Liu
2024-07-30 17:30:45 +00:00
parent 2800675b31
commit f072120c00
3 changed files with 7 additions and 12 deletions

View File

@@ -220,15 +220,10 @@ func (module *DeclarationsModule) GenerateAndroidBuildActions(ctx android.Module
}
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}
return []blueprint.AnyProviderKey{
android.AconfigDeclarationsProviderKey,
android.AconfigReleaseDeclarationsProviderKey,
}
}
var _ blueprint.Incremental = &DeclarationsModule{}

View File

@@ -23,8 +23,7 @@ import (
)
var (
pkgPath = "android/soong/aconfig"
pctx = android.NewPackageContext(pkgPath)
pctx = android.NewPackageContext("android/soong/aconfig")
// For aconfig_declarations: Generate cache file
aconfigRule = pctx.AndroidStaticRule("aconfig",
@@ -111,6 +110,7 @@ func init() {
pctx.HostBinToolVariable("soong_zip", "soong_zip")
gob.Register(android.AconfigDeclarationsProviderData{})
gob.Register(android.AconfigReleaseDeclarationsProviderData{})
gob.Register(android.ModuleOutPath{})
}