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
diff --git a/android/api_domain.go b/android/api_domain.go
index 3265148..bdd4e6f 100644
--- a/android/api_domain.go
+++ b/android/api_domain.go
@@ -59,8 +59,14 @@
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 @@
}
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 @@
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(),
diff --git a/android/sdk_version.go b/android/sdk_version.go
index c188c48..d73c912 100644
--- a/android/sdk_version.go
+++ b/android/sdk_version.go
@@ -44,6 +44,7 @@
SdkNone
SdkCore
SdkCorePlatform
+ SdkIntraCore // API surface provided by one core module to another
SdkPublic
SdkSystem
SdkTest
@@ -69,6 +70,8 @@
return "core"
case SdkCorePlatform:
return "core_platform"
+ case SdkIntraCore:
+ return "intracore"
case SdkModule:
return "module-lib"
case SdkSystemServer: