Merge "Fix soong config hash missing for some modules" am: 55be40beb4

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2628789

Change-Id: I823dbf8a2ec246ffb7f24843925b764c307119e3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Inseob Kim 2023-06-16 12:22:47 +00:00 committed by Automerger Merge Worker
commit e7ceeb5c35
2 changed files with 9 additions and 7 deletions

View file

@ -483,6 +483,7 @@ type ModuleContext interface {
TargetRequiredModuleNames() []string
ModuleSubDir() string
SoongConfigTraceHash() string
Variable(pctx PackageContext, name, value string)
Rule(pctx PackageContext, name string, params blueprint.RuleParams, argNames ...string) blueprint.Rule
@ -987,7 +988,11 @@ type commonProperties struct {
// Bazel conversion status
BazelConversionStatus BazelConversionStatus `blueprint:"mutated"`
// SoongConfigTrace records accesses to VendorVars (soong_config)
// SoongConfigTrace records accesses to VendorVars (soong_config). The trace will be hashed
// and used as a subdir of PathForModuleOut. Note that we mainly focus on incremental
// builds among similar products (e.g. aosp_cf_x86_64_phone and aosp_cf_x86_64_foldable),
// and there are variables other than soong_config, which isn't captured by soong config
// trace, but influence modules among products.
SoongConfigTrace soongConfigTrace `blueprint:"mutated"`
SoongConfigTraceHash string `blueprint:"mutated"`
}
@ -3192,7 +3197,7 @@ func (m *moduleContext) ModuleSubDir() string {
return m.bp.ModuleSubDir()
}
func (m *moduleContext) ModuleSoongConfigHash() string {
func (m *moduleContext) SoongConfigTraceHash() string {
return m.module.base().commonProperties.SoongConfigTraceHash
}

View file

@ -1472,14 +1472,11 @@ type ModuleOutPathContext interface {
ModuleName() string
ModuleDir() string
ModuleSubDir() string
SoongConfigTraceHash() string
}
func pathForModuleOut(ctx ModuleOutPathContext) OutputPath {
soongConfigHash := ""
if i, ok := ctx.(interface{ ModuleSoongConfigHash() string }); ok {
soongConfigHash = i.ModuleSoongConfigHash()
}
return PathForOutput(ctx, ".intermediates", ctx.ModuleDir(), ctx.ModuleName(), ctx.ModuleSubDir(), soongConfigHash)
return PathForOutput(ctx, ".intermediates", ctx.ModuleDir(), ctx.ModuleName(), ctx.ModuleSubDir(), ctx.SoongConfigTraceHash())
}
// PathForModuleOut returns a Path representing the paths... under the module's