Implement bp2build for the package
module
* We are interested mostly in the conversion the `default_applicable_licenses` attribute, as `default_visibility` cannot be handled until every module's `visibility` is handled. * Several referenced license modules had to be manually enabled for conversion, and likewise a few trivial Android.bp containing only package and license modules. * As Bazel allows only a single `package` rule, the package rules in a manually converted BUILD.bazel files were removed (in external/protobuf and prebuilts/clang/host/linux-x86 trees). * The converted package rule is emitted before the `load` statements per Bazel documentation. Bug: 190817312 Test: treehugger Change-Id: If8bf6fee1580177de3bb402923615bcd48923ed2
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
package android
|
||||
|
||||
import (
|
||||
"android/soong/bazel"
|
||||
"github.com/google/blueprint"
|
||||
"github.com/google/blueprint/proptools"
|
||||
)
|
||||
@@ -37,12 +38,33 @@ type packageProperties struct {
|
||||
Default_applicable_licenses []string
|
||||
}
|
||||
|
||||
type bazelPackageAttributes struct {
|
||||
Default_visibility []string
|
||||
Default_applicable_licenses bazel.LabelListAttribute
|
||||
}
|
||||
|
||||
type packageModule struct {
|
||||
ModuleBase
|
||||
BazelModuleBase
|
||||
|
||||
properties packageProperties
|
||||
}
|
||||
|
||||
var _ Bazelable = &packageModule{}
|
||||
|
||||
func (p *packageModule) ConvertWithBp2build(ctx TopDownMutatorContext) {
|
||||
ctx.CreateBazelTargetModule(
|
||||
bazel.BazelTargetModuleProperties{
|
||||
Rule_class: "package",
|
||||
},
|
||||
CommonAttributes{},
|
||||
&bazelPackageAttributes{
|
||||
Default_applicable_licenses: bazel.MakeLabelListAttribute(BazelLabelForModuleDeps(ctx, p.properties.Default_applicable_licenses)),
|
||||
// FIXME(asmundak): once b/221436821 is resolved
|
||||
Default_visibility: []string{"//visibility:public"},
|
||||
})
|
||||
}
|
||||
|
||||
func (p *packageModule) GenerateAndroidBuildActions(ModuleContext) {
|
||||
// Nothing to do.
|
||||
}
|
||||
@@ -59,7 +81,7 @@ func (p *packageModule) qualifiedModuleId(ctx BaseModuleContext) qualifiedModule
|
||||
func PackageFactory() Module {
|
||||
module := &packageModule{}
|
||||
|
||||
module.AddProperties(&module.properties)
|
||||
module.AddProperties(&module.properties, &module.commonProperties.BazelConversionStatus)
|
||||
|
||||
// The name is the relative path from build root to the directory containing this
|
||||
// module. Set that name at the earliest possible moment that information is available
|
||||
@@ -76,5 +98,7 @@ func PackageFactory() Module {
|
||||
// its checking and parsing phases so make it the primary licenses property.
|
||||
setPrimaryLicensesProperty(module, "default_applicable_licenses", &module.properties.Default_applicable_licenses)
|
||||
|
||||
InitBazelModule(module)
|
||||
|
||||
return module
|
||||
}
|
||||
|
Reference in New Issue
Block a user