Add host_linux target properties

Add host_linux to the target properties, which will apply to linux_glibc,
linux_bionic or linux_musl.  This will eventually undo the hack that
makes the linux_glibc properties apply to linux_musl.

Bug: 223257095
Test: TestArchProperties
Change-Id: Iccf51ed13c363ce1da04333a277fa49c33d45b9a
This commit is contained in:
Colin Cross 2022-03-07 14:39:49 -08:00
parent 4c4c1be915
commit a98d36de64
2 changed files with 24 additions and 4 deletions

View file

@ -909,6 +909,7 @@ func createArchPropTypeDesc(props reflect.Type) []archPropTypeDesc {
"Glibc",
"Musl",
"Linux",
"Host_linux",
"Not_windows",
"Arm_on_x86",
"Arm_on_x86_64",
@ -930,6 +931,12 @@ func createArchPropTypeDesc(props reflect.Type) []archPropTypeDesc {
targets = append(targets, target)
}
}
if os.Linux() && os.Class == Host {
target := "Host_linux_" + archType.Name
if !InList(target, targets) {
targets = append(targets, target)
}
}
if os.Bionic() {
target := "Bionic_" + archType.Name
if !InList(target, targets) {
@ -1162,6 +1169,14 @@ func (m *ModuleBase) setOSProperties(ctx BottomUpMutatorContext) {
}
}
if os.Linux() && os.Class == Host {
field := "Host_linux"
prefix := "target.host_linux"
if linuxProperties, ok := getChildPropertyStruct(ctx, targetProp, field, prefix); ok {
mergePropertyStruct(ctx, genProps, linuxProperties)
}
}
if os.Bionic() {
field := "Bionic"
prefix := "target.bionic"
@ -2127,6 +2142,7 @@ func (m *ModuleBase) GetArchVariantProperties(ctx ArchVariantContext, propertySe
linuxStructs := getTargetStructs(ctx, archProperties, "Linux")
bionicStructs := getTargetStructs(ctx, archProperties, "Bionic")
hostStructs := getTargetStructs(ctx, archProperties, "Host")
hostLinuxStructs := getTargetStructs(ctx, archProperties, "Host_linux")
hostNotWindowsStructs := getTargetStructs(ctx, archProperties, "Not_windows")
// For android, linux, ...
@ -2147,6 +2163,9 @@ func (m *ModuleBase) GetArchVariantProperties(ctx ArchVariantContext, propertySe
if os.Bionic() {
osStructs = append(osStructs, bionicStructs...)
}
if os.Linux() && os.Class == Host {
osStructs = append(osStructs, hostLinuxStructs...)
}
if os == LinuxMusl {
osStructs = append(osStructs, getTargetStructs(ctx, archProperties, "Musl")...)

View file

@ -510,6 +510,7 @@ func TestArchProperties(t *testing.T) {
musl: { a: ["musl"] },
linux_bionic: { a: ["linux_bionic"] },
linux: { a: ["linux"] },
host_linux: { a: ["host_linux"] },
linux_glibc: { a: ["linux_glibc"] },
linux_musl: { a: ["linux_musl"] },
windows: { a: ["windows"], enabled: true },
@ -566,12 +567,12 @@ func TestArchProperties(t *testing.T) {
{
module: "foo",
variant: "linux_glibc_x86_64",
property: []string{"root", "host", "linux", "glibc", "linux_glibc", "not_windows", "x86_64", "lib64", "linux_x86_64", "linux_glibc_x86_64"},
property: []string{"root", "host", "linux", "host_linux", "glibc", "linux_glibc", "not_windows", "x86_64", "lib64", "linux_x86_64", "linux_glibc_x86_64"},
},
{
module: "foo",
variant: "linux_glibc_x86",
property: []string{"root", "host", "linux", "glibc", "linux_glibc", "not_windows", "x86", "lib32", "linux_x86", "linux_glibc_x86"},
property: []string{"root", "host", "linux", "host_linux", "glibc", "linux_glibc", "not_windows", "x86", "lib32", "linux_x86", "linux_glibc_x86"},
},
},
},
@ -605,12 +606,12 @@ func TestArchProperties(t *testing.T) {
{
module: "foo",
variant: "linux_musl_x86_64",
property: []string{"root", "host", "linux", "musl", "linux_glibc", "linux_musl", "not_windows", "x86_64", "lib64", "linux_x86_64", "linux_musl_x86_64", "linux_glibc_x86_64"},
property: []string{"root", "host", "linux", "host_linux", "musl", "linux_glibc", "linux_musl", "not_windows", "x86_64", "lib64", "linux_x86_64", "linux_musl_x86_64", "linux_glibc_x86_64"},
},
{
module: "foo",
variant: "linux_musl_x86",
property: []string{"root", "host", "linux", "musl", "linux_glibc", "linux_musl", "not_windows", "x86", "lib32", "linux_x86", "linux_musl_x86", "linux_glibc_x86"},
property: []string{"root", "host", "linux", "host_linux", "musl", "linux_glibc", "linux_musl", "not_windows", "x86", "lib32", "linux_x86", "linux_musl_x86", "linux_glibc_x86"},
},
},
},