bp2build: framework for generating BazelTargetModules.
This CL creates the framework necessary for generating BazelTargetModules from regular Soong Android modules. BazelTargetModules are code-generated into Bazel targets in BUILD files. See the follow-up CL for examples of creating filegroup/genrule BazelTargetModules. Test: GENERATE_BAZEL_FILES=true m nothing # creates out/soong/bp2build with no BUILD files, because there are no BazelTargetModules in the module graph. Change-Id: I33a96365bd439043b13af6db9e439592e9983188
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
package android
|
||||
|
||||
import (
|
||||
"android/soong/bazel"
|
||||
"fmt"
|
||||
"os"
|
||||
"path"
|
||||
@@ -491,6 +492,26 @@ type Module interface {
|
||||
TransitivePackagingSpecs() []PackagingSpec
|
||||
}
|
||||
|
||||
type BazelTargetModule interface {
|
||||
Module
|
||||
|
||||
BazelTargetModuleProperties() *bazel.BazelTargetModuleProperties
|
||||
}
|
||||
|
||||
func InitBazelTargetModule(module BazelTargetModule) {
|
||||
module.AddProperties(module.BazelTargetModuleProperties())
|
||||
InitAndroidModule(module)
|
||||
}
|
||||
|
||||
type BazelTargetModuleBase struct {
|
||||
ModuleBase
|
||||
Properties bazel.BazelTargetModuleProperties
|
||||
}
|
||||
|
||||
func (btmb *BazelTargetModuleBase) BazelTargetModuleProperties() *bazel.BazelTargetModuleProperties {
|
||||
return &btmb.Properties
|
||||
}
|
||||
|
||||
// Qualified id for a module
|
||||
type qualifiedModuleName struct {
|
||||
// The package (i.e. directory) in which the module is defined, without trailing /
|
||||
@@ -1069,6 +1090,9 @@ type ModuleBase struct {
|
||||
archProperties [][]interface{}
|
||||
customizableProperties []interface{}
|
||||
|
||||
// Properties specific to the Blueprint to BUILD migration.
|
||||
bazelTargetModuleProperties bazel.BazelTargetModuleProperties
|
||||
|
||||
// Information about all the properties on the module that contains visibility rules that need
|
||||
// checking.
|
||||
visibilityPropertyInfo []visibilityProperty
|
||||
|
Reference in New Issue
Block a user