Support filename and sub_dir attributes in sh_binary

Test: test by building system/timezone/apex:com.android.tzdata
Change-Id: I08114910fccbdacf6750e237d3e80ba37fde7651
This commit is contained in:
Yu Liu
2021-11-23 14:53:41 -08:00
parent a5524e3272
commit b302455879
2 changed files with 23 additions and 4 deletions

View File

@@ -62,11 +62,15 @@ func TestShBinarySimple(t *testing.T) {
blueprint: `sh_binary {
name: "foo",
src: "foo.sh",
filename: "foo.exe",
sub_dir: "sub",
bazel_module: { bp2build_available: true },
}`,
expectedBazelTargets: []string{
makeBazelTarget("sh_binary", "foo", attrNameToString{
"srcs": `["foo.sh"]`,
"srcs": `["foo.sh"]`,
"filename": `"foo.exe"`,
"sub_dir": `"sub"`,
})},
})
}

View File

@@ -516,7 +516,9 @@ func ShTestHostFactory() android.Module {
}
type bazelShBinaryAttributes struct {
Srcs bazel.LabelListAttribute
Srcs bazel.LabelListAttribute
Filename string
Sub_dir string
// Bazel also supports the attributes below, but (so far) these are not required for Bionic
// deps
// data
@@ -547,12 +549,25 @@ func ShBinaryBp2Build(ctx android.TopDownMutatorContext) {
srcs := bazel.MakeLabelListAttribute(
android.BazelLabelForModuleSrc(ctx, []string{*m.properties.Src}))
var filename string
if m.properties.Filename != nil {
filename = *m.properties.Filename
}
var subDir string
if m.properties.Sub_dir != nil {
subDir = *m.properties.Sub_dir
}
attrs := &bazelShBinaryAttributes{
Srcs: srcs,
Srcs: srcs,
Filename: filename,
Sub_dir: subDir,
}
props := bazel.BazelTargetModuleProperties{
Rule_class: "sh_binary",
Rule_class: "sh_binary",
Bzl_load_location: "//build/bazel/rules:sh_binary.bzl",
}
ctx.CreateBazelTargetModule(props, android.CommonAttributes{Name: m.Name()}, attrs)