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
diff --git a/bazel/configurability.go b/bazel/configurability.go
index 282c606..35f194d 100644
--- a/bazel/configurability.go
+++ b/bazel/configurability.go
@@ -91,6 +91,11 @@
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 @@
arch
os
osArch
+ bionic
productVariables
)
@@ -126,6 +132,7 @@
arch: "arch",
os: "os",
osArch: "arch_os",
+ bionic: "bionic",
productVariables: "product_variables",
}[ct]
}
@@ -148,6 +155,10 @@
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 @@
return platformOsMap[config]
case osArch:
return platformOsArchMap[config]
+ case bionic:
+ return platformBionicMap[config]
case productVariables:
if config == conditionsDefault {
return ConditionsDefaultSelectKey
@@ -186,6 +199,8 @@
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