<apex_name>-deps-info correctly tracks dependencies

The APEX dependency is more correctly tracked. Previously, the
dependency was tracked while we gather modules that will be installed to
an APEX. This actually was incorrect because we skipped many dependency
types that we don't need to follow to gather the modules list, such as
the headers dependency.

Now, the dependency is tracked directly when a module is mutated for an
APEX. In other words, if a module is mutated for an apex X, then the
module will appear in the X-deps-into.txt file.

This change also changes the format of the txt file. It now clearly
shows why a module is included in the APEX by showing the list of
modules that depend on the module.

Bug: 146323213
Test: m
Change-Id: I0a70cf9cce56e36565f9d55683fdaace8748a081
This commit is contained in:
Jiyong Park
2020-02-07 17:25:49 +09:00
parent 201cedd608
commit 678c881a4f
6 changed files with 60 additions and 64 deletions

View File

@@ -403,13 +403,6 @@ func IsSharedDepTag(depTag blueprint.DependencyTag) bool {
return ok && ccDepTag.Shared
}
func IsStaticDepTag(depTag blueprint.DependencyTag) bool {
ccDepTag, ok := depTag.(DependencyTag)
return ok && (ccDepTag == staticExportDepTag ||
ccDepTag == lateStaticDepTag ||
ccDepTag == wholeStaticDepTag)
}
func IsRuntimeDepTag(depTag blueprint.DependencyTag) bool {
ccDepTag, ok := depTag.(DependencyTag)
return ok && ccDepTag == runtimeDepTag
@@ -475,9 +468,6 @@ type Module struct {
makeLinkType string
// Kythe (source file indexer) paths for this compilation module
kytheFiles android.Paths
// name of the modules that are direct or indirect static deps of this module
allStaticDeps []string
}
func (c *Module) Toc() android.OptionalPath {
@@ -1288,15 +1278,6 @@ func orderStaticModuleDeps(module LinkableInterface, staticDeps []LinkableInterf
return results
}
func gatherTransitiveStaticDeps(staticDeps []LinkableInterface) []string {
var ret []string
for _, dep := range staticDeps {
ret = append(ret, dep.Module().Name())
ret = append(ret, dep.AllStaticDeps()...)
}
return android.FirstUniqueStrings(ret)
}
func (c *Module) IsTestPerSrcAllTestsVariation() bool {
test, ok := c.linker.(testPerSrc)
return ok && test.isAllTestsVariation()
@@ -2378,8 +2359,6 @@ func (c *Module) depsToPaths(ctx android.ModuleContext) PathDeps {
c.sabi.Properties.ReexportedIncludes = android.FirstUniqueStrings(c.sabi.Properties.ReexportedIncludes)
}
c.allStaticDeps = gatherTransitiveStaticDeps(directStaticDeps)
return depPaths
}
@@ -2539,10 +2518,6 @@ func (c *Module) installable() bool {
return false
}
func (c *Module) AllStaticDeps() []string {
return c.allStaticDeps
}
func (c *Module) AndroidMkWriteAdditionalDependenciesForSourceAbiDiff(w io.Writer) {
if c.linker != nil {
if library, ok := c.linker.(*libraryDecorator); ok {

View File

@@ -54,8 +54,6 @@ type LinkableInterface interface {
ToolchainLibrary() bool
NdkPrebuiltStl() bool
StubDecorator() bool
AllStaticDeps() []string
}
type DependencyTag struct {