Disable all host OS variants except those explicitly included.
Necessary to avoid problems with implicitly enabled host OS'es, e.g. linux_glibc getting enabled when we only supply a linux_bionic linker in runtime-module-host-exports. That will then cause a non-functional prebuilt to take precedence over source if the prebuilt is preferred. We don't do this for device since we so far only support a single device OS (android). This introduces the notion that SDK member types can be host OS dependent or not. That way java members with host prebuilts don't get restricted to a specific host OS. Test: m nothing Test: build/soong/scripts/build-aml-prebuilts.sh runtime-module-host-exports Check that the generated Android.bp correctly disables the bionic linker prebuilt for linux_glibc. Test: art/build/apex/runtests.sh on master-art with an updated runtime SDK snapshot Test: art/tools/buildbot-build.sh {--host,--target} on master-art with an updated runtime SDK snapshot Bug: 160349757 Change-Id: Idad7ef138cdbcbd209d390bf6c10ca8365d4619f
This commit is contained in:
@@ -327,6 +327,12 @@ type SdkMemberType interface {
|
||||
// SdkAware and be added with an SdkMemberTypeDependencyTag tag.
|
||||
HasTransitiveSdkMembers() bool
|
||||
|
||||
// Return true if prebuilt host artifacts may be specific to the host OS. Only
|
||||
// applicable to modules where HostSupported() is true. If this is true,
|
||||
// snapshots will list each host OS variant explicitly and disable all other
|
||||
// host OS'es.
|
||||
IsHostOsDependent() bool
|
||||
|
||||
// Add dependencies from the SDK module to all the module variants the member
|
||||
// type contributes to the SDK. `names` is the list of module names given in
|
||||
// the member type property (as returned by SdkPropertyName()) in the SDK
|
||||
@@ -389,6 +395,7 @@ type SdkMemberTypeBase struct {
|
||||
PropertyName string
|
||||
SupportsSdk bool
|
||||
TransitiveSdkMembers bool
|
||||
HostOsDependent bool
|
||||
}
|
||||
|
||||
func (b *SdkMemberTypeBase) SdkPropertyName() string {
|
||||
@@ -403,6 +410,10 @@ func (b *SdkMemberTypeBase) HasTransitiveSdkMembers() bool {
|
||||
return b.TransitiveSdkMembers
|
||||
}
|
||||
|
||||
func (b *SdkMemberTypeBase) IsHostOsDependent() bool {
|
||||
return b.HostOsDependent
|
||||
}
|
||||
|
||||
// Encapsulates the information about registered SdkMemberTypes.
|
||||
type SdkMemberTypesRegistry struct {
|
||||
// The list of types sorted by property name.
|
||||
|
Reference in New Issue
Block a user