From f072120c00898157f5306161a1da06ecc2c1fd6a Mon Sep 17 00:00:00 2001 From: Yu Liu Date: Tue, 30 Jul 2024 17:30:45 +0000 Subject: [PATCH] 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 --- aconfig/aconfig_declarations.go | 13 ++++--------- aconfig/init.go | 4 ++-- android/module.go | 2 +- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/aconfig/aconfig_declarations.go b/aconfig/aconfig_declarations.go index 9e3d291b6..9b638e752 100644 --- a/aconfig/aconfig_declarations.go +++ b/aconfig/aconfig_declarations.go @@ -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{} diff --git a/aconfig/init.go b/aconfig/init.go index de155ab52..5fa7e76ae 100644 --- a/aconfig/init.go +++ b/aconfig/init.go @@ -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{}) } diff --git a/android/module.go b/android/module.go index f9fab96a9..654e5ac1d 100644 --- a/android/module.go +++ b/android/module.go @@ -1921,7 +1921,7 @@ func (m *ModuleBase) GenerateBuildActions(blueprintCtx blueprint.ModuleContext) restored := false if incrementalAnalysis && cacheKey != nil { - restored = ctx.bp.RestoreBuildActions(cacheKey, incrementalModule) + restored = ctx.bp.RestoreBuildActions(cacheKey) } if !restored {