We need to have a way to see the list of modules that directly or indirectly contribute to an APEX. People find it difficult to determine whether a module is included in which APEXes because APEX tracks indirect dependencies as well as direct dependencies. Therefore, just looking at Android.bp for the APEX itself doesn't give the answer. This change adds a new make target <apex_name>-deps-info, which generates out/soong/<apex_name>-deps-info.txt file that shows the internal and external dependencies of the said APEX. Here, internal means the dependencies are actually part of the APEX, while external means the dependencies are still external to the APEX. Bug: 146323213 Test: m (apex_test amended) Change-Id: I33d1ccf5d1ca335d71cd6ced0f5f66b8c3886d13
76 lines
1.3 KiB
Go
76 lines
1.3 KiB
Go
package cc
|
|
|
|
import (
|
|
"github.com/google/blueprint"
|
|
|
|
"android/soong/android"
|
|
)
|
|
|
|
type LinkableInterface interface {
|
|
Module() android.Module
|
|
CcLibrary() bool
|
|
CcLibraryInterface() bool
|
|
|
|
OutputFile() android.OptionalPath
|
|
|
|
IncludeDirs() android.Paths
|
|
SetDepsInLinkOrder([]android.Path)
|
|
GetDepsInLinkOrder() []android.Path
|
|
|
|
HasStaticVariant() bool
|
|
GetStaticVariant() LinkableInterface
|
|
|
|
NonCcVariants() bool
|
|
|
|
StubsVersions() []string
|
|
BuildStubs() bool
|
|
SetBuildStubs()
|
|
SetStubsVersions(string)
|
|
HasStubsVariants() bool
|
|
SelectedStl() string
|
|
ApiLevel() string
|
|
|
|
BuildStaticVariant() bool
|
|
BuildSharedVariant() bool
|
|
SetStatic()
|
|
SetShared()
|
|
Static() bool
|
|
Shared() bool
|
|
Toc() android.OptionalPath
|
|
|
|
InRecovery() bool
|
|
OnlyInRecovery() bool
|
|
|
|
UseVndk() bool
|
|
MustUseVendorVariant() bool
|
|
IsVndk() bool
|
|
HasVendorVariant() bool
|
|
|
|
SdkVersion() string
|
|
|
|
ToolchainLibrary() bool
|
|
NdkPrebuiltStl() bool
|
|
StubDecorator() bool
|
|
|
|
AllStaticDeps() []string
|
|
}
|
|
|
|
type DependencyTag struct {
|
|
blueprint.BaseDependencyTag
|
|
Name string
|
|
Library bool
|
|
Shared bool
|
|
|
|
ReexportFlags bool
|
|
|
|
ExplicitlyVersioned bool
|
|
}
|
|
|
|
var (
|
|
SharedDepTag = DependencyTag{Name: "shared", Library: true, Shared: true}
|
|
StaticDepTag = DependencyTag{Name: "static", Library: true}
|
|
|
|
CrtBeginDepTag = DependencyTag{Name: "crtbegin"}
|
|
CrtEndDepTag = DependencyTag{Name: "crtend"}
|
|
)
|