bp2build data property -> data attr in gensrcs
Test: go test bp2build tests Change-Id: I2192cf9846a5783385397337d40cca85a1ef73e7
This commit is contained in:
parent
81fec18a5e
commit
8bd92429e5
2 changed files with 26 additions and 12 deletions
|
@ -33,7 +33,8 @@ func TestGensrcs(t *testing.T) {
|
|||
name: "foo",
|
||||
srcs: ["test/input.txt", ":external_files"],
|
||||
tool_files: ["program.py"],
|
||||
cmd: "$(location program.py) $(in) $(out)",
|
||||
cmd: "$(location program.py) $(in) $(out) $(location foo/file.txt) $(location :external_files)",
|
||||
data: ["foo/file.txt", ":external_files"],
|
||||
output_extension: "out",
|
||||
bazel_module: { bp2build_available: true },
|
||||
}`,
|
||||
|
@ -44,7 +45,11 @@ func TestGensrcs(t *testing.T) {
|
|||
]`,
|
||||
"tools": `["program.py"]`,
|
||||
"output_extension": `"out"`,
|
||||
"cmd": `"$(location program.py) $(SRC) $(OUT)"`,
|
||||
"cmd": `"$(location program.py) $(SRC) $(OUT) $(location foo/file.txt) $(location :external_files__BP2BUILD__MISSING__DEP)"`,
|
||||
"data": `[
|
||||
"foo/file.txt",
|
||||
":external_files__BP2BUILD__MISSING__DEP",
|
||||
]`,
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
|
@ -873,6 +873,7 @@ type bazelGensrcsAttributes struct {
|
|||
Output_extension *string
|
||||
Tools bazel.LabelListAttribute
|
||||
Cmd string
|
||||
Data bazel.LabelListAttribute
|
||||
}
|
||||
|
||||
const defaultShardSize = 50
|
||||
|
@ -952,6 +953,23 @@ func (m *Module) ConvertWithBp2build(ctx android.TopDownMutatorContext) {
|
|||
allReplacements.Append(tools.Value)
|
||||
allReplacements.Append(bazel.FirstUniqueBazelLabelList(srcs_labels))
|
||||
|
||||
// The Output_extension prop is not in an immediately accessible field
|
||||
// in the Module struct, so use GetProperties and cast it
|
||||
// to the known struct prop.
|
||||
var outputExtension *string
|
||||
var data bazel.LabelListAttribute
|
||||
if ctx.ModuleType() == "gensrcs" {
|
||||
for _, propIntf := range m.GetProperties() {
|
||||
if props, ok := propIntf.(*genSrcsProperties); ok {
|
||||
outputExtension = props.Output_extension
|
||||
dataFiles := android.BazelLabelForModuleSrc(ctx, props.Data)
|
||||
allReplacements.Append(bazel.FirstUniqueBazelLabelList(dataFiles))
|
||||
data = bazel.MakeLabelListAttribute(dataFiles)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Replace in and out variables with $< and $@
|
||||
var cmd string
|
||||
if m.properties.Cmd != nil {
|
||||
|
@ -980,16 +998,6 @@ func (m *Module) ConvertWithBp2build(ctx android.TopDownMutatorContext) {
|
|||
tags := android.ApexAvailableTagsWithoutTestApexes(ctx, m)
|
||||
|
||||
if ctx.ModuleType() == "gensrcs" {
|
||||
// The Output_extension prop is not in an immediately accessible field
|
||||
// in the Module struct, so use GetProperties and cast it
|
||||
// to the known struct prop.
|
||||
var outputExtension *string
|
||||
for _, propIntf := range m.GetProperties() {
|
||||
if props, ok := propIntf.(*genSrcsProperties); ok {
|
||||
outputExtension = props.Output_extension
|
||||
break
|
||||
}
|
||||
}
|
||||
props := bazel.BazelTargetModuleProperties{
|
||||
Rule_class: "gensrcs",
|
||||
Bzl_load_location: "//build/bazel/rules:gensrcs.bzl",
|
||||
|
@ -999,6 +1007,7 @@ func (m *Module) ConvertWithBp2build(ctx android.TopDownMutatorContext) {
|
|||
Output_extension: outputExtension,
|
||||
Cmd: cmd,
|
||||
Tools: tools,
|
||||
Data: data,
|
||||
}
|
||||
ctx.CreateBazelTargetModule(props, android.CommonAttributes{
|
||||
Name: m.Name(),
|
||||
|
|
Loading…
Reference in a new issue