Merge "Remove bp2build deps mutator" am: 2f1102fe58
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1774225 Change-Id: Ida97fb4ff3e8cf8132832f2f35b90cc4341a7395
This commit is contained in:
committed by
Automerger Merge Worker
commit
ba5164965a
@@ -73,6 +73,7 @@ type BazelConversionPathContext interface {
|
||||
EarlyModulePathContext
|
||||
|
||||
GetDirectDep(name string) (blueprint.Module, blueprint.DependencyTag)
|
||||
ModuleFromName(name string) (blueprint.Module, bool)
|
||||
Module() Module
|
||||
ModuleType() string
|
||||
OtherModuleName(m blueprint.Module) string
|
||||
@@ -331,11 +332,9 @@ func expandSrcsForBazel(ctx BazelConversionPathContext, paths, expandedExcludes
|
||||
// module. The label will be relative to the current directory if appropriate. The dependency must
|
||||
// already be resolved by either deps mutator or path deps mutator.
|
||||
func getOtherModuleLabel(ctx BazelConversionPathContext, dep, tag string, isWholeLibs bool) bazel.Label {
|
||||
m, _ := ctx.GetDirectDep(dep)
|
||||
m, _ := ctx.ModuleFromName(dep)
|
||||
if m == nil {
|
||||
panic(fmt.Errorf(`Cannot get direct dep %q of %q.
|
||||
This is likely because it was not added via AddDependency().
|
||||
This may be due a mutator skipped during bp2build.`, dep, ctx.Module().Name()))
|
||||
panic(fmt.Errorf("No module named %q found, but was a direct dep of %q", dep, ctx.Module().Name()))
|
||||
}
|
||||
otherLabel := bazelModuleLabel(ctx, m, tag)
|
||||
label := bazelModuleLabel(ctx, ctx.Module(), "")
|
||||
|
@@ -223,6 +223,8 @@ type BaseModuleContext interface {
|
||||
// the first DependencyTag.
|
||||
GetDirectDep(name string) (blueprint.Module, blueprint.DependencyTag)
|
||||
|
||||
ModuleFromName(name string) (blueprint.Module, bool)
|
||||
|
||||
// VisitDirectDepsBlueprint calls visit for each direct dependency. If there are multiple
|
||||
// direct dependencies on the same module visit will be called multiple times on that module
|
||||
// and OtherModuleDependencyTag will return a different tag for each.
|
||||
@@ -2037,8 +2039,13 @@ type baseModuleContext struct {
|
||||
tagPath []blueprint.DependencyTag
|
||||
|
||||
strictVisitDeps bool // If true, enforce that all dependencies are enabled
|
||||
|
||||
bazelConversionMode bool
|
||||
}
|
||||
|
||||
func (b *baseModuleContext) BazelConversionMode() bool {
|
||||
return b.bazelConversionMode
|
||||
}
|
||||
func (b *baseModuleContext) OtherModuleName(m blueprint.Module) string {
|
||||
return b.bp.OtherModuleName(m)
|
||||
}
|
||||
@@ -2378,6 +2385,18 @@ func (b *baseModuleContext) GetDirectDep(name string) (blueprint.Module, bluepri
|
||||
return b.getDirectDepFirstTag(name)
|
||||
}
|
||||
|
||||
func (b *baseModuleContext) ModuleFromName(name string) (blueprint.Module, bool) {
|
||||
if !b.BazelConversionMode() {
|
||||
panic("cannot call ModuleFromName if not in bazel conversion mode")
|
||||
}
|
||||
if len(name) > 1 && (name[0] == ':' || (name[0] == '/' && name[1] == '/')) {
|
||||
moduleName, _ := SrcIsModuleWithTag(name)
|
||||
return b.bp.ModuleFromName(moduleName)
|
||||
} else {
|
||||
return b.bp.ModuleFromName(name)
|
||||
}
|
||||
}
|
||||
|
||||
func (b *baseModuleContext) VisitDirectDepsBlueprint(visit func(blueprint.Module)) {
|
||||
b.bp.VisitDirectDeps(visit)
|
||||
}
|
||||
|
@@ -35,7 +35,7 @@ import (
|
||||
// continue on to GenerateAndroidBuildActions
|
||||
|
||||
// RegisterMutatorsForBazelConversion is a alternate registration pipeline for bp2build. Exported for testing.
|
||||
func RegisterMutatorsForBazelConversion(ctx *Context, preArchMutators, depsMutators, bp2buildMutators []RegisterMutatorFunc) {
|
||||
func RegisterMutatorsForBazelConversion(ctx *Context, preArchMutators, bp2buildMutators []RegisterMutatorFunc) {
|
||||
mctx := ®isterMutatorsContext{
|
||||
bazelConversionMode: true,
|
||||
}
|
||||
@@ -53,16 +53,6 @@ func RegisterMutatorsForBazelConversion(ctx *Context, preArchMutators, depsMutat
|
||||
f(mctx)
|
||||
}
|
||||
|
||||
bp2buildDepsMutators = append([]RegisterMutatorFunc{
|
||||
registerDepsMutatorBp2Build,
|
||||
registerPathDepsMutator,
|
||||
registerBp2buildArchPathDepsMutator,
|
||||
}, depsMutators...)
|
||||
|
||||
for _, f := range bp2buildDepsMutators {
|
||||
f(mctx)
|
||||
}
|
||||
|
||||
// Register bp2build mutators
|
||||
for _, f := range bp2buildMutators {
|
||||
f(mctx)
|
||||
@@ -227,7 +217,6 @@ func FinalDepsMutators(f RegisterMutatorFunc) {
|
||||
}
|
||||
|
||||
var bp2buildPreArchMutators = []RegisterMutatorFunc{}
|
||||
var bp2buildDepsMutators = []RegisterMutatorFunc{}
|
||||
var bp2buildMutators = map[string]RegisterMutatorFunc{}
|
||||
|
||||
// See http://b/192523357
|
||||
@@ -254,12 +243,6 @@ func PreArchBp2BuildMutators(f RegisterMutatorFunc) {
|
||||
bp2buildPreArchMutators = append(bp2buildPreArchMutators, f)
|
||||
}
|
||||
|
||||
// DepsBp2BuildMutators adds mutators to be register for converting Android Blueprint modules into
|
||||
// Bazel BUILD targets that should run prior to conversion to resolve dependencies.
|
||||
func DepsBp2BuildMutators(f RegisterMutatorFunc) {
|
||||
bp2buildDepsMutators = append(bp2buildDepsMutators, f)
|
||||
}
|
||||
|
||||
type BaseMutatorContext interface {
|
||||
BaseModuleContext
|
||||
|
||||
@@ -269,6 +252,9 @@ type BaseMutatorContext interface {
|
||||
// Rename all variants of a module. The new name is not visible to calls to ModuleName,
|
||||
// AddDependency or OtherModuleName until after this mutator pass is complete.
|
||||
Rename(name string)
|
||||
|
||||
// BazelConversionMode returns whether this mutator is being run as part of Bazel Conversion.
|
||||
BazelConversionMode() bool
|
||||
}
|
||||
|
||||
type TopDownMutator func(TopDownMutatorContext)
|
||||
@@ -410,26 +396,24 @@ type BottomUpMutatorContext interface {
|
||||
// variant of the current module. The value should not be modified after being passed to
|
||||
// SetVariationProvider.
|
||||
SetVariationProvider(module blueprint.Module, provider blueprint.ProviderKey, value interface{})
|
||||
|
||||
// BazelConversionMode returns whether this mutator is being run as part of Bazel Conversion.
|
||||
BazelConversionMode() bool
|
||||
}
|
||||
|
||||
type bottomUpMutatorContext struct {
|
||||
bp blueprint.BottomUpMutatorContext
|
||||
baseModuleContext
|
||||
finalPhase bool
|
||||
bazelConversionMode bool
|
||||
finalPhase bool
|
||||
}
|
||||
|
||||
func bottomUpMutatorContextFactory(ctx blueprint.BottomUpMutatorContext, a Module,
|
||||
finalPhase, bazelConversionMode bool) BottomUpMutatorContext {
|
||||
|
||||
moduleContext := a.base().baseModuleContextFactory(ctx)
|
||||
moduleContext.bazelConversionMode = bazelConversionMode
|
||||
|
||||
return &bottomUpMutatorContext{
|
||||
bp: ctx,
|
||||
baseModuleContext: a.base().baseModuleContextFactory(ctx),
|
||||
finalPhase: finalPhase,
|
||||
bazelConversionMode: bazelConversionMode,
|
||||
bp: ctx,
|
||||
baseModuleContext: a.base().baseModuleContextFactory(ctx),
|
||||
finalPhase: finalPhase,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -462,9 +446,11 @@ func (x *registerMutatorsContext) mutatorName(name string) string {
|
||||
func (x *registerMutatorsContext) TopDown(name string, m TopDownMutator) MutatorHandle {
|
||||
f := func(ctx blueprint.TopDownMutatorContext) {
|
||||
if a, ok := ctx.Module().(Module); ok {
|
||||
moduleContext := a.base().baseModuleContextFactory(ctx)
|
||||
moduleContext.bazelConversionMode = x.bazelConversionMode
|
||||
actx := &topDownMutatorContext{
|
||||
bp: ctx,
|
||||
baseModuleContext: a.base().baseModuleContextFactory(ctx),
|
||||
baseModuleContext: moduleContext,
|
||||
}
|
||||
m(actx)
|
||||
}
|
||||
@@ -733,7 +719,3 @@ func (b *bottomUpMutatorContext) CreateAliasVariation(fromVariationName, toVaria
|
||||
func (b *bottomUpMutatorContext) SetVariationProvider(module blueprint.Module, provider blueprint.ProviderKey, value interface{}) {
|
||||
b.bp.SetVariationProvider(module, provider, value)
|
||||
}
|
||||
|
||||
func (b *bottomUpMutatorContext) BazelConversionMode() bool {
|
||||
return b.bazelConversionMode
|
||||
}
|
||||
|
@@ -180,7 +180,7 @@ func (ctx *Context) RegisterForBazelConversion() {
|
||||
bp2buildMutatorList = append(bp2buildMutatorList, f)
|
||||
}
|
||||
|
||||
RegisterMutatorsForBazelConversion(ctx, bp2buildPreArchMutators, bp2buildDepsMutators, bp2buildMutatorList)
|
||||
RegisterMutatorsForBazelConversion(ctx, bp2buildPreArchMutators, bp2buildMutatorList)
|
||||
}
|
||||
|
||||
// Register the pipeline of singletons, module types, and mutators for
|
||||
|
@@ -171,9 +171,9 @@ func NewTestArchContext(config Config) *TestContext {
|
||||
|
||||
type TestContext struct {
|
||||
*Context
|
||||
preArch, preDeps, postDeps, finalDeps []RegisterMutatorFunc
|
||||
bp2buildPreArch, bp2buildDeps, bp2buildMutators []RegisterMutatorFunc
|
||||
NameResolver *NameResolver
|
||||
preArch, preDeps, postDeps, finalDeps []RegisterMutatorFunc
|
||||
bp2buildPreArch, bp2buildMutators []RegisterMutatorFunc
|
||||
NameResolver *NameResolver
|
||||
|
||||
// The list of pre-singletons and singletons registered for the test.
|
||||
preSingletons, singletons sortableComponents
|
||||
@@ -224,12 +224,6 @@ func (ctx *TestContext) PreArchBp2BuildMutators(f RegisterMutatorFunc) {
|
||||
ctx.bp2buildPreArch = append(ctx.bp2buildPreArch, f)
|
||||
}
|
||||
|
||||
// DepsBp2BuildMutators adds mutators to be register for converting Android Blueprint modules into
|
||||
// Bazel BUILD targets that should run prior to conversion to resolve dependencies.
|
||||
func (ctx *TestContext) DepsBp2BuildMutators(f RegisterMutatorFunc) {
|
||||
ctx.bp2buildDeps = append(ctx.bp2buildDeps, f)
|
||||
}
|
||||
|
||||
// registeredComponentOrder defines the order in which a sortableComponent type is registered at
|
||||
// runtime and provides support for reordering the components registered for a test in the same
|
||||
// way.
|
||||
@@ -464,7 +458,7 @@ func (ctx *TestContext) Register() {
|
||||
|
||||
// RegisterForBazelConversion prepares a test context for bp2build conversion.
|
||||
func (ctx *TestContext) RegisterForBazelConversion() {
|
||||
RegisterMutatorsForBazelConversion(ctx.Context, ctx.bp2buildPreArch, ctx.bp2buildDeps, ctx.bp2buildMutators)
|
||||
RegisterMutatorsForBazelConversion(ctx.Context, ctx.bp2buildPreArch, ctx.bp2buildMutators)
|
||||
}
|
||||
|
||||
func (ctx *TestContext) ParseFileList(rootDir string, filePaths []string) (deps []string, errs []error) {
|
||||
|
@@ -556,7 +556,6 @@ genrule {
|
||||
moduleTypeUnderTestFactory android.ModuleFactory
|
||||
moduleTypeUnderTestBp2BuildMutator func(android.TopDownMutatorContext)
|
||||
preArchMutators []android.RegisterMutatorFunc
|
||||
depsMutators []android.RegisterMutatorFunc
|
||||
bp string
|
||||
expectedBazelTargets []string
|
||||
fs map[string]string
|
||||
@@ -720,7 +719,6 @@ genrule {
|
||||
moduleTypeUnderTest: "genrule",
|
||||
moduleTypeUnderTestFactory: genrule.GenRuleFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: genrule.GenruleBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{genrule.RegisterGenruleBp2BuildDeps},
|
||||
bp: `genrule {
|
||||
name: "foo.tool",
|
||||
out: ["foo_tool.out"],
|
||||
@@ -758,7 +756,6 @@ genrule {
|
||||
moduleTypeUnderTest: "genrule",
|
||||
moduleTypeUnderTestFactory: genrule.GenRuleFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: genrule.GenruleBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{genrule.RegisterGenruleBp2BuildDeps},
|
||||
bp: `genrule {
|
||||
name: "foo.tools",
|
||||
out: ["foo_tool.out", "foo_tool2.out"],
|
||||
@@ -798,7 +795,6 @@ genrule {
|
||||
moduleTypeUnderTest: "genrule",
|
||||
moduleTypeUnderTestFactory: genrule.GenRuleFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: genrule.GenruleBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{genrule.RegisterGenruleBp2BuildDeps},
|
||||
bp: `genrule {
|
||||
name: "foo",
|
||||
out: ["foo.out"],
|
||||
@@ -822,7 +818,6 @@ genrule {
|
||||
moduleTypeUnderTest: "genrule",
|
||||
moduleTypeUnderTestFactory: genrule.GenRuleFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: genrule.GenruleBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{genrule.RegisterGenruleBp2BuildDeps},
|
||||
bp: `genrule {
|
||||
name: "foo",
|
||||
out: ["foo.out"],
|
||||
@@ -846,7 +841,6 @@ genrule {
|
||||
moduleTypeUnderTest: "genrule",
|
||||
moduleTypeUnderTestFactory: genrule.GenRuleFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: genrule.GenruleBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{genrule.RegisterGenruleBp2BuildDeps},
|
||||
bp: `genrule {
|
||||
name: "foo",
|
||||
out: ["foo.out"],
|
||||
@@ -873,7 +867,6 @@ genrule {
|
||||
moduleTypeUnderTest: "genrule",
|
||||
moduleTypeUnderTestFactory: genrule.GenRuleFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: genrule.GenruleBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{genrule.RegisterGenruleBp2BuildDeps},
|
||||
bp: `genrule {
|
||||
name: "foo",
|
||||
out: ["foo.out"],
|
||||
@@ -900,7 +893,6 @@ genrule {
|
||||
moduleTypeUnderTest: "genrule",
|
||||
moduleTypeUnderTestFactory: genrule.GenRuleFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: genrule.GenruleBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{genrule.RegisterGenruleBp2BuildDeps},
|
||||
bp: `genrule {
|
||||
name: "foo",
|
||||
out: ["foo.out"],
|
||||
@@ -933,9 +925,6 @@ genrule {
|
||||
config := android.TestConfig(buildDir, nil, testCase.bp, fs)
|
||||
ctx := android.NewTestContext(config)
|
||||
ctx.RegisterModuleType(testCase.moduleTypeUnderTest, testCase.moduleTypeUnderTestFactory)
|
||||
for _, m := range testCase.depsMutators {
|
||||
ctx.DepsBp2BuildMutators(m)
|
||||
}
|
||||
ctx.RegisterBp2BuildMutator(testCase.moduleTypeUnderTest, testCase.moduleTypeUnderTestBp2BuildMutator)
|
||||
ctx.RegisterForBazelConversion()
|
||||
|
||||
@@ -1370,7 +1359,6 @@ func TestCombineBuildFilesBp2buildTargets(t *testing.T) {
|
||||
moduleTypeUnderTestFactory android.ModuleFactory
|
||||
moduleTypeUnderTestBp2BuildMutator func(android.TopDownMutatorContext)
|
||||
preArchMutators []android.RegisterMutatorFunc
|
||||
depsMutators []android.RegisterMutatorFunc
|
||||
bp string
|
||||
expectedBazelTargets []string
|
||||
fs map[string]string
|
||||
@@ -1487,9 +1475,6 @@ func TestCombineBuildFilesBp2buildTargets(t *testing.T) {
|
||||
config := android.TestConfig(buildDir, nil, testCase.bp, fs)
|
||||
ctx := android.NewTestContext(config)
|
||||
ctx.RegisterModuleType(testCase.moduleTypeUnderTest, testCase.moduleTypeUnderTestFactory)
|
||||
for _, m := range testCase.depsMutators {
|
||||
ctx.DepsBp2BuildMutators(m)
|
||||
}
|
||||
ctx.RegisterBp2BuildMutator(testCase.moduleTypeUnderTest, testCase.moduleTypeUnderTestBp2BuildMutator)
|
||||
ctx.RegisterForBazelConversion()
|
||||
|
||||
|
@@ -73,9 +73,6 @@ func runBp2BuildTestCase(t *testing.T, registerModuleTypes func(ctx android.Regi
|
||||
registerModuleTypes(ctx)
|
||||
ctx.RegisterModuleType(tc.moduleTypeUnderTest, tc.moduleTypeUnderTestFactory)
|
||||
ctx.RegisterBp2BuildConfig(bp2buildConfig)
|
||||
for _, m := range tc.depsMutators {
|
||||
ctx.DepsBp2BuildMutators(m)
|
||||
}
|
||||
ctx.RegisterBp2BuildMutator(tc.moduleTypeUnderTest, tc.moduleTypeUnderTestBp2BuildMutator)
|
||||
ctx.RegisterForBazelConversion()
|
||||
|
||||
@@ -333,7 +330,6 @@ func TestCcLibrarySharedStaticProps(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library",
|
||||
moduleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
dir: "foo/bar",
|
||||
filesystem: map[string]string{
|
||||
"foo/bar/both.cpp": "",
|
||||
@@ -418,7 +414,6 @@ func TestCcLibraryWholeStaticLibsAlwaysLink(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library",
|
||||
moduleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
dir: "foo/bar",
|
||||
filesystem: map[string]string{
|
||||
"foo/bar/Android.bp": `
|
||||
@@ -465,7 +460,6 @@ func TestCcLibrarySharedStaticPropsInArch(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library",
|
||||
moduleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
dir: "foo/bar",
|
||||
filesystem: map[string]string{
|
||||
"foo/bar/arm.cpp": "",
|
||||
@@ -604,7 +598,6 @@ func TestCcLibrarySharedStaticPropsWithMixedSources(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library",
|
||||
moduleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
dir: "foo/bar",
|
||||
filesystem: map[string]string{
|
||||
"foo/bar/both_source.cpp": "",
|
||||
@@ -745,7 +738,6 @@ func TestCcLibraryNonConfiguredVersionScript(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library",
|
||||
moduleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
dir: "foo/bar",
|
||||
filesystem: map[string]string{
|
||||
"foo/bar/Android.bp": `
|
||||
@@ -776,7 +768,6 @@ func TestCcLibraryConfiguredVersionScript(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library",
|
||||
moduleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
dir: "foo/bar",
|
||||
filesystem: map[string]string{
|
||||
"foo/bar/Android.bp": `
|
||||
@@ -819,7 +810,6 @@ func TestCcLibrarySharedLibs(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library",
|
||||
moduleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
dir: "foo/bar",
|
||||
filesystem: map[string]string{
|
||||
"foo/bar/Android.bp": `
|
||||
@@ -859,7 +849,6 @@ func TestCcLibraryPackRelocations(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library",
|
||||
moduleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
dir: "foo/bar",
|
||||
filesystem: map[string]string{
|
||||
"foo/bar/Android.bp": `
|
||||
@@ -933,7 +922,6 @@ func TestCcLibrarySpacesInCopts(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library",
|
||||
moduleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
dir: "foo/bar",
|
||||
filesystem: map[string]string{
|
||||
"foo/bar/Android.bp": `
|
||||
@@ -963,7 +951,6 @@ func TestCcLibraryCppFlagsGoesIntoCopts(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library",
|
||||
moduleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
dir: "foo/bar",
|
||||
filesystem: map[string]string{
|
||||
"foo/bar/Android.bp": `cc_library {
|
||||
@@ -1019,7 +1006,6 @@ func TestCcLibraryLabelAttributeGetTargetProperties(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library",
|
||||
moduleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
dir: "foo/bar",
|
||||
filesystem: map[string]string{
|
||||
"foo/bar/Android.bp": `
|
||||
@@ -1061,7 +1047,6 @@ func TestCcLibraryExcludeLibs(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library",
|
||||
moduleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{},
|
||||
blueprint: soongCcLibraryStaticPreamble + `
|
||||
cc_library {
|
||||
@@ -1308,7 +1293,6 @@ func TestCcLibraryStrip(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library",
|
||||
moduleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
dir: "foo/bar",
|
||||
filesystem: map[string]string{
|
||||
"foo/bar/Android.bp": `
|
||||
@@ -1415,7 +1399,6 @@ func TestCcLibraryStripWithArch(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library",
|
||||
moduleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
dir: "foo/bar",
|
||||
filesystem: map[string]string{
|
||||
"foo/bar/Android.bp": `
|
||||
|
@@ -45,7 +45,6 @@ type bp2buildTestCase struct {
|
||||
moduleTypeUnderTest string
|
||||
moduleTypeUnderTestFactory android.ModuleFactory
|
||||
moduleTypeUnderTestBp2BuildMutator func(android.TopDownMutatorContext)
|
||||
depsMutators []android.RegisterMutatorFunc
|
||||
blueprint string
|
||||
expectedBazelTargets []string
|
||||
filesystem map[string]string
|
||||
@@ -181,7 +180,6 @@ func TestCcLibraryHeadersOSSpecificHeader(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_headers",
|
||||
moduleTypeUnderTestFactory: cc.LibraryHeaderFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryHeadersBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{},
|
||||
blueprint: soongCcLibraryPreamble + `
|
||||
cc_library_headers { name: "android-lib" }
|
||||
@@ -262,7 +260,6 @@ func TestCcLibraryHeadersOsSpecficHeaderLibsExportHeaderLibHeaders(t *testing.T)
|
||||
moduleTypeUnderTest: "cc_library_headers",
|
||||
moduleTypeUnderTestFactory: cc.LibraryHeaderFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryHeadersBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{},
|
||||
blueprint: soongCcLibraryPreamble + `
|
||||
cc_library_headers { name: "android-lib" }
|
||||
@@ -309,7 +306,6 @@ func TestCcLibraryHeadersArchAndTargetExportSystemIncludes(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_headers",
|
||||
moduleTypeUnderTestFactory: cc.LibraryHeaderFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryHeadersBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{},
|
||||
blueprint: soongCcLibraryPreamble + `cc_library_headers {
|
||||
name: "foo_headers",
|
||||
|
@@ -469,7 +469,6 @@ func TestCcLibraryStaticArchSpecificStaticLib(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_static",
|
||||
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{},
|
||||
blueprint: soongCcLibraryStaticPreamble + `
|
||||
cc_library_static { name: "static_dep" }
|
||||
@@ -517,7 +516,6 @@ func TestCcLibraryStaticOsSpecificStaticLib(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_static",
|
||||
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{},
|
||||
blueprint: soongCcLibraryStaticPreamble + `
|
||||
cc_library_static { name: "static_dep" }
|
||||
@@ -565,7 +563,6 @@ func TestCcLibraryStaticBaseArchOsSpecificStaticLib(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_static",
|
||||
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{},
|
||||
blueprint: soongCcLibraryStaticPreamble + `
|
||||
cc_library_static { name: "static_dep" }
|
||||
@@ -632,7 +629,6 @@ func TestCcLibraryStaticSimpleExcludeSrcs(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_static",
|
||||
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{
|
||||
"common.c": "",
|
||||
"foo-a.c": "",
|
||||
@@ -665,7 +661,6 @@ func TestCcLibraryStaticOneArchSrcs(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_static",
|
||||
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{
|
||||
"common.c": "",
|
||||
"foo-arm.c": "",
|
||||
@@ -697,7 +692,6 @@ func TestCcLibraryStaticOneArchSrcsExcludeSrcs(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_static",
|
||||
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{
|
||||
"common.c": "",
|
||||
"for-arm.c": "",
|
||||
@@ -734,7 +728,6 @@ func TestCcLibraryStaticTwoArchExcludeSrcs(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_static",
|
||||
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{
|
||||
"common.c": "",
|
||||
"for-arm.c": "",
|
||||
@@ -782,7 +775,6 @@ func TestCcLibraryStaticFourArchExcludeSrcs(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_static",
|
||||
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{
|
||||
"common.c": "",
|
||||
"for-arm.c": "",
|
||||
@@ -856,7 +848,6 @@ func TestCcLibraryStaticOneArchEmpty(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_static",
|
||||
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{
|
||||
"common.cc": "",
|
||||
"foo-no-arm.cc": "",
|
||||
@@ -892,7 +883,6 @@ func TestCcLibraryStaticOneArchEmptyOtherSet(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_static",
|
||||
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{
|
||||
"common.cc": "",
|
||||
"foo-no-arm.cc": "",
|
||||
@@ -934,7 +924,6 @@ func TestCcLibraryStaticMultipleDepSameName(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_static",
|
||||
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{},
|
||||
blueprint: soongCcLibraryStaticPreamble + `
|
||||
cc_library_static { name: "static_dep" }
|
||||
@@ -967,7 +956,6 @@ func TestCcLibraryStaticOneMultilibSrcsExcludeSrcs(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_static",
|
||||
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{
|
||||
"common.c": "",
|
||||
"for-lib32.c": "",
|
||||
@@ -1003,7 +991,6 @@ func TestCcLibraryStaticTwoMultilibSrcsExcludeSrcs(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_static",
|
||||
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{
|
||||
"common.c": "",
|
||||
"for-lib32.c": "",
|
||||
@@ -1059,7 +1046,6 @@ func TestCcLibrarySTaticArchMultilibSrcsExcludeSrcs(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_static",
|
||||
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{
|
||||
"common.c": "",
|
||||
"for-arm.c": "",
|
||||
@@ -1151,7 +1137,6 @@ func TestCcLibraryStaticArchSrcsExcludeSrcsGeneratedFiles(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_static",
|
||||
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{
|
||||
"common.cpp": "",
|
||||
"for-x86.cpp": "",
|
||||
@@ -1243,7 +1228,6 @@ func TestCcLibraryStaticGetTargetProperties(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_static",
|
||||
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
blueprint: soongCcLibraryStaticPreamble + `
|
||||
cc_library_static {
|
||||
name: "foo_static",
|
||||
@@ -1300,8 +1284,6 @@ func TestCcLibraryStaticProductVariableSelects(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_static",
|
||||
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{},
|
||||
blueprint: soongCcLibraryStaticPreamble + `
|
||||
cc_library_static {
|
||||
name: "foo_static",
|
||||
@@ -1345,7 +1327,6 @@ func TestCcLibraryStaticProductVariableArchSpecificSelects(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_static",
|
||||
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{},
|
||||
blueprint: soongCcLibraryStaticPreamble + `
|
||||
cc_library_static {
|
||||
@@ -1417,7 +1398,6 @@ func TestCcLibraryStaticProductVariableStringReplacement(t *testing.T) {
|
||||
moduleTypeUnderTest: "cc_library_static",
|
||||
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
filesystem: map[string]string{},
|
||||
blueprint: soongCcLibraryStaticPreamble + `
|
||||
cc_library_static {
|
||||
|
143
cc/bp2build.go
143
cc/bp2build.go
@@ -24,122 +24,6 @@ import (
|
||||
"github.com/google/blueprint/proptools"
|
||||
)
|
||||
|
||||
// bp2build functions and helpers for converting cc_* modules to Bazel.
|
||||
|
||||
func init() {
|
||||
android.DepsBp2BuildMutators(RegisterDepsBp2Build)
|
||||
}
|
||||
|
||||
func RegisterDepsBp2Build(ctx android.RegisterMutatorsContext) {
|
||||
ctx.BottomUp("cc_bp2build_deps", depsBp2BuildMutator)
|
||||
}
|
||||
|
||||
// A naive deps mutator to add deps on all modules across all combinations of
|
||||
// target props for cc modules. This is needed to make module -> bazel label
|
||||
// resolution work in the bp2build mutator later. This is probably
|
||||
// the wrong way to do it, but it works.
|
||||
//
|
||||
// TODO(jingwen): can we create a custom os mutator in depsBp2BuildMutator to do this?
|
||||
func depsBp2BuildMutator(ctx android.BottomUpMutatorContext) {
|
||||
module, ok := ctx.Module().(*Module)
|
||||
if !ok {
|
||||
// Not a cc module
|
||||
return
|
||||
}
|
||||
|
||||
if !module.ConvertWithBp2build(ctx) {
|
||||
return
|
||||
}
|
||||
|
||||
var allDeps []string
|
||||
|
||||
for _, configToProps := range module.GetArchVariantProperties(ctx, &BaseCompilerProperties{}) {
|
||||
for _, props := range configToProps {
|
||||
if baseCompilerProps, ok := props.(*BaseCompilerProperties); ok {
|
||||
allDeps = append(allDeps, baseCompilerProps.Generated_headers...)
|
||||
allDeps = append(allDeps, baseCompilerProps.Generated_sources...)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for _, configToProps := range module.GetArchVariantProperties(ctx, &BaseLinkerProperties{}) {
|
||||
for _, props := range configToProps {
|
||||
if baseLinkerProps, ok := props.(*BaseLinkerProperties); ok {
|
||||
allDeps = append(allDeps, baseLinkerProps.Header_libs...)
|
||||
allDeps = append(allDeps, baseLinkerProps.Export_header_lib_headers...)
|
||||
allDeps = append(allDeps, baseLinkerProps.Static_libs...)
|
||||
allDeps = append(allDeps, baseLinkerProps.Exclude_static_libs...)
|
||||
allDeps = append(allDeps, baseLinkerProps.Whole_static_libs...)
|
||||
allDeps = append(allDeps, baseLinkerProps.Shared_libs...)
|
||||
allDeps = append(allDeps, baseLinkerProps.Exclude_shared_libs...)
|
||||
allDeps = append(allDeps, baseLinkerProps.System_shared_libs...)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Deps in the static: { .. } and shared: { .. } props of a cc_library.
|
||||
if lib, ok := module.compiler.(*libraryDecorator); ok {
|
||||
appendDeps := func(deps []string, p StaticOrSharedProperties, system bool) []string {
|
||||
deps = append(deps, p.Static_libs...)
|
||||
deps = append(deps, p.Whole_static_libs...)
|
||||
deps = append(deps, p.Shared_libs...)
|
||||
// TODO(b/186024507, b/186489250): Temporarily exclude adding
|
||||
// system_shared_libs deps until libc and libm builds.
|
||||
if system {
|
||||
allDeps = append(allDeps, p.System_shared_libs...)
|
||||
}
|
||||
return deps
|
||||
}
|
||||
|
||||
allDeps = appendDeps(allDeps, lib.SharedProperties.Shared, lib.shared())
|
||||
allDeps = appendDeps(allDeps, lib.StaticProperties.Static, lib.static())
|
||||
|
||||
// Deps in the target/arch nested static: { .. } and shared: { .. } props of a cc_library.
|
||||
// target: { <target>: shared: { ... } }
|
||||
for _, configToProps := range module.GetArchVariantProperties(ctx, &SharedProperties{}) {
|
||||
for _, props := range configToProps {
|
||||
if p, ok := props.(*SharedProperties); ok {
|
||||
allDeps = appendDeps(allDeps, p.Shared, lib.shared())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for _, configToProps := range module.GetArchVariantProperties(ctx, &StaticProperties{}) {
|
||||
for _, props := range configToProps {
|
||||
if p, ok := props.(*StaticProperties); ok {
|
||||
allDeps = appendDeps(allDeps, p.Static, lib.static())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// product variables only support a limited set of fields, this is the full list of field names
|
||||
// related to cc module dependency management that are supported.
|
||||
productVariableDepFields := [4]string{
|
||||
"Shared_libs",
|
||||
"Static_libs",
|
||||
"Exclude_static_libs",
|
||||
"Whole_static_libs",
|
||||
}
|
||||
|
||||
productVariableProps := android.ProductVariableProperties(ctx)
|
||||
for _, name := range productVariableDepFields {
|
||||
props, exists := productVariableProps[name]
|
||||
if !exists {
|
||||
continue
|
||||
}
|
||||
for _, prop := range props {
|
||||
if p, ok := prop.Property.([]string); !ok {
|
||||
ctx.ModuleErrorf("Could not convert product variable %s property", name)
|
||||
} else {
|
||||
allDeps = append(allDeps, p...)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ctx.AddDependency(module, nil, android.SortedUniqueStrings(allDeps)...)
|
||||
}
|
||||
|
||||
// staticOrSharedAttributes are the Bazel-ified versions of StaticOrSharedProperties --
|
||||
// properties which apply to either the shared or static version of a cc_library module.
|
||||
type staticOrSharedAttributes struct {
|
||||
@@ -183,30 +67,33 @@ func groupSrcsByExtension(ctx android.TopDownMutatorContext, srcs bazel.LabelLis
|
||||
// Convert the filegroup dependencies into the extension-specific filegroups
|
||||
// filtered in the filegroup.bzl macro.
|
||||
cppFilegroup := func(label string) string {
|
||||
ctx.VisitDirectDeps(func(m android.Module) {
|
||||
if isFilegroupNamed(m, label) {
|
||||
m, exists := ctx.ModuleFromName(label)
|
||||
if exists {
|
||||
aModule, _ := m.(android.Module)
|
||||
if isFilegroupNamed(aModule, label) {
|
||||
label = label + "_cpp_srcs"
|
||||
return
|
||||
}
|
||||
})
|
||||
}
|
||||
return label
|
||||
}
|
||||
cFilegroup := func(label string) string {
|
||||
ctx.VisitDirectDeps(func(m android.Module) {
|
||||
if isFilegroupNamed(m, label) {
|
||||
m, exists := ctx.ModuleFromName(label)
|
||||
if exists {
|
||||
aModule, _ := m.(android.Module)
|
||||
if isFilegroupNamed(aModule, label) {
|
||||
label = label + "_c_srcs"
|
||||
return
|
||||
}
|
||||
})
|
||||
}
|
||||
return label
|
||||
}
|
||||
asFilegroup := func(label string) string {
|
||||
ctx.VisitDirectDeps(func(m android.Module) {
|
||||
if isFilegroupNamed(m, label) {
|
||||
m, exists := ctx.ModuleFromName(label)
|
||||
if exists {
|
||||
aModule, _ := m.(android.Module)
|
||||
if isFilegroupNamed(aModule, label) {
|
||||
label = label + "_as_srcs"
|
||||
return
|
||||
}
|
||||
})
|
||||
}
|
||||
return label
|
||||
}
|
||||
|
||||
|
@@ -68,7 +68,6 @@ func RegisterGenruleBuildComponents(ctx android.RegistrationContext) {
|
||||
ctx.BottomUp("genrule_tool_deps", toolDepsMutator).Parallel()
|
||||
})
|
||||
|
||||
android.DepsBp2BuildMutators(RegisterGenruleBp2BuildDeps)
|
||||
android.RegisterBp2BuildMutator("genrule", GenruleBp2Build)
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user