Create (API) bp2build converters for droidstubs

- The converter runs for api_bp2build, not bp2build workspace
- Since droidstubs is an internal module created by java_sdk_library,
  the conversion encompasses the latter as well
- Since droidstubs do not have an api_surface attribute, this conversion
  uses naming convention to infer the api_surface represented by the api
  file e.g. *stubs.source -> publicapi, *stubs.source.system -> systemapi)
- Also adds an SdkIntraCore enum to represent the API surface provided
  by one core module to another

There is also ongoing work to check in java_api_contribution modules in
Soong. Once we have that, we can update this converter to operate on
that module type instead

Test: go test ./bp2build
Change-Id: Ia85828e04c738d9ffcc524856d7c3034ee29bbf9
This commit is contained in:
Spandan Das
2022-11-28 18:48:51 +00:00
parent 067210f70d
commit 0b555e323b
6 changed files with 231 additions and 3 deletions

View File

@@ -59,8 +59,14 @@ type apiDomain struct {
type apiDomainProperties struct {
// cc library contributions (.h files/.map.txt) of this API domain
// This dependency is a no-op in Soong, but the corresponding Bazel target in the bp2build workspace will provide a `CcApiContributionInfo` provider
// This dependency is a no-op in Soong, but the corresponding Bazel target in the api_bp2build workspace
// will provide a `CcApiContributionInfo` provider
Cc_api_contributions []string
// java library contributions (as .txt) of this API domain
// This dependency is a no-op in Soong, but the corresponding Bazel target in the api_bp2build workspace
// will provide a `JavaApiContributionInfo` provider
Java_api_contributions []string
}
func ApiDomainFactory() Module {
@@ -102,7 +108,8 @@ func contributionBazelAttributes(ctx TopDownMutatorContext, contributions []stri
}
type bazelApiDomainAttributes struct {
Cc_api_contributions bazel.LabelListAttribute
Cc_api_contributions bazel.LabelListAttribute
Java_api_contributions bazel.LabelListAttribute
}
var _ ApiProvider = (*apiDomain)(nil)
@@ -113,7 +120,8 @@ func (a *apiDomain) ConvertWithApiBp2build(ctx TopDownMutatorContext) {
Bzl_load_location: "//build/bazel/rules/apis:api_domain.bzl",
}
attrs := &bazelApiDomainAttributes{
Cc_api_contributions: contributionBazelAttributes(ctx, a.properties.Cc_api_contributions),
Cc_api_contributions: contributionBazelAttributes(ctx, a.properties.Cc_api_contributions),
Java_api_contributions: contributionBazelAttributes(ctx, a.properties.Java_api_contributions),
}
ctx.CreateBazelTargetModule(props, CommonAttributes{
Name: ctx.ModuleName(),