diff options
author | 2025-01-29 22:14:53 +0000 | |
---|---|---|
committer | 2025-01-30 14:45:26 +0000 | |
commit | c73d7b49a736f6e5e8660d5ffdcb27149031342f (patch) | |
tree | d9635afd19ae1f908e2295e36d4cbbf960d8f296 /aconfig | |
parent | ef57be9922faf3d4238e104d42fab559db5b5564 (diff) |
Update all_aconfig_declarations for multiple API surfaces
Bug: b/391344176
Test: presubmits
Flag: NONE exempt
Ignore-AOSP-First: Contains non-AOSP specifics (wear) will cp
Change-Id: I169b0ad63c4a5c92f3906f40c0924cf7e62c67e8
Diffstat (limited to 'aconfig')
-rw-r--r-- | aconfig/Android.bp | 31 | ||||
-rw-r--r-- | aconfig/all_aconfig_declarations.go | 37 |
2 files changed, 46 insertions, 22 deletions
diff --git a/aconfig/Android.bp b/aconfig/Android.bp index 6daa63c55..e8f7616d4 100644 --- a/aconfig/Android.bp +++ b/aconfig/Android.bp @@ -34,17 +34,22 @@ bootstrap_go_package { // but other verticals/platforms can override via soong config setting. all_aconfig_declarations { name: "all_aconfig_declarations", - api_signature_files: select(soong_config_variable("android_aconfig", "opt_platform_api_srcs"), { - "wear_sdk_api_srcs": [ - ":wear-sdk-api-current.txt", - ":wear-sdk-api-system-current.txt", - ], - default: [ - ":frameworks-base-api-current.txt", - ":frameworks-base-api-system-current.txt", - ":frameworks-base-api-system-server-current.txt", - ":frameworks-base-api-module-lib-current.txt", - ], - }), - finalized_flags_file: ":latest-finalized-flags", + api_surfaces: { + platform: { + api_signature_files: [ + ":frameworks-base-api-current.txt", + ":frameworks-base-api-system-current.txt", + ":frameworks-base-api-system-server-current.txt", + ":frameworks-base-api-module-lib-current.txt", + ], + finalized_flags_file: ":latest-finalized-flags", + }, + wear: { + api_signature_files: [ + ":wear-sdk-api-current.txt", + ":wear-sdk-api-system-current.txt", + ], + finalized_flags_file: ":latest-finalized-wear-flags", + }, + }, } diff --git a/aconfig/all_aconfig_declarations.go b/aconfig/all_aconfig_declarations.go index ec200997e..6f6a11e9c 100644 --- a/aconfig/all_aconfig_declarations.go +++ b/aconfig/all_aconfig_declarations.go @@ -19,8 +19,6 @@ import ( "slices" "android/soong/android" - - "github.com/google/blueprint/proptools" ) // A singleton module that collects all of the aconfig flags declared in the @@ -42,9 +40,18 @@ type allAconfigReleaseDeclarationsSingleton struct { intermediateTextProtoPath android.OutputPath } +type apiSurfaceContributorStruct struct { + Api_signature_files []string `android:"arch_variant,path"` + Finalized_flags_file string `android:"arch_variant,path"` +} + +type apiSurfacesStruct struct { + Platform apiSurfaceContributorStruct + Wear apiSurfaceContributorStruct +} + type allAconfigReleaseDeclarationsProperties struct { - Api_signature_files proptools.Configurable[[]string] `android:"arch_variant,path"` - Finalized_flags_file string `android:"arch_variant,path"` + Api_surfaces apiSurfacesStruct } type allAconfigDeclarationsSingleton struct { @@ -64,16 +71,26 @@ func (this *allAconfigDeclarationsSingleton) sortedConfigNames() []string { } func (this *allAconfigDeclarationsSingleton) GenerateAndroidBuildActions(ctx android.ModuleContext) { + // PLATFORM API surface (android platform: API surface provided via android.jar) + platformOutput := this.GenerateFinalizedFlagsForApiSurfaces(ctx, this.properties.Api_surfaces.Platform, "platform") + // WEAR API surface (wear-os platform: API surface provided via wear-sdk.jar) + wearOutput := this.GenerateFinalizedFlagsForApiSurfaces(ctx, this.properties.Api_surfaces.Wear, "wear") + + ctx.Phony("all_aconfig_declarations", platformOutput, wearOutput) +} + +func (this *allAconfigDeclarationsSingleton) GenerateFinalizedFlagsForApiSurfaces(ctx android.ModuleContext, apiSurface apiSurfaceContributorStruct, surfaceName string) android.Path { apiSignatureFiles := android.Paths{} - for _, apiSignatureFile := range this.properties.Api_signature_files.GetOrDefault(ctx, nil) { + for _, apiSignatureFile := range apiSurface.Api_signature_files { if path := android.PathForModuleSrc(ctx, apiSignatureFile); path != nil { apiSignatureFiles = append(apiSignatureFiles, path) } } - finalizedFlagsFile := android.PathForModuleSrc(ctx, this.properties.Finalized_flags_file) + finalizedFlagsFile := android.PathForModuleSrc(ctx, apiSurface.Finalized_flags_file) + // parsed flags file is a universal blob, used by all API surfaces (contains all known flags) parsedFlagsFile := android.PathForIntermediates(ctx, "all_aconfig_declarations.pb") - output := android.PathForIntermediates(ctx, "finalized-flags.txt") + output := android.PathForIntermediates(ctx, "finalized-flags-"+surfaceName+".txt") ctx.Build(pctx, android.BuildParams{ Rule: RecordFinalizedFlagsRule, @@ -85,7 +102,8 @@ func (this *allAconfigDeclarationsSingleton) GenerateAndroidBuildActions(ctx and "parsed_flags_file": "--parsed-flags-file " + parsedFlagsFile.String(), }, }) - ctx.Phony("all_aconfig_declarations", output) + + return output } func (this *allAconfigDeclarationsSingleton) GenerateSingletonBuildActions(ctx android.SingletonContext) { @@ -154,5 +172,6 @@ func (this *allAconfigDeclarationsSingleton) MakeVars(ctx android.MakeVarsContex ctx.DistForGoalWithFilename(goal, this.releaseMap[rcName].intermediateTextProtoPath, assembleFileName(rcName, "flags.textproto")) } } - ctx.DistForGoalWithFilename("sdk", android.PathForIntermediates(ctx, "finalized-flags.txt"), "finalized-flags.txt") + ctx.DistForGoalWithFilename("sdk", android.PathForIntermediates(ctx, "finalized-flags-platform.txt"), "finalized-flags.txt") + ctx.DistForGoalWithFilename("sdk", android.PathForIntermediates(ctx, "finalized-flags-wear.txt"), "apistubs/clockwork/finalized-flags.txt") } |