Merge "Prohibit dependencies outside of uses_sdks"
This commit is contained in:
@@ -77,6 +77,10 @@ type ApexModule interface {
|
||||
|
||||
// Tests if this module is available for the specified APEX or ":platform"
|
||||
AvailableFor(what string) bool
|
||||
|
||||
// DepIsInSameApex tests if the other module 'dep' is installed to the same
|
||||
// APEX as this module
|
||||
DepIsInSameApex(ctx BaseModuleContext, dep Module) bool
|
||||
}
|
||||
|
||||
type ApexProperties struct {
|
||||
@@ -154,6 +158,13 @@ func (m *ApexModuleBase) AvailableFor(what string) bool {
|
||||
return CheckAvailableForApex(what, m.ApexProperties.Apex_available)
|
||||
}
|
||||
|
||||
func (m *ApexModuleBase) DepIsInSameApex(ctx BaseModuleContext, dep Module) bool {
|
||||
// By default, if there is a dependency from A to B, we try to include both in the same APEX,
|
||||
// unless B is explicitly from outside of the APEX (i.e. a stubs lib). Thus, returning true.
|
||||
// This is overridden by some module types like apex.ApexBundle, cc.Module, java.Module, etc.
|
||||
return true
|
||||
}
|
||||
|
||||
func (m *ApexModuleBase) checkApexAvailableProperty(mctx BaseModuleContext) {
|
||||
for _, n := range m.ApexProperties.Apex_available {
|
||||
if n == availableToPlatform || n == availableToAnyApex {
|
||||
|
@@ -44,6 +44,17 @@ func (s SdkRef) Unversioned() bool {
|
||||
return s.Version == ""
|
||||
}
|
||||
|
||||
// String returns string representation of this SdkRef for debugging purpose
|
||||
func (s SdkRef) String() string {
|
||||
if s.Name == "" {
|
||||
return "(No Sdk)"
|
||||
}
|
||||
if s.Unversioned() {
|
||||
return s.Name
|
||||
}
|
||||
return s.Name + string(SdkVersionSeparator) + s.Version
|
||||
}
|
||||
|
||||
// SdkVersionSeparator is a character used to separate an sdk name and its version
|
||||
const SdkVersionSeparator = '@'
|
||||
|
||||
|
Reference in New Issue
Block a user