diff options
author | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-02-04 00:54:27 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-02-04 00:54:27 +0000 |
commit | 8ee870a540764c8b8ca538fec4ddf18d056b6ec4 (patch) | |
tree | a861806004653c8cb5543528356938bcd9b2497f /cc/coverage.go | |
parent | 8d8639d5f506d2058949a517c170d277203da566 (diff) | |
parent | abc4f820a1e5c7bd69412c802dbaf0743a2f18db (diff) | |
download | android_build_soong-8ee870a540764c8b8ca538fec4ddf18d056b6ec4.tar.gz android_build_soong-8ee870a540764c8b8ca538fec4ddf18d056b6ec4.tar.bz2 android_build_soong-8ee870a540764c8b8ca538fec4ddf18d056b6ec4.zip |
Merge "Build native coverage variant of APEXes when needed" into qt-dev am: abc4f820a1
Change-Id: Id11c85eb9c5dea8a43486a70409ae370d1faa938
Diffstat (limited to 'cc/coverage.go')
-rw-r--r-- | cc/coverage.go | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/cc/coverage.go b/cc/coverage.go index 0de0c1c9..2e81a9e4 100644 --- a/cc/coverage.go +++ b/cc/coverage.go @@ -140,7 +140,6 @@ func (cov *coverage) begin(ctx BaseModuleContext) { } else { // Check if Native_coverage is set to false. This property defaults to true. needCoverageVariant = BoolDefault(cov.Properties.Native_coverage, true) - if sdk_version := ctx.sdkVersion(); ctx.useSdk() && sdk_version != "current" { // Native coverage is not supported for SDK versions < 23 if fromApi, err := strconv.Atoi(sdk_version); err == nil && fromApi < 23 { @@ -158,6 +157,14 @@ func (cov *coverage) begin(ctx BaseModuleContext) { cov.Properties.NeedCoverageVariant = needCoverageVariant } +// Coverage is an interface for non-CC modules to implement to be mutated for coverage +type Coverage interface { + android.Module + IsNativeCoverageNeeded(ctx android.BaseModuleContext) bool + PreventInstall() + HideFromMake() +} + func coverageMutator(mctx android.BottomUpMutatorContext) { if c, ok := mctx.Module().(*Module); ok && c.coverage != nil { needCoverageVariant := c.coverage.Properties.NeedCoverageVariant @@ -177,5 +184,14 @@ func coverageMutator(mctx android.BottomUpMutatorContext) { m[1].(*Module).coverage.Properties.CoverageEnabled = needCoverageBuild m[1].(*Module).coverage.Properties.IsCoverageVariant = true } + } else if cov, ok := mctx.Module().(Coverage); ok && cov.IsNativeCoverageNeeded(mctx) { + // APEX modules fall here + + // Note: variant "" is also created because an APEX can be depended on by another + // module which are split into "" and "cov" variants. e.g. when cc_test refers + // to an APEX via 'data' property. + m := mctx.CreateVariations("", "cov") + m[0].(Coverage).PreventInstall() + m[0].(Coverage).HideFromMake() } } |