Convert the build flag RELEASE_EXPORT_RUNTIME_APIS to a product variable

RELEASE_EXPORT_RUNTIME_APIS build flag is currently used to modify the
filter condition for the "exportable" stubs, so that it exposes wider
set of flagged apis (ENABLED && READ_ONLY vs ENABLED || READ_WRITE).
This flag was originally introduced as a build flag to be enabled in
specific release configurations, but instead this is used as a product
variable that will be enabled in the product `sdk_with_runtime_apis`,
which will be introduced in a future change.

Test: m nothing --no-skip-soong-tests
Bug: 326312949
Change-Id: Ieb3cee517dd6cedcca844a9eab270aedf8199d4e
This commit is contained in:
Jihoon Kang 2024-02-22 19:52:46 +00:00
parent b36fc547c0
commit 35349466cd
3 changed files with 6 additions and 2 deletions

View file

@ -213,7 +213,7 @@ func (c Config) ReleaseDefaultModuleBuildFromSource() bool {
// Enables flagged apis annotated with READ_WRITE aconfig flags to be included in the stubs
// and hiddenapi flags so that they are accessible at runtime
func (c Config) ReleaseExportRuntimeApis() bool {
return c.config.productVariables.GetBuildFlagBool("RELEASE_EXPORT_RUNTIME_APIS")
return Bool(c.config.productVariables.ExportRuntimeApis)
}
// Enables ABI monitoring of NDK libraries

View file

@ -498,6 +498,8 @@ type ProductVariables struct {
BuildIgnoreApexContributionContents []string `json:",omitempty"`
HiddenapiExportableStubs *bool `json:",omitempty"`
ExportRuntimeApis *bool `json:",omitempty"`
}
type PartitionQualifiedVariablesType struct {

View file

@ -22,6 +22,8 @@ import (
"testing"
"android/soong/android"
"github.com/google/blueprint/proptools"
)
func TestDroidstubs(t *testing.T) {
@ -419,8 +421,8 @@ func TestReleaseExportRuntimeApis(t *testing.T) {
android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
variables.BuildFlags = map[string]string{
"RELEASE_HIDDEN_API_EXPORTABLE_STUBS": "true",
"RELEASE_EXPORT_RUNTIME_APIS": "true",
}
variables.ExportRuntimeApis = proptools.BoolPtr(true)
}),
android.FixtureMergeMockFs(map[string][]byte{
"a/A.java": nil,