Merge "Revert "Reland "m <apex_name>-deps-info prints the internal/external deps of the APEX""""
am: a7503367cf
Change-Id: I0d6fc06b1734edff88eb60345c4603c080460e87
This commit is contained in:
@@ -226,8 +226,8 @@ func (a *apexBundle) androidMkForType() android.AndroidMkData {
|
|||||||
if len(moduleNames) > 0 {
|
if len(moduleNames) > 0 {
|
||||||
fmt.Fprintln(w, "LOCAL_REQUIRED_MODULES +=", strings.Join(moduleNames, " "))
|
fmt.Fprintln(w, "LOCAL_REQUIRED_MODULES +=", strings.Join(moduleNames, " "))
|
||||||
}
|
}
|
||||||
if len(a.requiredDeps) > 0 {
|
if len(a.externalDeps) > 0 {
|
||||||
fmt.Fprintln(w, "LOCAL_REQUIRED_MODULES +=", strings.Join(a.requiredDeps, " "))
|
fmt.Fprintln(w, "LOCAL_REQUIRED_MODULES +=", strings.Join(a.externalDeps, " "))
|
||||||
}
|
}
|
||||||
a.writeRequiredModules(w)
|
a.writeRequiredModules(w)
|
||||||
var postInstallCommands []string
|
var postInstallCommands []string
|
||||||
|
31
apex/apex.go
31
apex/apex.go
@@ -341,8 +341,6 @@ type apexBundleProperties struct {
|
|||||||
// Whether this APEX should support Android10. Default is false. If this is set true, then apex_manifest.json is bundled as well
|
// Whether this APEX should support Android10. Default is false. If this is set true, then apex_manifest.json is bundled as well
|
||||||
// because Android10 requires legacy apex_manifest.json instead of apex_manifest.pb
|
// because Android10 requires legacy apex_manifest.json instead of apex_manifest.pb
|
||||||
Legacy_android10_support *bool
|
Legacy_android10_support *bool
|
||||||
|
|
||||||
IsCoverageVariant bool `blueprint:"mutated"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type apexTargetBundleProperties struct {
|
type apexTargetBundleProperties struct {
|
||||||
@@ -522,13 +520,8 @@ type apexBundle struct {
|
|||||||
// list of files to be included in this apex
|
// list of files to be included in this apex
|
||||||
filesInfo []apexFile
|
filesInfo []apexFile
|
||||||
|
|
||||||
// list of module names that should be installed along with this APEX
|
// list of module names that this APEX is depending on
|
||||||
requiredDeps []string
|
|
||||||
|
|
||||||
// list of module names that this APEX is depending on (to be shown via *-deps-info target)
|
|
||||||
externalDeps []string
|
externalDeps []string
|
||||||
// list of module names that this APEX is including (to be shown via *-deps-info target)
|
|
||||||
internalDeps []string
|
|
||||||
|
|
||||||
testApex bool
|
testApex bool
|
||||||
vndkApex bool
|
vndkApex bool
|
||||||
@@ -824,10 +817,6 @@ func (a *apexBundle) HideFromMake() {
|
|||||||
a.properties.HideFromMake = true
|
a.properties.HideFromMake = true
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *apexBundle) MarkAsCoverageVariant(coverage bool) {
|
|
||||||
a.properties.IsCoverageVariant = coverage
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO(jiyong) move apexFileFor* close to the apexFile type definition
|
// TODO(jiyong) move apexFileFor* close to the apexFile type definition
|
||||||
func apexFileForNativeLibrary(ctx android.BaseModuleContext, ccMod *cc.Module, handleSpecialLibs bool) apexFile {
|
func apexFileForNativeLibrary(ctx android.BaseModuleContext, ccMod *cc.Module, handleSpecialLibs bool) apexFile {
|
||||||
// Decide the APEX-local directory by the multilib of the library
|
// Decide the APEX-local directory by the multilib of the library
|
||||||
@@ -956,7 +945,7 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
a.primaryApexType = true
|
a.primaryApexType = true
|
||||||
|
|
||||||
if ctx.Config().InstallExtraFlattenedApexes() {
|
if ctx.Config().InstallExtraFlattenedApexes() {
|
||||||
a.requiredDeps = append(a.requiredDeps, a.Name()+flattenedSuffix)
|
a.externalDeps = append(a.externalDeps, a.Name()+flattenedSuffix)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case zipApex:
|
case zipApex:
|
||||||
@@ -1015,9 +1004,6 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
depTag := ctx.OtherModuleDependencyTag(child)
|
depTag := ctx.OtherModuleDependencyTag(child)
|
||||||
depName := ctx.OtherModuleName(child)
|
depName := ctx.OtherModuleName(child)
|
||||||
if _, isDirectDep := parent.(*apexBundle); isDirectDep {
|
if _, isDirectDep := parent.(*apexBundle); isDirectDep {
|
||||||
if depTag != keyTag && depTag != certificateTag {
|
|
||||||
a.internalDeps = append(a.internalDeps, depName)
|
|
||||||
}
|
|
||||||
switch depTag {
|
switch depTag {
|
||||||
case sharedLibTag:
|
case sharedLibTag:
|
||||||
if cc, ok := child.(*cc.Module); ok {
|
if cc, ok := child.(*cc.Module); ok {
|
||||||
@@ -1148,10 +1134,9 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
//
|
//
|
||||||
// Always include if we are a host-apex however since those won't have any
|
// Always include if we are a host-apex however since those won't have any
|
||||||
// system libraries.
|
// system libraries.
|
||||||
if !android.DirectlyInAnyApex(ctx, cc.Name()) && !android.InList(cc.Name(), a.requiredDeps) {
|
if !android.DirectlyInAnyApex(ctx, cc.Name()) && !android.InList(cc.Name(), a.externalDeps) {
|
||||||
a.requiredDeps = append(a.requiredDeps, cc.Name())
|
a.externalDeps = append(a.externalDeps, cc.Name())
|
||||||
}
|
}
|
||||||
a.externalDeps = append(a.externalDeps, depName)
|
|
||||||
requireNativeLibs = append(requireNativeLibs, cc.OutputFile().Path().Base())
|
requireNativeLibs = append(requireNativeLibs, cc.OutputFile().Path().Base())
|
||||||
// Don't track further
|
// Don't track further
|
||||||
return false
|
return false
|
||||||
@@ -1159,8 +1144,6 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
af := apexFileForNativeLibrary(ctx, cc, handleSpecialLibs)
|
af := apexFileForNativeLibrary(ctx, cc, handleSpecialLibs)
|
||||||
af.transitiveDep = true
|
af.transitiveDep = true
|
||||||
filesInfo = append(filesInfo, af)
|
filesInfo = append(filesInfo, af)
|
||||||
a.internalDeps = append(a.internalDeps, depName)
|
|
||||||
a.internalDeps = append(a.internalDeps, cc.AllStaticDeps()...)
|
|
||||||
return true // track transitive dependencies
|
return true // track transitive dependencies
|
||||||
}
|
}
|
||||||
} else if cc.IsTestPerSrcDepTag(depTag) {
|
} else if cc.IsTestPerSrcDepTag(depTag) {
|
||||||
@@ -1176,10 +1159,8 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
return true // track transitive dependencies
|
return true // track transitive dependencies
|
||||||
}
|
}
|
||||||
} else if java.IsJniDepTag(depTag) {
|
} else if java.IsJniDepTag(depTag) {
|
||||||
a.externalDeps = append(a.externalDeps, depName)
|
// Do nothing for JNI dep. JNI libraries are always embedded in APK-in-APEX.
|
||||||
return true
|
return true
|
||||||
} else if java.IsStaticLibDepTag(depTag) {
|
|
||||||
a.internalDeps = append(a.internalDeps, depName)
|
|
||||||
} else if am.CanHaveApexVariants() && am.IsInstallableToApex() {
|
} else if am.CanHaveApexVariants() && am.IsInstallableToApex() {
|
||||||
ctx.ModuleErrorf("unexpected tag %q for indirect dependency %q", depTag, depName)
|
ctx.ModuleErrorf("unexpected tag %q for indirect dependency %q", depTag, depName)
|
||||||
}
|
}
|
||||||
@@ -1276,8 +1257,6 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
a.compatSymlinks = makeCompatSymlinks(a.BaseModuleName(), ctx)
|
a.compatSymlinks = makeCompatSymlinks(a.BaseModuleName(), ctx)
|
||||||
|
|
||||||
a.buildApexDependencyInfo(ctx)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func newApexBundle() *apexBundle {
|
func newApexBundle() *apexBundle {
|
||||||
|
@@ -219,7 +219,6 @@ func testApexContext(t *testing.T, bp string, handlers ...testCustomizer) (*andr
|
|||||||
"apex_manifest.json": nil,
|
"apex_manifest.json": nil,
|
||||||
"AndroidManifest.xml": nil,
|
"AndroidManifest.xml": nil,
|
||||||
"system/sepolicy/apex/myapex-file_contexts": nil,
|
"system/sepolicy/apex/myapex-file_contexts": nil,
|
||||||
"system/sepolicy/apex/myapex2-file_contexts": nil,
|
|
||||||
"system/sepolicy/apex/otherapex-file_contexts": nil,
|
"system/sepolicy/apex/otherapex-file_contexts": nil,
|
||||||
"system/sepolicy/apex/commonapex-file_contexts": nil,
|
"system/sepolicy/apex/commonapex-file_contexts": nil,
|
||||||
"system/sepolicy/apex/com.android.vndk-file_contexts": nil,
|
"system/sepolicy/apex/com.android.vndk-file_contexts": nil,
|
||||||
@@ -521,12 +520,6 @@ func TestBasicApex(t *testing.T) {
|
|||||||
}
|
}
|
||||||
ensureListContains(t, noticeInputs, "NOTICE")
|
ensureListContains(t, noticeInputs, "NOTICE")
|
||||||
ensureListContains(t, noticeInputs, "custom_notice")
|
ensureListContains(t, noticeInputs, "custom_notice")
|
||||||
|
|
||||||
depsInfo := strings.Split(ctx.ModuleForTests("myapex", "android_common_myapex_image").Output("myapex-deps-info.txt").Args["content"], "\\n")
|
|
||||||
ensureListContains(t, depsInfo, "internal myjar")
|
|
||||||
ensureListContains(t, depsInfo, "internal mylib")
|
|
||||||
ensureListContains(t, depsInfo, "internal mylib2")
|
|
||||||
ensureListContains(t, depsInfo, "internal myotherjar")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDefaults(t *testing.T) {
|
func TestDefaults(t *testing.T) {
|
||||||
@@ -747,13 +740,13 @@ func TestApexWithStubs(t *testing.T) {
|
|||||||
func TestApexWithExplicitStubsDependency(t *testing.T) {
|
func TestApexWithExplicitStubsDependency(t *testing.T) {
|
||||||
ctx, _ := testApex(t, `
|
ctx, _ := testApex(t, `
|
||||||
apex {
|
apex {
|
||||||
name: "myapex2",
|
name: "myapex",
|
||||||
key: "myapex2.key",
|
key: "myapex.key",
|
||||||
native_shared_libs: ["mylib"],
|
native_shared_libs: ["mylib"],
|
||||||
}
|
}
|
||||||
|
|
||||||
apex_key {
|
apex_key {
|
||||||
name: "myapex2.key",
|
name: "myapex.key",
|
||||||
public_key: "testkey.avbpubkey",
|
public_key: "testkey.avbpubkey",
|
||||||
private_key: "testkey.pem",
|
private_key: "testkey.pem",
|
||||||
}
|
}
|
||||||
@@ -786,7 +779,7 @@ func TestApexWithExplicitStubsDependency(t *testing.T) {
|
|||||||
|
|
||||||
`)
|
`)
|
||||||
|
|
||||||
apexRule := ctx.ModuleForTests("myapex2", "android_common_myapex2_image").Rule("apexRule")
|
apexRule := ctx.ModuleForTests("myapex", "android_common_myapex_image").Rule("apexRule")
|
||||||
copyCmds := apexRule.Args["copy_commands"]
|
copyCmds := apexRule.Args["copy_commands"]
|
||||||
|
|
||||||
// Ensure that direct non-stubs dep is always included
|
// Ensure that direct non-stubs dep is always included
|
||||||
@@ -798,7 +791,7 @@ func TestApexWithExplicitStubsDependency(t *testing.T) {
|
|||||||
// Ensure that dependency of stubs is not included
|
// Ensure that dependency of stubs is not included
|
||||||
ensureNotContains(t, copyCmds, "image.apex/lib64/libbar.so")
|
ensureNotContains(t, copyCmds, "image.apex/lib64/libbar.so")
|
||||||
|
|
||||||
mylibLdFlags := ctx.ModuleForTests("mylib", "android_arm64_armv8-a_shared_myapex2").Rule("ld").Args["libFlags"]
|
mylibLdFlags := ctx.ModuleForTests("mylib", "android_arm64_armv8-a_shared_myapex").Rule("ld").Args["libFlags"]
|
||||||
|
|
||||||
// Ensure that mylib is linking with version 10 of libfoo
|
// Ensure that mylib is linking with version 10 of libfoo
|
||||||
ensureContains(t, mylibLdFlags, "libfoo/android_arm64_armv8-a_shared_10/libfoo.so")
|
ensureContains(t, mylibLdFlags, "libfoo/android_arm64_armv8-a_shared_10/libfoo.so")
|
||||||
@@ -809,12 +802,6 @@ func TestApexWithExplicitStubsDependency(t *testing.T) {
|
|||||||
|
|
||||||
// Ensure that libfoo stubs is not linking to libbar (since it is a stubs)
|
// Ensure that libfoo stubs is not linking to libbar (since it is a stubs)
|
||||||
ensureNotContains(t, libFooStubsLdFlags, "libbar.so")
|
ensureNotContains(t, libFooStubsLdFlags, "libbar.so")
|
||||||
|
|
||||||
depsInfo := strings.Split(ctx.ModuleForTests("myapex2", "android_common_myapex2_image").Output("myapex2-deps-info.txt").Args["content"], "\\n")
|
|
||||||
ensureListContains(t, depsInfo, "internal mylib")
|
|
||||||
ensureListContains(t, depsInfo, "external libfoo")
|
|
||||||
ensureListNotContains(t, depsInfo, "internal libfoo")
|
|
||||||
ensureListNotContains(t, depsInfo, "external mylib")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestApexWithRuntimeLibsDependency(t *testing.T) {
|
func TestApexWithRuntimeLibsDependency(t *testing.T) {
|
||||||
@@ -2665,7 +2652,7 @@ func TestInstallExtraFlattenedApexes(t *testing.T) {
|
|||||||
config.TestProductVariables.InstallExtraFlattenedApexes = proptools.BoolPtr(true)
|
config.TestProductVariables.InstallExtraFlattenedApexes = proptools.BoolPtr(true)
|
||||||
})
|
})
|
||||||
ab := ctx.ModuleForTests("myapex", "android_common_myapex_image").Module().(*apexBundle)
|
ab := ctx.ModuleForTests("myapex", "android_common_myapex_image").Module().(*apexBundle)
|
||||||
ensureListContains(t, ab.requiredDeps, "myapex.flattened")
|
ensureListContains(t, ab.externalDeps, "myapex.flattened")
|
||||||
mk := android.AndroidMkDataForTest(t, config, "", ab)
|
mk := android.AndroidMkDataForTest(t, config, "", ab)
|
||||||
var builder strings.Builder
|
var builder strings.Builder
|
||||||
mk.Custom(&builder, ab.Name(), "TARGET_", "", mk)
|
mk.Custom(&builder, ab.Name(), "TARGET_", "", mk)
|
||||||
|
@@ -554,46 +554,3 @@ func (a *apexBundle) getOverrideManifestPackageName(ctx android.ModuleContext) s
|
|||||||
}
|
}
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *apexBundle) buildApexDependencyInfo(ctx android.ModuleContext) {
|
|
||||||
if !a.primaryApexType {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if a.properties.IsCoverageVariant {
|
|
||||||
// Otherwise, we will have duplicated rules for coverage and
|
|
||||||
// non-coverage variants of the same APEX
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
internalDeps := a.internalDeps
|
|
||||||
externalDeps := a.externalDeps
|
|
||||||
|
|
||||||
internalDeps = android.SortedUniqueStrings(internalDeps)
|
|
||||||
externalDeps = android.SortedUniqueStrings(externalDeps)
|
|
||||||
externalDeps = android.RemoveListFromList(externalDeps, internalDeps)
|
|
||||||
|
|
||||||
var content strings.Builder
|
|
||||||
for _, name := range internalDeps {
|
|
||||||
fmt.Fprintf(&content, "internal %s\\n", name)
|
|
||||||
}
|
|
||||||
for _, name := range externalDeps {
|
|
||||||
fmt.Fprintf(&content, "external %s\\n", name)
|
|
||||||
}
|
|
||||||
|
|
||||||
depsInfoFile := android.PathForOutput(ctx, a.Name()+"-deps-info.txt")
|
|
||||||
ctx.Build(pctx, android.BuildParams{
|
|
||||||
Rule: android.WriteFile,
|
|
||||||
Description: "Dependency Info",
|
|
||||||
Output: depsInfoFile,
|
|
||||||
Args: map[string]string{
|
|
||||||
"content": content.String(),
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
ctx.Build(pctx, android.BuildParams{
|
|
||||||
Rule: android.Phony,
|
|
||||||
Output: android.PathForPhony(ctx, a.Name()+"-deps-info"),
|
|
||||||
Inputs: []android.Path{depsInfoFile},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
25
cc/cc.go
25
cc/cc.go
@@ -398,13 +398,6 @@ func IsSharedDepTag(depTag blueprint.DependencyTag) bool {
|
|||||||
return ok && ccDepTag.Shared
|
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 {
|
func IsRuntimeDepTag(depTag blueprint.DependencyTag) bool {
|
||||||
ccDepTag, ok := depTag.(DependencyTag)
|
ccDepTag, ok := depTag.(DependencyTag)
|
||||||
return ok && ccDepTag == runtimeDepTag
|
return ok && ccDepTag == runtimeDepTag
|
||||||
@@ -470,9 +463,6 @@ type Module struct {
|
|||||||
makeLinkType string
|
makeLinkType string
|
||||||
// Kythe (source file indexer) paths for this compilation module
|
// Kythe (source file indexer) paths for this compilation module
|
||||||
kytheFiles android.Paths
|
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 {
|
func (c *Module) Toc() android.OptionalPath {
|
||||||
@@ -1268,15 +1258,6 @@ func orderStaticModuleDeps(module LinkableInterface, staticDeps []LinkableInterf
|
|||||||
return results
|
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 {
|
func (c *Module) IsTestPerSrcAllTestsVariation() bool {
|
||||||
test, ok := c.linker.(testPerSrc)
|
test, ok := c.linker.(testPerSrc)
|
||||||
return ok && test.isAllTestsVariation()
|
return ok && test.isAllTestsVariation()
|
||||||
@@ -2347,8 +2328,6 @@ func (c *Module) depsToPaths(ctx android.ModuleContext) PathDeps {
|
|||||||
c.sabi.Properties.ReexportedIncludes = android.FirstUniqueStrings(c.sabi.Properties.ReexportedIncludes)
|
c.sabi.Properties.ReexportedIncludes = android.FirstUniqueStrings(c.sabi.Properties.ReexportedIncludes)
|
||||||
}
|
}
|
||||||
|
|
||||||
c.allStaticDeps = gatherTransitiveStaticDeps(directStaticDeps)
|
|
||||||
|
|
||||||
return depPaths
|
return depPaths
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2502,10 +2481,6 @@ func (c *Module) installable() bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Module) AllStaticDeps() []string {
|
|
||||||
return c.allStaticDeps
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Module) AndroidMkWriteAdditionalDependenciesForSourceAbiDiff(w io.Writer) {
|
func (c *Module) AndroidMkWriteAdditionalDependenciesForSourceAbiDiff(w io.Writer) {
|
||||||
if c.linker != nil {
|
if c.linker != nil {
|
||||||
if library, ok := c.linker.(*libraryDecorator); ok {
|
if library, ok := c.linker.(*libraryDecorator); ok {
|
||||||
|
@@ -163,7 +163,6 @@ type Coverage interface {
|
|||||||
IsNativeCoverageNeeded(ctx android.BaseModuleContext) bool
|
IsNativeCoverageNeeded(ctx android.BaseModuleContext) bool
|
||||||
PreventInstall()
|
PreventInstall()
|
||||||
HideFromMake()
|
HideFromMake()
|
||||||
MarkAsCoverageVariant(bool)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func coverageMutator(mctx android.BottomUpMutatorContext) {
|
func coverageMutator(mctx android.BottomUpMutatorContext) {
|
||||||
@@ -192,7 +191,6 @@ func coverageMutator(mctx android.BottomUpMutatorContext) {
|
|||||||
// module which are split into "" and "cov" variants. e.g. when cc_test refers
|
// module which are split into "" and "cov" variants. e.g. when cc_test refers
|
||||||
// to an APEX via 'data' property.
|
// to an APEX via 'data' property.
|
||||||
m := mctx.CreateVariations("", "cov")
|
m := mctx.CreateVariations("", "cov")
|
||||||
m[0].(Coverage).MarkAsCoverageVariant(true)
|
|
||||||
m[0].(Coverage).PreventInstall()
|
m[0].(Coverage).PreventInstall()
|
||||||
m[0].(Coverage).HideFromMake()
|
m[0].(Coverage).HideFromMake()
|
||||||
}
|
}
|
||||||
|
@@ -51,8 +51,6 @@ type LinkableInterface interface {
|
|||||||
ToolchainLibrary() bool
|
ToolchainLibrary() bool
|
||||||
NdkPrebuiltStl() bool
|
NdkPrebuiltStl() bool
|
||||||
StubDecorator() bool
|
StubDecorator() bool
|
||||||
|
|
||||||
AllStaticDeps() []string
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type DependencyTag struct {
|
type DependencyTag struct {
|
||||||
|
@@ -500,14 +500,6 @@ var (
|
|||||||
usesLibTag = dependencyTag{name: "uses-library"}
|
usesLibTag = dependencyTag{name: "uses-library"}
|
||||||
)
|
)
|
||||||
|
|
||||||
func IsLibDepTag(depTag blueprint.DependencyTag) bool {
|
|
||||||
return depTag == libTag
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsStaticLibDepTag(depTag blueprint.DependencyTag) bool {
|
|
||||||
return depTag == staticLibTag
|
|
||||||
}
|
|
||||||
|
|
||||||
type sdkDep struct {
|
type sdkDep struct {
|
||||||
useModule, useFiles, useDefaultLibs, invalidVersion bool
|
useModule, useFiles, useDefaultLibs, invalidVersion bool
|
||||||
|
|
||||||
|
@@ -346,11 +346,6 @@ func (mod *Module) GetStaticVariant() cc.LinkableInterface {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (mod *Module) AllStaticDeps() []string {
|
|
||||||
// TODO(jiyong): do this for rust?
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (mod *Module) Module() android.Module {
|
func (mod *Module) Module() android.Module {
|
||||||
return mod
|
return mod
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user