sh_binary: Use pointers for optional attributes

Empty strings for filename and sub_dir were unnecessicarily always being
propagated to BUILD files.

Test: build/bazel/ci/bp2build.sh
Change-Id: I39d6af12b1decd1d3813b92daa862ebc025daa7d
This commit is contained in:
Liz Kammer
2021-12-21 15:36:11 -05:00
parent 68542bfcb5
commit 48c6ead90d
2 changed files with 23 additions and 6 deletions

View File

@@ -73,3 +73,20 @@ func TestShBinarySimple(t *testing.T) {
})},
})
}
func TestShBinaryDefaults(t *testing.T) {
runShBinaryTestCase(t, bp2buildTestCase{
description: "sh_binary test",
moduleTypeUnderTest: "sh_binary",
moduleTypeUnderTestFactory: sh.ShBinaryFactory,
blueprint: `sh_binary {
name: "foo",
src: "foo.sh",
bazel_module: { bp2build_available: true },
}`,
expectedBazelTargets: []string{
makeBazelTarget("sh_binary", "foo", attrNameToString{
"srcs": `["foo.sh"]`,
})},
})
}

View File

@@ -511,8 +511,8 @@ func ShTestHostFactory() android.Module {
type bazelShBinaryAttributes struct {
Srcs bazel.LabelListAttribute
Filename string
Sub_dir string
Filename *string
Sub_dir *string
// Bazel also supports the attributes below, but (so far) these are not required for Bionic
// deps
// data
@@ -538,14 +538,14 @@ func (m *ShBinary) ConvertWithBp2build(ctx android.TopDownMutatorContext) {
srcs := bazel.MakeLabelListAttribute(
android.BazelLabelForModuleSrc(ctx, []string{*m.properties.Src}))
var filename string
var filename *string
if m.properties.Filename != nil {
filename = *m.properties.Filename
filename = m.properties.Filename
}
var subDir string
var subDir *string
if m.properties.Sub_dir != nil {
subDir = *m.properties.Sub_dir
subDir = m.properties.Sub_dir
}
attrs := &bazelShBinaryAttributes{