HostCross is an attribute of a Target, not OsType

A host target is considered as being cross-compiled when the target
can't run natively on the build machine. For example, linux_glibc/x86_64
is a non-cross target on a standard x86/Linux machine, but is a cross
host on Mac. Previously, whether cross or not was a static attribute of
an OsType. For example, Windows was always considered as cross host,
while linux_bionic was not. This becomes a problem when we support more
host targets like linux_bionic/arm64 which should be cross-host on
standard x86/Linux machines.

This change removes HostCross from the OsClass type and instead adds a
property HostCross to the Target type. When a target is being added, it
is initialized to true when the target can't run natively on the current
build machine.

Bug: 168086242
Test: m
Change-Id: Ic37c8db918873ddf324c86b12b5412952b0f2be2
This commit is contained in:
Jiyong Park
2020-09-14 19:43:17 +09:00
parent d55be35331
commit 1613e5541f
12 changed files with 124 additions and 92 deletions

View File

@@ -79,7 +79,7 @@ func NewBinary(hod android.HostOrDeviceSupported) (*Module, *binaryDecorator) {
}
func PythonBinaryHostFactory() android.Module {
module, _ := NewBinary(android.HostSupportedNoCross)
module, _ := NewBinary(android.HostSupported)
return module.Init()
}

View File

@@ -26,7 +26,7 @@ func init() {
}
func PythonLibraryHostFactory() android.Module {
module := newModule(android.HostSupportedNoCross, android.MultilibFirst)
module := newModule(android.HostSupported, android.MultilibFirst)
return module.Init()
}