Handle target.bionic in bp2build.

Soong supports some hand-crafted target.<type> that match multiple os or
arch types to simplify configuring for similar targets. target.bionic is
used to match on both android and linux_bionic OSes for cases where they
should be handled the same way.

Test: build/bazel/ci/bp2build.sh
Change-Id: I47b6aaf3279e4d242c4fd0e12f24117eb98e0665
This commit is contained in:
Liz Kammer
2021-07-16 16:33:47 -04:00
parent 393bffee78
commit 01a16e8275
4 changed files with 34 additions and 8 deletions

View File

@@ -91,6 +91,11 @@ var (
conditionsDefault: ConditionsDefaultSelectKey, // The default condition of an os select map.
}
platformBionicMap = map[string]string{
"bionic": "//build/bazel/platforms/os:bionic",
conditionsDefault: ConditionsDefaultSelectKey, // The default condition of an os select map.
}
platformOsArchMap = map[string]string{
osArchAndroidArm: "//build/bazel/platforms/os_arch:android_arm",
osArchAndroidArm64: "//build/bazel/platforms/os_arch:android_arm64",
@@ -117,6 +122,7 @@ const (
arch
os
osArch
bionic
productVariables
)
@@ -126,6 +132,7 @@ func (ct configurationType) String() string {
arch: "arch",
os: "os",
osArch: "arch_os",
bionic: "bionic",
productVariables: "product_variables",
}[ct]
}
@@ -148,6 +155,10 @@ func (ct configurationType) validateConfig(config string) {
if _, ok := platformOsArchMap[config]; !ok {
panic(fmt.Errorf("Unknown os+arch: %s", config))
}
case bionic:
if _, ok := platformBionicMap[config]; !ok {
panic(fmt.Errorf("Unknown for %s: %s", ct.String(), config))
}
case productVariables:
// do nothing
default:
@@ -167,6 +178,8 @@ func (ct configurationType) SelectKey(config string) string {
return platformOsMap[config]
case osArch:
return platformOsArchMap[config]
case bionic:
return platformBionicMap[config]
case productVariables:
if config == conditionsDefault {
return ConditionsDefaultSelectKey
@@ -186,6 +199,8 @@ var (
OsConfigurationAxis = ConfigurationAxis{configurationType: os}
// An axis for arch+os-specific configurations
OsArchConfigurationAxis = ConfigurationAxis{configurationType: osArch}
// An axis for bionic os-specific configurations
BionicConfigurationAxis = ConfigurationAxis{configurationType: bionic}
)
// ProductVariableConfigurationAxis returns an axis for the given product variable