Support empty strings in bp2build

Previously, could not set an empty string as a value of an attribute;
however, this is necessary in some cases. To not unnecessarily create an
empty string, use string pointers for attributes rather than strings.

Test: go test bp2build tests
Change-Id: I03b3a3567452d455246d22d81f86c317d06b7c39
This commit is contained in:
Liz Kammer
2021-12-01 10:09:34 -05:00
parent 7c721018bb
commit 46fb7aba4d
7 changed files with 57 additions and 28 deletions

View File

@@ -21,6 +21,7 @@ import (
"android/soong/android"
"android/soong/bazel"
"github.com/google/blueprint/proptools"
)
@@ -46,7 +47,7 @@ func PythonLibraryHostFactory() android.Module {
type bazelPythonLibraryAttributes struct {
Srcs bazel.LabelListAttribute
Deps bazel.LabelListAttribute
Srcs_version string
Srcs_version *string
}
func PythonLibraryHostBp2Build(ctx android.TopDownMutatorContext) {
@@ -74,11 +75,11 @@ func pythonLibBp2Build(ctx android.TopDownMutatorContext, modType string) {
// Bionic.
py3Enabled := proptools.BoolDefault(m.properties.Version.Py3.Enabled, true)
py2Enabled := proptools.BoolDefault(m.properties.Version.Py2.Enabled, false)
var python_version string
var python_version *string
if py2Enabled && !py3Enabled {
python_version = "PY2"
python_version = &pyVersion2
} else if !py2Enabled && py3Enabled {
python_version = "PY3"
python_version = &pyVersion3
} else if !py2Enabled && !py3Enabled {
panic(fmt.Errorf(
"error for '%s' module: bp2build's %s converter doesn't understand having "+