aboutsummaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorJihoon Kang <jihoonkang@google.com>2024-01-26 22:37:41 +0000
committerJihoon Kang <jihoonkang@google.com>2024-02-27 01:01:44 +0000
commit6b93b38e34270aa9893dfc4bbb7b2f38a0031d4e (patch)
tree8265365aebfe110d53541c6dc59b2cfd35efb64a /java
parentbffd7fbabae6155350766303fe27b78aa94f3de4 (diff)
Additional cleanup prior to adding the runtime stubs
This change performs additional cleanups in the build rules of the droidstubs module, specifically optionalizing annotationFlags(...) and apiLevelsAnnotationsFlags(...). This is required as "runtime" stubs would not generate other artifacts than the stubs, and thus `stubsArtifacts` would not be generated for "runtime". Test: m nothing Bug: 319162970 Change-Id: Ia009df3d01f49841d5041fb2dfdfa7ef8671bf18
Diffstat (limited to 'java')
-rw-r--r--java/droidstubs.go98
1 files changed, 53 insertions, 45 deletions
diff --git a/java/droidstubs.go b/java/droidstubs.go
index 51503f22a..6ca59d1db 100644
--- a/java/droidstubs.go
+++ b/java/droidstubs.go
@@ -229,16 +229,18 @@ 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
+ stubsType StubsType
+ javaVersion javaVersion
+ deps deps
+ checkApi bool
+ generateStubs bool
+ doApiLint bool
+ doCheckReleased bool
+ writeSdkValues bool
+ migratingNullability bool
+ validatingNullability bool
+ annotationsEnabled bool
+ apiLevelsAnnotationsEnabled bool
}
// droidstubs passes sources files through Metalava to generate stub .java files that only contain the API to be
@@ -508,30 +510,28 @@ func (d *Droidstubs) stubsFlags(ctx android.ModuleContext, cmd *android.RuleBuil
}
func (d *Droidstubs) annotationsFlags(ctx android.ModuleContext, cmd *android.RuleBuilderCommand, params annotationFlagsParams) {
- if Bool(d.properties.Annotations_enabled) {
- cmd.Flag(config.MetalavaAnnotationsFlags)
+ cmd.Flag(config.MetalavaAnnotationsFlags)
- 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.migratingNullability {
+ previousApi := android.PathForModuleSrc(ctx, String(d.properties.Previous_api))
+ cmd.FlagWithInput("--migrate-nullness ", previousApi)
+ }
- if params.validatingNullability {
- cmd.FlagWithOutput("--nullability-warnings-txt ", params.nullabilityWarningsFile)
- }
+ if s := String(d.properties.Validate_nullability_from_list); s != "" {
+ cmd.FlagWithInput("--validate-nullability-from-list ", android.PathForModuleSrc(ctx, s))
+ }
- cmd.FlagWithOutput("--extract-annotations ", params.annotationsZip)
+ if params.validatingNullability {
+ cmd.FlagWithOutput("--nullability-warnings-txt ", params.nullabilityWarningsFile)
+ }
- if len(d.properties.Merge_annotations_dirs) != 0 {
- d.mergeAnnoDirFlags(ctx, cmd)
- }
+ cmd.FlagWithOutput("--extract-annotations ", params.annotationsZip)
- cmd.Flag(config.MetalavaAnnotationsWarningsFlags)
+ 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) {
@@ -556,9 +556,11 @@ func (d *Droidstubs) inclusionAnnotationsFlags(ctx android.ModuleContext, cmd *a
})
}
-func (d *Droidstubs) apiLevelsAnnotationsFlags(ctx android.ModuleContext, cmd *android.RuleBuilderCommand, stubsType StubsType, apiVersionsXml android.WritablePath) {
+func (d *Droidstubs) apiLevelsAnnotationsFlags(ctx android.ModuleContext, cmd *android.RuleBuilderCommand, params stubsCommandParams) {
var apiVersions android.Path
- if proptools.Bool(d.properties.Api_levels_annotations_enabled) {
+ stubsType := params.stubConfig.stubsType
+ apiVersionsXml := params.apiVersionsXml
+ if params.stubConfig.apiLevelsAnnotationsEnabled {
d.apiLevelsGenerationFlags(ctx, cmd, stubsType, apiVersionsXml)
apiVersions = apiVersionsXml
} else {
@@ -807,9 +809,11 @@ func (d *Droidstubs) commonMetalavaStubCmd(ctx android.ModuleContext, rule *andr
annotationsZip: params.annotationsZip,
}
- d.annotationsFlags(ctx, cmd, annotationParams)
+ if params.stubConfig.annotationsEnabled {
+ d.annotationsFlags(ctx, cmd, annotationParams)
+ }
d.inclusionAnnotationsFlags(ctx, cmd)
- d.apiLevelsAnnotationsFlags(ctx, cmd, params.stubConfig.stubsType, params.apiVersionsXml)
+ d.apiLevelsAnnotationsFlags(ctx, cmd, params)
d.expandArgs(ctx, cmd)
@@ -839,13 +843,13 @@ func (d *Droidstubs) everythingStubCmd(ctx android.ModuleContext, params stubsCo
d.everythingArtifacts.metadataZip = android.PathForModuleOut(ctx, Everything.String(), ctx.ModuleName()+"-metadata.zip")
}
- if Bool(d.properties.Annotations_enabled) {
+ if params.annotationsEnabled {
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 Bool(d.properties.Api_levels_annotations_enabled) {
+ if params.apiLevelsAnnotationsEnabled {
d.everythingArtifacts.apiVersionsXml = android.PathForModuleOut(ctx, Everything.String(), "api-versions.xml")
}
@@ -1023,7 +1027,7 @@ func (d *Droidstubs) exportableStubCmd(ctx android.ModuleContext, params stubsCo
optionalCmdParams.metadataDir = d.exportableArtifacts.metadataDir
}
- if Bool(d.properties.Annotations_enabled) {
+ if params.annotationsEnabled {
if params.validatingNullability {
d.exportableArtifacts.nullabilityWarningsFile = android.PathForModuleOut(ctx, params.stubsType.String(), ctx.ModuleName()+"_nullability_warnings.txt")
optionalCmdParams.nullabilityWarningsFile = d.exportableArtifacts.nullabilityWarningsFile
@@ -1031,7 +1035,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 Bool(d.properties.Api_levels_annotations_enabled) {
+ if params.apiLevelsAnnotationsEnabled {
d.exportableArtifacts.apiVersionsXml = android.PathForModuleOut(ctx, params.stubsType.String(), "api-versions.xml")
optionalCmdParams.apiVersionsXml = d.exportableArtifacts.apiVersionsXml
}
@@ -1127,16 +1131,20 @@ 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,
+ javaVersion: javaVersion,
+ deps: deps,
+ checkApi: checkApi,
+ generateStubs: generateStubs,
+ doApiLint: doApiLint,
+ doCheckReleased: doCheckReleased,
+ writeSdkValues: writeSdkValues,
+ migratingNullability: migratingNullability,
+ validatingNullability: validatingNullability,
+ annotationsEnabled: annotationsEnabled,
+ apiLevelsAnnotationsEnabled: apiLevelsAnnotationsEnabled,
}
stubCmdParams.stubsType = Everything
// Create default (i.e. "everything" stubs) rule for metalava