Add a function to create config_setting(s)
The use case for this is creating config_setting(s) specific to an apex variant and selecting stub/impl in that config_setting. We likely need only a handful of such config_setting(s), but determining that list requires iterating the build graph. Test: go test ./bp2build Change-Id: I9aa552e3d0bcf67513023c3a7d4bbf8fae464ee4
This commit is contained in:
@@ -317,6 +317,8 @@ type customProps struct {
|
||||
One_to_many_prop *bool
|
||||
|
||||
Api *string // File describing the APIs of this module
|
||||
|
||||
Test_config_setting *bool // Used to test generation of config_setting targets
|
||||
}
|
||||
|
||||
type customModule struct {
|
||||
@@ -490,6 +492,27 @@ func (m *customModule) ConvertWithBp2build(ctx android.TopDownMutatorContext) {
|
||||
}
|
||||
|
||||
ctx.CreateBazelTargetModule(props, android.CommonAttributes{Name: m.Name()}, attrs)
|
||||
|
||||
if proptools.Bool(m.props.Test_config_setting) {
|
||||
m.createConfigSetting(ctx)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func (m *customModule) createConfigSetting(ctx android.TopDownMutatorContext) {
|
||||
csa := bazel.ConfigSettingAttributes{
|
||||
Flag_values: bazel.StringMapAttribute{
|
||||
"//build/bazel/rules/my_string_setting": m.Name(),
|
||||
},
|
||||
}
|
||||
ca := android.CommonAttributes{
|
||||
Name: m.Name() + "_config_setting",
|
||||
}
|
||||
ctx.CreateBazelConfigSetting(
|
||||
csa,
|
||||
ca,
|
||||
ctx.ModuleDir(),
|
||||
)
|
||||
}
|
||||
|
||||
var _ android.ApiProvider = (*customModule)(nil)
|
||||
|
Reference in New Issue
Block a user