TransitivePackagingSpecs should follow "installable" deps
Gathering packaging items from "SkipInstall" deps doesn't make sense. Bug: 194403710 Test: soong test Test: m microdroid # microdroid shouldn't have libandroidicu Change-Id: If6c3ee82d588e2742c85cef7244c090c93f38b8e
This commit is contained in:
@@ -1529,7 +1529,7 @@ func (m *ModuleBase) computeInstallDeps(ctx ModuleContext) ([]*installPathsDepSe
|
||||
var installDeps []*installPathsDepSet
|
||||
var packagingSpecs []*packagingSpecsDepSet
|
||||
ctx.VisitDirectDeps(func(dep Module) {
|
||||
if IsInstallDepNeeded(ctx.OtherModuleDependencyTag(dep)) && !dep.IsHideFromMake() {
|
||||
if IsInstallDepNeeded(ctx.OtherModuleDependencyTag(dep)) && !dep.IsHideFromMake() && !dep.IsSkipInstall() {
|
||||
installDeps = append(installDeps, dep.base().installFilesDepSet)
|
||||
packagingSpecs = append(packagingSpecs, dep.base().packagingSpecsDepSet)
|
||||
}
|
||||
|
@@ -18,13 +18,15 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/google/blueprint"
|
||||
"github.com/google/blueprint/proptools"
|
||||
)
|
||||
|
||||
// Module to be packaged
|
||||
type componentTestModule struct {
|
||||
ModuleBase
|
||||
props struct {
|
||||
Deps []string
|
||||
Deps []string
|
||||
Skip_install *bool
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,6 +51,9 @@ func (m *componentTestModule) GenerateAndroidBuildActions(ctx ModuleContext) {
|
||||
builtFile := PathForModuleOut(ctx, m.Name())
|
||||
dir := ctx.Target().Arch.ArchType.Multilib
|
||||
installDir := PathForModuleInstall(ctx, dir)
|
||||
if proptools.Bool(m.props.Skip_install) {
|
||||
m.SkipInstall()
|
||||
}
|
||||
ctx.InstallFile(installDir, m.Name(), builtFile)
|
||||
}
|
||||
|
||||
@@ -365,3 +370,31 @@ func TestPackagingBaseSingleTarget(t *testing.T) {
|
||||
}
|
||||
`, []string{"lib64/foo"})
|
||||
}
|
||||
|
||||
func TestPackagingWithSkipInstallDeps(t *testing.T) {
|
||||
// package -[dep]-> foo -[dep]-> bar -[dep]-> baz
|
||||
// OK SKIPPED
|
||||
multiTarget := false
|
||||
runPackagingTest(t, multiTarget,
|
||||
`
|
||||
component {
|
||||
name: "foo",
|
||||
deps: ["bar"],
|
||||
}
|
||||
|
||||
component {
|
||||
name: "bar",
|
||||
deps: ["baz"],
|
||||
skip_install: true,
|
||||
}
|
||||
|
||||
component {
|
||||
name: "baz",
|
||||
}
|
||||
|
||||
package_module {
|
||||
name: "package",
|
||||
deps: ["foo"],
|
||||
}
|
||||
`, []string{"lib64/foo"})
|
||||
}
|
||||
|
Reference in New Issue
Block a user