diff --git a/java/droidstubs.go b/java/droidstubs.go index e506ee6d1..76c8d8890 100644 --- a/java/droidstubs.go +++ b/java/droidstubs.go @@ -242,18 +242,16 @@ type stubsCommandParams struct { stubConfig stubsCommandConfigParams } type stubsCommandConfigParams struct { - stubsType StubsType - javaVersion javaVersion - deps deps - checkApi bool - generateStubs bool - doApiLint bool - doCheckReleased bool - writeSdkValues bool - migratingNullability bool - validatingNullability bool - annotationsEnabled bool - apiLevelsAnnotationsEnabled bool + stubsType StubsType + javaVersion javaVersion + deps deps + checkApi bool + generateStubs bool + doApiLint bool + doCheckReleased bool + writeSdkValues bool + migratingNullability bool + validatingNullability bool } // droidstubs passes sources files through Metalava to generate stub .java files that only contain the API to be @@ -523,28 +521,30 @@ func (d *Droidstubs) stubsFlags(ctx android.ModuleContext, cmd *android.RuleBuil } func (d *Droidstubs) annotationsFlags(ctx android.ModuleContext, cmd *android.RuleBuilderCommand, params annotationFlagsParams) { - cmd.Flag(config.MetalavaAnnotationsFlags) + if Bool(d.properties.Annotations_enabled) { + cmd.Flag(config.MetalavaAnnotationsFlags) - if params.migratingNullability { - previousApi := android.PathForModuleSrc(ctx, String(d.properties.Previous_api)) - cmd.FlagWithInput("--migrate-nullness ", previousApi) + if params.migratingNullability { + previousApi := android.PathForModuleSrc(ctx, String(d.properties.Previous_api)) + cmd.FlagWithInput("--migrate-nullness ", previousApi) + } + + if s := String(d.properties.Validate_nullability_from_list); s != "" { + cmd.FlagWithInput("--validate-nullability-from-list ", android.PathForModuleSrc(ctx, s)) + } + + if params.validatingNullability { + cmd.FlagWithOutput("--nullability-warnings-txt ", params.nullabilityWarningsFile) + } + + cmd.FlagWithOutput("--extract-annotations ", params.annotationsZip) + + if len(d.properties.Merge_annotations_dirs) != 0 { + d.mergeAnnoDirFlags(ctx, cmd) + } + + cmd.Flag(config.MetalavaAnnotationsWarningsFlags) } - - if s := String(d.properties.Validate_nullability_from_list); s != "" { - cmd.FlagWithInput("--validate-nullability-from-list ", android.PathForModuleSrc(ctx, s)) - } - - if params.validatingNullability { - cmd.FlagWithOutput("--nullability-warnings-txt ", params.nullabilityWarningsFile) - } - - cmd.FlagWithOutput("--extract-annotations ", params.annotationsZip) - - if len(d.properties.Merge_annotations_dirs) != 0 { - d.mergeAnnoDirFlags(ctx, cmd) - } - - cmd.Flag(config.MetalavaAnnotationsWarningsFlags) } func (d *Droidstubs) mergeAnnoDirFlags(ctx android.ModuleContext, cmd *android.RuleBuilderCommand) { @@ -569,11 +569,9 @@ func (d *Droidstubs) inclusionAnnotationsFlags(ctx android.ModuleContext, cmd *a }) } -func (d *Droidstubs) apiLevelsAnnotationsFlags(ctx android.ModuleContext, cmd *android.RuleBuilderCommand, params stubsCommandParams) { +func (d *Droidstubs) apiLevelsAnnotationsFlags(ctx android.ModuleContext, cmd *android.RuleBuilderCommand, stubsType StubsType, apiVersionsXml android.WritablePath) { var apiVersions android.Path - stubsType := params.stubConfig.stubsType - apiVersionsXml := params.apiVersionsXml - if params.stubConfig.apiLevelsAnnotationsEnabled { + if proptools.Bool(d.properties.Api_levels_annotations_enabled) { d.apiLevelsGenerationFlags(ctx, cmd, stubsType, apiVersionsXml) apiVersions = apiVersionsXml } else { @@ -822,11 +820,9 @@ func (d *Droidstubs) commonMetalavaStubCmd(ctx android.ModuleContext, rule *andr annotationsZip: params.annotationsZip, } - if params.stubConfig.annotationsEnabled { - d.annotationsFlags(ctx, cmd, annotationParams) - } + d.annotationsFlags(ctx, cmd, annotationParams) d.inclusionAnnotationsFlags(ctx, cmd) - d.apiLevelsAnnotationsFlags(ctx, cmd, params) + d.apiLevelsAnnotationsFlags(ctx, cmd, params.stubConfig.stubsType, params.apiVersionsXml) d.expandArgs(ctx, cmd) @@ -856,13 +852,13 @@ func (d *Droidstubs) everythingStubCmd(ctx android.ModuleContext, params stubsCo d.everythingArtifacts.metadataZip = android.PathForModuleOut(ctx, Everything.String(), ctx.ModuleName()+"-metadata.zip") } - if params.annotationsEnabled { + if Bool(d.properties.Annotations_enabled) { if params.validatingNullability { d.everythingArtifacts.nullabilityWarningsFile = android.PathForModuleOut(ctx, Everything.String(), ctx.ModuleName()+"_nullability_warnings.txt") } d.everythingArtifacts.annotationsZip = android.PathForModuleOut(ctx, Everything.String(), ctx.ModuleName()+"_annotations.zip") } - if params.apiLevelsAnnotationsEnabled { + if Bool(d.properties.Api_levels_annotations_enabled) { d.everythingArtifacts.apiVersionsXml = android.PathForModuleOut(ctx, Everything.String(), "api-versions.xml") } @@ -1040,7 +1036,7 @@ func (d *Droidstubs) exportableStubCmd(ctx android.ModuleContext, params stubsCo optionalCmdParams.metadataDir = d.exportableArtifacts.metadataDir } - if params.annotationsEnabled { + if Bool(d.properties.Annotations_enabled) { if params.validatingNullability { d.exportableArtifacts.nullabilityWarningsFile = android.PathForModuleOut(ctx, params.stubsType.String(), ctx.ModuleName()+"_nullability_warnings.txt") optionalCmdParams.nullabilityWarningsFile = d.exportableArtifacts.nullabilityWarningsFile @@ -1048,7 +1044,7 @@ func (d *Droidstubs) exportableStubCmd(ctx android.ModuleContext, params stubsCo d.exportableArtifacts.annotationsZip = android.PathForModuleOut(ctx, params.stubsType.String(), ctx.ModuleName()+"_annotations.zip") optionalCmdParams.annotationsZip = d.exportableArtifacts.annotationsZip } - if params.apiLevelsAnnotationsEnabled { + if Bool(d.properties.Api_levels_annotations_enabled) { d.exportableArtifacts.apiVersionsXml = android.PathForModuleOut(ctx, params.stubsType.String(), "api-versions.xml") optionalCmdParams.apiVersionsXml = d.exportableArtifacts.apiVersionsXml } @@ -1144,20 +1140,16 @@ func (d *Droidstubs) GenerateAndroidBuildActions(ctx android.ModuleContext) { checkApi := apiCheckEnabled(ctx, d.properties.Check_api.Current, "current") || apiCheckEnabled(ctx, d.properties.Check_api.Last_released, "last_released") - apiLevelsAnnotationsEnabled := proptools.Bool(d.properties.Api_levels_annotations_enabled) - stubCmdParams := stubsCommandConfigParams{ - javaVersion: javaVersion, - deps: deps, - checkApi: checkApi, - generateStubs: generateStubs, - doApiLint: doApiLint, - doCheckReleased: doCheckReleased, - writeSdkValues: writeSdkValues, - migratingNullability: migratingNullability, - validatingNullability: validatingNullability, - annotationsEnabled: annotationsEnabled, - apiLevelsAnnotationsEnabled: apiLevelsAnnotationsEnabled, + javaVersion: javaVersion, + deps: deps, + checkApi: checkApi, + generateStubs: generateStubs, + doApiLint: doApiLint, + doCheckReleased: doCheckReleased, + writeSdkValues: writeSdkValues, + migratingNullability: migratingNullability, + validatingNullability: validatingNullability, } stubCmdParams.stubsType = Everything // Create default (i.e. "everything" stubs) rule for metalava