Add IsAddingDependency to IncomingTransitionContext am: e1a8555581

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

Change-Id: Ib8f5bfbb73b467e74063d15e8644aac8c6298276
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Colin Cross
2024-07-12 00:22:31 +00:00
committed by Automerger Merge Worker
8 changed files with 51 additions and 27 deletions

View File

@@ -1746,7 +1746,11 @@ func (m *ModuleBase) baseModuleContextFactory(ctx blueprint.BaseModuleContext) b
}
}
func (m *ModuleBase) archModuleContextFactory(ctx blueprint.IncomingTransitionContext) archModuleContext {
type archModuleContextFactoryContext interface {
Config() interface{}
}
func (m *ModuleBase) archModuleContextFactory(ctx archModuleContextFactoryContext) archModuleContext {
config := ctx.Config().(Config)
target := m.Target()
primaryArch := false

View File

@@ -400,6 +400,12 @@ type IncomingTransitionContext interface {
Config() Config
DeviceConfig() DeviceConfig
// IsAddingDependency returns true if the transition is being called while adding a dependency
// after the transition mutator has already run, or false if it is being called when the transition
// mutator is running. This should be used sparingly, all uses will have to be removed in order
// to support creating variants on demand.
IsAddingDependency() bool
}
type OutgoingTransitionContext interface {
@@ -574,6 +580,10 @@ func (c *incomingTransitionContextImpl) DeviceConfig() DeviceConfig {
return DeviceConfig{c.bp.Config().(Config).deviceConfig}
}
func (c *incomingTransitionContextImpl) IsAddingDependency() bool {
return c.bp.IsAddingDependency()
}
func (c *incomingTransitionContextImpl) provider(provider blueprint.AnyProviderKey) (any, bool) {
return c.bp.Provider(provider)
}

View File

@@ -1363,7 +1363,7 @@ func (a *apexBundle) TaggedOutputs() map[string]android.Paths {
var _ cc.Coverage = (*apexBundle)(nil)
// Implements cc.Coverage
func (a *apexBundle) IsNativeCoverageNeeded(ctx android.IncomingTransitionContext) bool {
func (a *apexBundle) IsNativeCoverageNeeded(ctx cc.IsNativeCoverageNeededContext) bool {
return ctx.DeviceConfig().NativeCoverageEnabled()
}

View File

@@ -23,26 +23,26 @@ import (
)
var (
clangCoverageHostLdFlags = []string{
"-Wl,--no-as-needed",
"-Wl,--wrap,open",
}
clangContinuousCoverageFlags = []string{
"-mllvm",
"-runtime-counter-relocation",
}
clangCoverageCFlags = []string{
"-Wno-frame-larger-than=",
}
clangCoverageCommonFlags = []string{
"-fcoverage-mapping",
"-Wno-pass-failed",
"-D__ANDROID_CLANG_COVERAGE__",
}
clangCoverageHWASanFlags = []string{
"-mllvm",
"-hwasan-globals=0",
}
clangCoverageHostLdFlags = []string{
"-Wl,--no-as-needed",
"-Wl,--wrap,open",
}
clangContinuousCoverageFlags = []string{
"-mllvm",
"-runtime-counter-relocation",
}
clangCoverageCFlags = []string{
"-Wno-frame-larger-than=",
}
clangCoverageCommonFlags = []string{
"-fcoverage-mapping",
"-Wno-pass-failed",
"-D__ANDROID_CLANG_COVERAGE__",
}
clangCoverageHWASanFlags = []string{
"-mllvm",
"-hwasan-globals=0",
}
)
const profileInstrFlag = "-fprofile-instr-generate=/data/misc/trace/clang-%p-%m.profraw"
@@ -247,9 +247,19 @@ func SetCoverageProperties(ctx android.BaseModuleContext, properties CoveragePro
return properties
}
type IsNativeCoverageNeededContext interface {
Config() android.Config
DeviceConfig() android.DeviceConfig
Device() bool
}
var _ IsNativeCoverageNeededContext = android.IncomingTransitionContext(nil)
var _ IsNativeCoverageNeededContext = android.BaseModuleContext(nil)
var _ IsNativeCoverageNeededContext = android.BottomUpMutatorContext(nil)
type UseCoverage interface {
android.Module
IsNativeCoverageNeeded(ctx android.IncomingTransitionContext) bool
IsNativeCoverageNeeded(ctx IsNativeCoverageNeededContext) bool
}
// Coverage is an interface for non-CC modules to implement to be mutated for coverage

View File

@@ -632,7 +632,7 @@ func sha1sum(values []string) string {
var _ cc.UseCoverage = (*filesystem)(nil)
func (*filesystem) IsNativeCoverageNeeded(ctx android.IncomingTransitionContext) bool {
func (*filesystem) IsNativeCoverageNeeded(ctx cc.IsNativeCoverageNeededContext) bool {
return ctx.Device() && ctx.DeviceConfig().NativeCoverageEnabled()
}

View File

@@ -1227,7 +1227,7 @@ func (a *AndroidApp) Privileged() bool {
return Bool(a.appProperties.Privileged)
}
func (a *AndroidApp) IsNativeCoverageNeeded(ctx android.IncomingTransitionContext) bool {
func (a *AndroidApp) IsNativeCoverageNeeded(ctx cc.IsNativeCoverageNeededContext) bool {
return ctx.Device() && ctx.DeviceConfig().NativeCoverageEnabled()
}

View File

@@ -1358,7 +1358,7 @@ func (j *JavaTestImport) InstallInTestcases() bool {
return true
}
func (j *TestHost) IsNativeCoverageNeeded(ctx android.IncomingTransitionContext) bool {
func (j *TestHost) IsNativeCoverageNeeded(ctx cc.IsNativeCoverageNeededContext) bool {
return ctx.DeviceConfig().NativeCoverageEnabled()
}

View File

@@ -501,7 +501,7 @@ func (mod *Module) isCoverageVariant() bool {
var _ cc.Coverage = (*Module)(nil)
func (mod *Module) IsNativeCoverageNeeded(ctx android.IncomingTransitionContext) bool {
func (mod *Module) IsNativeCoverageNeeded(ctx cc.IsNativeCoverageNeededContext) bool {
return mod.coverage != nil && mod.coverage.Properties.NeedCoverageVariant
}