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
diff --git a/aconfig/aconfig_declarations.go b/aconfig/aconfig_declarations.go
index 9e3d291..9b638e7 100644
--- a/aconfig/aconfig_declarations.go
+++ b/aconfig/aconfig_declarations.go
@@ -220,15 +220,10 @@
 }
 
 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 de155ab..5fa7e76 100644
--- a/aconfig/init.go
+++ b/aconfig/init.go
@@ -23,8 +23,7 @@
 )
 
 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 @@
 	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 f9fab96..654e5ac 100644
--- a/android/module.go
+++ b/android/module.go
@@ -1921,7 +1921,7 @@
 
 		restored := false
 		if incrementalAnalysis && cacheKey != nil {
-			restored = ctx.bp.RestoreBuildActions(cacheKey, incrementalModule)
+			restored = ctx.bp.RestoreBuildActions(cacheKey)
 		}
 
 		if !restored {