Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8ff69de0 authored by Inseob Kim's avatar Inseob Kim
Browse files

Fix soong config hash missing for some modules

Bug: 279362051
Test: see outputs of C++ modules using soong config
Change-Id: I95e41350ff17a989faf7c010a4c4ed4fcd79d66b
parent eefac275
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -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
}

+2 −5
Original line number Diff line number Diff line
@@ -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