From 713c54289c6f50b04759264d0ae8dda97192ec33 Mon Sep 17 00:00:00 2001 From: Qing Shen Date: Fri, 23 Aug 2024 04:09:18 +0000 Subject: [PATCH] Revert "Revert "Add a coverage suffix to avoid Ninja file regene..." Revert submission 3235973-revert-3207217-emma-flip-time-saver-BYWASVIMTD Reason for revert: Rolling forward with a fix Adding a coverage suffix for product_config.go too: FAILED: ninja: 'out/soong/soong.sdv_core_cf.extra.variables', needed by 'out/soong/.intermediates/build/soong/product_config/product_config.json', missing and no known rule to make it 03:42:23 ninja failed with: exit status 1 Reverted changes: /q/submissionid:3235973-revert-3207217-emma-flip-time-saver-BYWASVIMTD Change-Id: I74d0e3fda09b1367f3dbb939d4f47c4d09b3d51f --- android/config.go | 7 +++++++ android/product_config.go | 6 ++++-- ui/build/config.go | 19 +++++++++++++------ ui/build/kati.go | 2 +- 4 files changed, 25 insertions(+), 9 deletions(-) diff --git a/android/config.go b/android/config.go index d6d76a4a0..77c5b341d 100644 --- a/android/config.go +++ b/android/config.go @@ -173,6 +173,13 @@ func (c Config) DisableVerifyOverlaps() bool { return c.IsEnvTrue("DISABLE_VERIFY_OVERLAPS") || c.ReleaseDisableVerifyOverlaps() || !c.ReleaseDefaultModuleBuildFromSource() } +func (c Config) CoverageSuffix() string { + if v := c.IsEnvTrue("EMMA_INSTRUMENT"); v { + return "coverage." + } + return "" +} + // MaxPageSizeSupported returns the max page size supported by the device. This // value will define the ELF segment alignment for binaries (executables and // shared libraries). diff --git a/android/product_config.go b/android/product_config.go index 20b29a7c4..04180bf2b 100644 --- a/android/product_config.go +++ b/android/product_config.go @@ -37,8 +37,10 @@ func (p *productConfigModule) GenerateAndroidBuildActions(ctx ModuleContext) { if targetProduct != "" { targetProduct += "." } - soongVariablesPath := PathForOutput(ctx, "soong."+targetProduct+"variables") - extraVariablesPath := PathForOutput(ctx, "soong."+targetProduct+"extra.variables") + + coverageSuffix := ctx.Config().CoverageSuffix() + soongVariablesPath := PathForOutput(ctx, "soong."+targetProduct+coverageSuffix+"variables") + extraVariablesPath := PathForOutput(ctx, "soong."+targetProduct+coverageSuffix+"extra.variables") rule := NewRuleBuilder(pctx, ctx) rule.Command().BuiltTool("merge_json"). diff --git a/ui/build/config.go b/ui/build/config.go index 64ac1a070..64323487d 100644 --- a/ui/build/config.go +++ b/ui/build/config.go @@ -1041,7 +1041,7 @@ func (c *configImpl) NamedGlobFile(name string) string { func (c *configImpl) UsedEnvFile(tag string) string { if v, ok := c.environ.Get("TARGET_PRODUCT"); ok { - return shared.JoinPath(c.SoongOutDir(), usedEnvFile+"."+v+"."+tag) + return shared.JoinPath(c.SoongOutDir(), usedEnvFile+"."+v+c.CoverageSuffix()+"."+tag) } return shared.JoinPath(c.SoongOutDir(), usedEnvFile+"."+tag) } @@ -1149,6 +1149,13 @@ func (c *configImpl) TargetProductOrErr() (string, error) { return "", fmt.Errorf("TARGET_PRODUCT is not defined") } +func (c *configImpl) CoverageSuffix() string { + if v := c.environ.IsEnvTrue("EMMA_INSTRUMENT"); v { + return ".coverage" + } + return "" +} + func (c *configImpl) TargetDevice() string { return c.targetDevice } @@ -1520,7 +1527,7 @@ func (c *configImpl) SoongVarsFile() string { if err != nil { return filepath.Join(c.SoongOutDir(), "soong.variables") } else { - return filepath.Join(c.SoongOutDir(), "soong."+targetProduct+".variables") + return filepath.Join(c.SoongOutDir(), "soong."+targetProduct+c.CoverageSuffix()+".variables") } } @@ -1529,7 +1536,7 @@ func (c *configImpl) SoongExtraVarsFile() string { if err != nil { return filepath.Join(c.SoongOutDir(), "soong.extra.variables") } else { - return filepath.Join(c.SoongOutDir(), "soong."+targetProduct+".extra.variables") + return filepath.Join(c.SoongOutDir(), "soong."+targetProduct+c.CoverageSuffix()+".extra.variables") } } @@ -1538,7 +1545,7 @@ func (c *configImpl) SoongNinjaFile() string { if err != nil { return filepath.Join(c.SoongOutDir(), "build.ninja") } else { - return filepath.Join(c.SoongOutDir(), "build."+targetProduct+".ninja") + return filepath.Join(c.SoongOutDir(), "build."+targetProduct+c.CoverageSuffix()+".ninja") } } @@ -1550,11 +1557,11 @@ func (c *configImpl) CombinedNinjaFile() string { } func (c *configImpl) SoongAndroidMk() string { - return filepath.Join(c.SoongOutDir(), "Android-"+c.TargetProduct()+".mk") + return filepath.Join(c.SoongOutDir(), "Android-"+c.TargetProduct()+c.CoverageSuffix()+".mk") } func (c *configImpl) SoongMakeVarsMk() string { - return filepath.Join(c.SoongOutDir(), "make_vars-"+c.TargetProduct()+".mk") + return filepath.Join(c.SoongOutDir(), "make_vars-"+c.TargetProduct()+c.CoverageSuffix()+".mk") } func (c *configImpl) SoongBuildMetrics() string { diff --git a/ui/build/kati.go b/ui/build/kati.go index a0efd2c88..5743ff7a7 100644 --- a/ui/build/kati.go +++ b/ui/build/kati.go @@ -41,7 +41,7 @@ const katiPackageSuffix = "-package" // arguments. func genKatiSuffix(ctx Context, config Config) { // Construct the base suffix. - katiSuffix := "-" + config.TargetProduct() + katiSuffix := "-" + config.TargetProduct() + config.CoverageSuffix() // Append kati arguments to the suffix. if args := config.KatiArgs(); len(args) > 0 {