Extract common behavior between Module and Import
Although the duplication being eliminated here is minimal follow up changes will add more functionality that is common to Module and Import. Test: m nothing Bug: 156723295 Change-Id: I1733405526764272beba63470a9bc8a958d41024
This commit is contained in:
34
java/java.go
34
java/java.go
@@ -350,6 +350,22 @@ func (me *CompilerDeviceProperties) EffectiveOptimizeEnabled() bool {
|
|||||||
return BoolDefault(me.Optimize.Enabled, me.Optimize.EnabledByDefault)
|
return BoolDefault(me.Optimize.Enabled, me.Optimize.EnabledByDefault)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Functionality common to Module and Import
|
||||||
|
type embeddableInModuleAndImport struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// Module/Import's DepIsInSameApex(...) delegates to this method.
|
||||||
|
//
|
||||||
|
// This cannot implement DepIsInSameApex(...) directly as that leads to ambiguity with
|
||||||
|
// the one provided by ApexModuleBase.
|
||||||
|
func (e *embeddableInModuleAndImport) depIsInSameApex(ctx android.BaseModuleContext, dep android.Module) bool {
|
||||||
|
// dependencies other than the static linkage are all considered crossing APEX boundary
|
||||||
|
if staticLibTag == ctx.OtherModuleDependencyTag(dep) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
// Module contains the properties and members used by all java module types
|
// Module contains the properties and members used by all java module types
|
||||||
type Module struct {
|
type Module struct {
|
||||||
android.ModuleBase
|
android.ModuleBase
|
||||||
@@ -357,6 +373,9 @@ type Module struct {
|
|||||||
android.ApexModuleBase
|
android.ApexModuleBase
|
||||||
android.SdkBase
|
android.SdkBase
|
||||||
|
|
||||||
|
// Functionality common to Module and Import.
|
||||||
|
embeddableInModuleAndImport
|
||||||
|
|
||||||
properties CompilerProperties
|
properties CompilerProperties
|
||||||
protoProperties android.ProtoProperties
|
protoProperties android.ProtoProperties
|
||||||
deviceProperties CompilerDeviceProperties
|
deviceProperties CompilerDeviceProperties
|
||||||
@@ -1768,11 +1787,7 @@ func (j *Module) hasCode(ctx android.ModuleContext) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (j *Module) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Module) bool {
|
func (j *Module) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Module) bool {
|
||||||
// Dependencies other than the static linkage are all considered crossing APEX boundary
|
return j.depIsInSameApex(ctx, dep)
|
||||||
if staticLibTag == ctx.OtherModuleDependencyTag(dep) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (j *Module) Stem() string {
|
func (j *Module) Stem() string {
|
||||||
@@ -2386,6 +2401,9 @@ type Import struct {
|
|||||||
prebuilt android.Prebuilt
|
prebuilt android.Prebuilt
|
||||||
android.SdkBase
|
android.SdkBase
|
||||||
|
|
||||||
|
// Functionality common to Module and Import.
|
||||||
|
embeddableInModuleAndImport
|
||||||
|
|
||||||
properties ImportProperties
|
properties ImportProperties
|
||||||
|
|
||||||
combinedClasspathFile android.Path
|
combinedClasspathFile android.Path
|
||||||
@@ -2520,11 +2538,7 @@ func (j *Import) SrcJarArgs() ([]string, android.Paths) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (j *Import) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Module) bool {
|
func (j *Import) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Module) bool {
|
||||||
// dependencies other than the static linkage are all considered crossing APEX boundary
|
return j.depIsInSameApex(ctx, dep)
|
||||||
if staticLibTag == ctx.OtherModuleDependencyTag(dep) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add compile time check for interface implementation
|
// Add compile time check for interface implementation
|
||||||
|
Reference in New Issue
Block a user