Make hiddenapi flag generation use new artifact
Use the output of new genrule combined-removed-dex instead of the removedDexApi output from various metalava runs when generating the hiddenapi-flags.csv file. There are some minor difference in the two combined-removed-dex files, but these diffs do not amount to any diffs in the generated hiddenapi-flags.csv file. See the full set of diffs here: https://paste.googleplex.com/6632343525654528 Bug: 158465496 Test: diff hiddenapi-flags.csv before and after Change-Id: I082d18fc2b8a57ea8c5941d5c955a7970ab9d860
This commit is contained in:
parent
ecf5435590
commit
b3cbd61846
1 changed files with 11 additions and 14 deletions
|
@ -18,6 +18,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"android/soong/android"
|
"android/soong/android"
|
||||||
|
"android/soong/genrule"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -224,30 +225,26 @@ func moduleForGreyListRemovedApis(ctx android.SingletonContext, module android.M
|
||||||
// the unsupported API.
|
// the unsupported API.
|
||||||
func flagsRule(ctx android.SingletonContext) android.Path {
|
func flagsRule(ctx android.SingletonContext) android.Path {
|
||||||
var flagsCSV android.Paths
|
var flagsCSV android.Paths
|
||||||
var greylistRemovedApis android.Paths
|
var combinedRemovedApis android.Path
|
||||||
|
|
||||||
ctx.VisitAllModules(func(module android.Module) {
|
ctx.VisitAllModules(func(module android.Module) {
|
||||||
if h, ok := module.(hiddenAPIIntf); ok {
|
if h, ok := module.(hiddenAPIIntf); ok {
|
||||||
if csv := h.flagsCSV(); csv != nil {
|
if csv := h.flagsCSV(); csv != nil {
|
||||||
flagsCSV = append(flagsCSV, csv)
|
flagsCSV = append(flagsCSV, csv)
|
||||||
}
|
}
|
||||||
} else if ds, ok := module.(*Droidstubs); ok {
|
} else if g, ok := module.(*genrule.Module); ok {
|
||||||
// Track @removed public and system APIs via corresponding droidstubs targets.
|
if ctx.ModuleName(module) == "combined-removed-dex" {
|
||||||
// These APIs are not present in the stubs, however, we have to keep allowing access
|
if len(g.GeneratedSourceFiles()) != 1 || combinedRemovedApis != nil {
|
||||||
// to them at runtime.
|
ctx.Errorf("Expected 1 combined-removed-dex module that generates 1 output file.")
|
||||||
if moduleForGreyListRemovedApis(ctx, module) {
|
}
|
||||||
greylistRemovedApis = append(greylistRemovedApis, ds.removedDexApiFile)
|
combinedRemovedApis = g.GeneratedSourceFiles()[0]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
combinedRemovedApis := android.PathForOutput(ctx, "hiddenapi", "combined-removed-dex.txt")
|
if combinedRemovedApis == nil {
|
||||||
ctx.Build(pctx, android.BuildParams{
|
ctx.Errorf("Failed to find combined-removed-dex.")
|
||||||
Rule: android.Cat,
|
}
|
||||||
Inputs: greylistRemovedApis,
|
|
||||||
Output: combinedRemovedApis,
|
|
||||||
Description: "Combine removed apis for " + combinedRemovedApis.String(),
|
|
||||||
})
|
|
||||||
|
|
||||||
rule := android.NewRuleBuilder()
|
rule := android.NewRuleBuilder()
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue