Loading java/droiddoc.go +54 −20 Original line number Diff line number Diff line Loading @@ -291,6 +291,7 @@ type droiddocBuilderFlags struct { metalavaStubsFlags string metalavaAnnotationsFlags string metalavaJavadocFlags string metalavaCompatibilityCheckFlags string metalavaDokkaFlags string } Loading Loading @@ -1013,6 +1014,38 @@ func (d *Droiddoc) collectMetalavaDokkaFlags(ctx android.ModuleContext, implicit docStubsDir + " " + classpathArgs + " -format dac -dacRoot /reference/kotlin -output " + outDir } func (d *Droiddoc) collectMetalavaCompatibilityCheckFlags(ctx android.ModuleContext, implicits *android.Paths) string { var flags string if d.checkCurrentApi() && !ctx.Config().IsPdkBuild() { apiFile := ctx.ExpandSource(String(d.properties.Check_api.Current.Api_file), "check_api.current.api_file") removedApiFile := ctx.ExpandSource(String(d.properties.Check_api.Current.Removed_api_file), "check_api.current_removed_api_file") *implicits = append(*implicits, apiFile) *implicits = append(*implicits, removedApiFile) flags = " --check-compatibility:api:current " + apiFile.String() + " --check-compatibility:removed:current " + removedApiFile.String() + " " } if d.checkLastReleasedApi() && !ctx.Config().IsPdkBuild() { apiFile := ctx.ExpandSource(String(d.properties.Check_api.Last_released.Api_file), "check_api.last_released.api_file") removedApiFile := ctx.ExpandSource(String(d.properties.Check_api.Last_released.Removed_api_file), "check_api.last_released.removed_api_file") *implicits = append(*implicits, apiFile) *implicits = append(*implicits, removedApiFile) flags = flags + " --check-compatibility:api:released " + apiFile.String() + " --check-compatibility:removed:released " + removedApiFile.String() + " " } return flags } func (d *Droiddoc) transformMetalava(ctx android.ModuleContext, implicits android.Paths, implicitOutputs android.WritablePaths, outDir, docStubsDir, javaVersion, bootclasspathArgs, classpathArgs, opts string) { Loading Loading @@ -1067,7 +1100,7 @@ func (d *Droiddoc) transformCheckApi(ctx android.ModuleContext, apiFile, removed checkApiClasspath classpath, msg, opts string, output android.WritablePath) { ctx.Build(pctx, android.BuildParams{ Rule: apiCheck, Description: "Check API", Description: "Doclava Check API", Output: output, Inputs: nil, Implicits: append(android.Paths{apiFile, removedApiFile, d.apiFile, d.removedApiFile}, Loading Loading @@ -1126,6 +1159,7 @@ func (d *Droiddoc) GenerateAndroidBuildActions(ctx android.ModuleContext) { flags.doclavaStubsFlags, flags.metalavaStubsFlags = d.collectStubsFlags(ctx, &implicitOutputs) if Bool(d.properties.Metalava_enabled) { flags.metalavaAnnotationsFlags = d.collectMetalavaAnnotationsFlags(ctx, &implicits, &implicitOutputs) flags.metalavaCompatibilityCheckFlags = d.collectMetalavaCompatibilityCheckFlags(ctx, &implicits) outDir := android.PathForModuleOut(ctx, "out").String() docStubsDir := android.PathForModuleOut(ctx, "docStubsDir").String() // TODO(nanzhang): Add a Soong property to handle documentation args. Loading @@ -1135,7 +1169,8 @@ func (d *Droiddoc) GenerateAndroidBuildActions(ctx android.ModuleContext) { flags.dokkaClasspathArgs, outDir, docStubsDir) d.transformMetalava(ctx, implicits, implicitOutputs, outDir, docStubsDir, javaVersion, flags.bootClasspathArgs, flags.classpathArgs, flags.metalavaStubsFlags+ flags.metalavaAnnotationsFlags+" "+strings.Split(flags.args, "--generate-documentation")[0]+ flags.metalavaAnnotationsFlags+" "+flags.metalavaCompatibilityCheckFlags+" "+ strings.Split(flags.args, "--generate-documentation")[0]+ flags.metalavaDokkaFlags+" "+strings.Split(flags.args, "--generate-documentation")[1]) } else { flags.metalavaJavadocFlags = d.collectMetalavaJavadocFlags( Loading @@ -1143,14 +1178,16 @@ func (d *Droiddoc) GenerateAndroidBuildActions(ctx android.ModuleContext) { flags.doclavaDocsFlags = d.collectDoclavaDocsFlags(ctx, &implicits, jsilver, doclava) d.transformMetalava(ctx, implicits, implicitOutputs, outDir, docStubsDir, javaVersion, flags.bootClasspathArgs, flags.classpathArgs, flags.metalavaStubsFlags+ flags.metalavaAnnotationsFlags+" "+strings.Split(flags.args, "--generate-documentation")[0]+ flags.metalavaAnnotationsFlags+" "+flags.metalavaCompatibilityCheckFlags+" "+ strings.Split(flags.args, "--generate-documentation")[0]+ flags.metalavaJavadocFlags+flags.doclavaDocsFlags+ " "+strings.Split(flags.args, "--generate-documentation")[1]) } } else { d.transformMetalava(ctx, implicits, implicitOutputs, outDir, docStubsDir, javaVersion, flags.bootClasspathArgs, flags.classpathArgs, flags.metalavaStubsFlags+flags.metalavaAnnotationsFlags+flags.args) flags.metalavaStubsFlags+flags.metalavaAnnotationsFlags+" "+ flags.metalavaCompatibilityCheckFlags+flags.args) } } else { flags.doclavaDocsFlags = d.collectDoclavaDocsFlags(ctx, &implicits, jsilver, doclava) Loading Loading @@ -1180,11 +1217,6 @@ func (d *Droiddoc) GenerateAndroidBuildActions(ctx android.ModuleContext) { ` you will need approval.\n`+ `******************************\n`, ctx.ModuleName()), String(d.properties.Check_api.Current.Args), d.checkCurrentApiTimestamp) } else { // TODO(nanzhang): Refactor below when Metalava support API check. if d.apiFile == nil || d.removedApiFile == nil { ctx.ModuleErrorf("api_filename and removed_api_filename properties cannot be empty for API check!") } } d.updateCurrentApiTimestamp = android.PathForModuleOut(ctx, "update_current_api.timestamp") Loading @@ -1192,13 +1224,14 @@ func (d *Droiddoc) GenerateAndroidBuildActions(ctx android.ModuleContext) { } if d.checkLastReleasedApi() && !ctx.Config().IsPdkBuild() { d.checkLastReleasedApiTimestamp = android.PathForModuleOut(ctx, "check_last_released_api.timestamp") apiFile := ctx.ExpandSource(String(d.properties.Check_api.Last_released.Api_file), "check_api.last_released.api_file") removedApiFile := ctx.ExpandSource(String(d.properties.Check_api.Last_released.Removed_api_file), "check_api.last_released.removed_api_file") if !Bool(d.properties.Metalava_enabled) { d.checkLastReleasedApiTimestamp = android.PathForModuleOut(ctx, "check_last_released_api.timestamp") d.transformCheckApi(ctx, apiFile, removedApiFile, checkApiClasspath, `\n******************************\n`+ `You have tried to change the API from what has been previously released in\n`+ Loading @@ -1207,6 +1240,7 @@ func (d *Droiddoc) GenerateAndroidBuildActions(ctx android.ModuleContext) { d.checkLastReleasedApiTimestamp) } } } // // Exported Droiddoc Directory Loading Loading
java/droiddoc.go +54 −20 Original line number Diff line number Diff line Loading @@ -291,6 +291,7 @@ type droiddocBuilderFlags struct { metalavaStubsFlags string metalavaAnnotationsFlags string metalavaJavadocFlags string metalavaCompatibilityCheckFlags string metalavaDokkaFlags string } Loading Loading @@ -1013,6 +1014,38 @@ func (d *Droiddoc) collectMetalavaDokkaFlags(ctx android.ModuleContext, implicit docStubsDir + " " + classpathArgs + " -format dac -dacRoot /reference/kotlin -output " + outDir } func (d *Droiddoc) collectMetalavaCompatibilityCheckFlags(ctx android.ModuleContext, implicits *android.Paths) string { var flags string if d.checkCurrentApi() && !ctx.Config().IsPdkBuild() { apiFile := ctx.ExpandSource(String(d.properties.Check_api.Current.Api_file), "check_api.current.api_file") removedApiFile := ctx.ExpandSource(String(d.properties.Check_api.Current.Removed_api_file), "check_api.current_removed_api_file") *implicits = append(*implicits, apiFile) *implicits = append(*implicits, removedApiFile) flags = " --check-compatibility:api:current " + apiFile.String() + " --check-compatibility:removed:current " + removedApiFile.String() + " " } if d.checkLastReleasedApi() && !ctx.Config().IsPdkBuild() { apiFile := ctx.ExpandSource(String(d.properties.Check_api.Last_released.Api_file), "check_api.last_released.api_file") removedApiFile := ctx.ExpandSource(String(d.properties.Check_api.Last_released.Removed_api_file), "check_api.last_released.removed_api_file") *implicits = append(*implicits, apiFile) *implicits = append(*implicits, removedApiFile) flags = flags + " --check-compatibility:api:released " + apiFile.String() + " --check-compatibility:removed:released " + removedApiFile.String() + " " } return flags } func (d *Droiddoc) transformMetalava(ctx android.ModuleContext, implicits android.Paths, implicitOutputs android.WritablePaths, outDir, docStubsDir, javaVersion, bootclasspathArgs, classpathArgs, opts string) { Loading Loading @@ -1067,7 +1100,7 @@ func (d *Droiddoc) transformCheckApi(ctx android.ModuleContext, apiFile, removed checkApiClasspath classpath, msg, opts string, output android.WritablePath) { ctx.Build(pctx, android.BuildParams{ Rule: apiCheck, Description: "Check API", Description: "Doclava Check API", Output: output, Inputs: nil, Implicits: append(android.Paths{apiFile, removedApiFile, d.apiFile, d.removedApiFile}, Loading Loading @@ -1126,6 +1159,7 @@ func (d *Droiddoc) GenerateAndroidBuildActions(ctx android.ModuleContext) { flags.doclavaStubsFlags, flags.metalavaStubsFlags = d.collectStubsFlags(ctx, &implicitOutputs) if Bool(d.properties.Metalava_enabled) { flags.metalavaAnnotationsFlags = d.collectMetalavaAnnotationsFlags(ctx, &implicits, &implicitOutputs) flags.metalavaCompatibilityCheckFlags = d.collectMetalavaCompatibilityCheckFlags(ctx, &implicits) outDir := android.PathForModuleOut(ctx, "out").String() docStubsDir := android.PathForModuleOut(ctx, "docStubsDir").String() // TODO(nanzhang): Add a Soong property to handle documentation args. Loading @@ -1135,7 +1169,8 @@ func (d *Droiddoc) GenerateAndroidBuildActions(ctx android.ModuleContext) { flags.dokkaClasspathArgs, outDir, docStubsDir) d.transformMetalava(ctx, implicits, implicitOutputs, outDir, docStubsDir, javaVersion, flags.bootClasspathArgs, flags.classpathArgs, flags.metalavaStubsFlags+ flags.metalavaAnnotationsFlags+" "+strings.Split(flags.args, "--generate-documentation")[0]+ flags.metalavaAnnotationsFlags+" "+flags.metalavaCompatibilityCheckFlags+" "+ strings.Split(flags.args, "--generate-documentation")[0]+ flags.metalavaDokkaFlags+" "+strings.Split(flags.args, "--generate-documentation")[1]) } else { flags.metalavaJavadocFlags = d.collectMetalavaJavadocFlags( Loading @@ -1143,14 +1178,16 @@ func (d *Droiddoc) GenerateAndroidBuildActions(ctx android.ModuleContext) { flags.doclavaDocsFlags = d.collectDoclavaDocsFlags(ctx, &implicits, jsilver, doclava) d.transformMetalava(ctx, implicits, implicitOutputs, outDir, docStubsDir, javaVersion, flags.bootClasspathArgs, flags.classpathArgs, flags.metalavaStubsFlags+ flags.metalavaAnnotationsFlags+" "+strings.Split(flags.args, "--generate-documentation")[0]+ flags.metalavaAnnotationsFlags+" "+flags.metalavaCompatibilityCheckFlags+" "+ strings.Split(flags.args, "--generate-documentation")[0]+ flags.metalavaJavadocFlags+flags.doclavaDocsFlags+ " "+strings.Split(flags.args, "--generate-documentation")[1]) } } else { d.transformMetalava(ctx, implicits, implicitOutputs, outDir, docStubsDir, javaVersion, flags.bootClasspathArgs, flags.classpathArgs, flags.metalavaStubsFlags+flags.metalavaAnnotationsFlags+flags.args) flags.metalavaStubsFlags+flags.metalavaAnnotationsFlags+" "+ flags.metalavaCompatibilityCheckFlags+flags.args) } } else { flags.doclavaDocsFlags = d.collectDoclavaDocsFlags(ctx, &implicits, jsilver, doclava) Loading Loading @@ -1180,11 +1217,6 @@ func (d *Droiddoc) GenerateAndroidBuildActions(ctx android.ModuleContext) { ` you will need approval.\n`+ `******************************\n`, ctx.ModuleName()), String(d.properties.Check_api.Current.Args), d.checkCurrentApiTimestamp) } else { // TODO(nanzhang): Refactor below when Metalava support API check. if d.apiFile == nil || d.removedApiFile == nil { ctx.ModuleErrorf("api_filename and removed_api_filename properties cannot be empty for API check!") } } d.updateCurrentApiTimestamp = android.PathForModuleOut(ctx, "update_current_api.timestamp") Loading @@ -1192,13 +1224,14 @@ func (d *Droiddoc) GenerateAndroidBuildActions(ctx android.ModuleContext) { } if d.checkLastReleasedApi() && !ctx.Config().IsPdkBuild() { d.checkLastReleasedApiTimestamp = android.PathForModuleOut(ctx, "check_last_released_api.timestamp") apiFile := ctx.ExpandSource(String(d.properties.Check_api.Last_released.Api_file), "check_api.last_released.api_file") removedApiFile := ctx.ExpandSource(String(d.properties.Check_api.Last_released.Removed_api_file), "check_api.last_released.removed_api_file") if !Bool(d.properties.Metalava_enabled) { d.checkLastReleasedApiTimestamp = android.PathForModuleOut(ctx, "check_last_released_api.timestamp") d.transformCheckApi(ctx, apiFile, removedApiFile, checkApiClasspath, `\n******************************\n`+ `You have tried to change the API from what has been previously released in\n`+ Loading @@ -1207,6 +1240,7 @@ func (d *Droiddoc) GenerateAndroidBuildActions(ctx android.ModuleContext) { d.checkLastReleasedApiTimestamp) } } } // // Exported Droiddoc Directory Loading