Merge "Clients of PackagingBase can customize dependency tag to use" am: 493e7ec3ee
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1509690 Change-Id: I5599c23a746cc0056fefe0f063faf35509228748
This commit is contained in:
commit
e989d3269d
4 changed files with 19 additions and 8 deletions
|
@ -45,7 +45,8 @@ type PackageModule interface {
|
|||
packagingBase() *PackagingBase
|
||||
|
||||
// AddDeps adds dependencies to the `deps` modules. This should be called in DepsMutator.
|
||||
AddDeps(ctx BottomUpMutatorContext)
|
||||
// When adding the dependencies, depTag is used as the tag.
|
||||
AddDeps(ctx BottomUpMutatorContext, depTag blueprint.DependencyTag)
|
||||
|
||||
// CopyDepsToZip zips the built artifacts of the dependencies into the given zip file and
|
||||
// returns zip entries in it. This is expected to be called in GenerateAndroidBuildActions,
|
||||
|
@ -82,10 +83,6 @@ type PackagingProperties struct {
|
|||
Multilib packagingMultilibProperties `android:"arch_variant"`
|
||||
}
|
||||
|
||||
type packagingDependencyTag struct{ blueprint.BaseDependencyTag }
|
||||
|
||||
var depTag = packagingDependencyTag{}
|
||||
|
||||
func InitPackageModule(p PackageModule) {
|
||||
base := p.packagingBase()
|
||||
p.AddProperties(&base.properties)
|
||||
|
@ -134,7 +131,7 @@ func (p *PackagingBase) getSupportedTargets(ctx BaseModuleContext) []Target {
|
|||
}
|
||||
|
||||
// See PackageModule.AddDeps
|
||||
func (p *PackagingBase) AddDeps(ctx BottomUpMutatorContext) {
|
||||
func (p *PackagingBase) AddDeps(ctx BottomUpMutatorContext, depTag blueprint.DependencyTag) {
|
||||
for _, t := range p.getSupportedTargets(ctx) {
|
||||
for _, dep := range p.getDepsForArch(ctx, t.Arch.ArchType) {
|
||||
if p.IgnoreMissingDependencies && !ctx.OtherModuleExists(dep) {
|
||||
|
|
|
@ -17,6 +17,8 @@ package android
|
|||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/google/blueprint"
|
||||
)
|
||||
|
||||
// Module to be packaged
|
||||
|
@ -61,7 +63,7 @@ func packageTestModuleFactory() Module {
|
|||
}
|
||||
|
||||
func (m *packageTestModule) DepsMutator(ctx BottomUpMutatorContext) {
|
||||
m.AddDeps(ctx)
|
||||
m.AddDeps(ctx, struct{ blueprint.BaseDependencyTag }{})
|
||||
}
|
||||
|
||||
func (m *packageTestModule) GenerateAndroidBuildActions(ctx ModuleContext) {
|
||||
|
|
|
@ -18,6 +18,8 @@ import (
|
|||
"fmt"
|
||||
|
||||
"android/soong/android"
|
||||
|
||||
"github.com/google/blueprint"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
@ -36,8 +38,10 @@ func filesystemFactory() android.Module {
|
|||
return module
|
||||
}
|
||||
|
||||
var dependencyTag = struct{ blueprint.BaseDependencyTag }{}
|
||||
|
||||
func (f *filesystem) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
f.AddDeps(ctx)
|
||||
f.AddDeps(ctx, dependencyTag)
|
||||
}
|
||||
|
||||
var pctx = android.NewPackageContext("android/soong/filesystem")
|
||||
|
|
|
@ -694,6 +694,14 @@ type dependencyTag struct {
|
|||
proc_macro bool
|
||||
}
|
||||
|
||||
// InstallDepNeeded returns true for rlibs, dylibs, and proc macros so that they or their transitive
|
||||
// dependencies (especially C/C++ shared libs) are installed as dependencies of a rust binary.
|
||||
func (d dependencyTag) InstallDepNeeded() bool {
|
||||
return d.library || d.proc_macro
|
||||
}
|
||||
|
||||
var _ android.InstallNeededDependencyTag = dependencyTag{}
|
||||
|
||||
var (
|
||||
customBindgenDepTag = dependencyTag{name: "customBindgenTag"}
|
||||
rlibDepTag = dependencyTag{name: "rlibTag", library: true}
|
||||
|
|
Loading…
Reference in a new issue