Separate monolithic hidden API processing from hiddenAPIFlagFileInfo
The hiddenAPIFlagFileInfo was being used for both the input and output of bootclasspath_fragment and platform_bootclasspath and also to pass information around to various hidden API rule methods. Supporting multiple different uses in this way made it hard to reason about. This change creates a separate structure for use by the platform_bootclasspath. Follow up changes will split out other functionality into separate types. Bug: 179354495 Test: m com.android.art com.android.ipsec com.android.os.statsd com.android.conscrypt - verify that this does not change the contents of the apex files Change-Id: Ia5c5f65ae5645486c42819c669a8601588217f88
This commit is contained in:
@@ -279,21 +279,12 @@ func (b *platformBootclasspathModule) generateHiddenAPIBuildActions(ctx android.
|
||||
return
|
||||
}
|
||||
|
||||
flagFileInfo := b.properties.Hidden_api.hiddenAPIFlagFileInfo(ctx)
|
||||
for _, fragment := range fragments {
|
||||
if ctx.OtherModuleHasProvider(fragment, hiddenAPIFlagFileInfoProvider) {
|
||||
info := ctx.OtherModuleProvider(fragment, hiddenAPIFlagFileInfoProvider).(hiddenAPIFlagFileInfo)
|
||||
flagFileInfo.append(info)
|
||||
}
|
||||
}
|
||||
|
||||
// Store the information for testing.
|
||||
ctx.SetProvider(hiddenAPIFlagFileInfoProvider, flagFileInfo)
|
||||
|
||||
hiddenAPIModules := gatherHiddenAPIModuleFromContents(ctx, modules)
|
||||
monolithicInfo := b.createAndProvideMonolithicHiddenAPIInfo(ctx, fragments)
|
||||
|
||||
sdkKindToStubPaths := hiddenAPIGatherStubLibDexJarPaths(ctx, nil)
|
||||
|
||||
hiddenAPIModules := gatherHiddenAPIModuleFromContents(ctx, modules)
|
||||
|
||||
// Generate the monolithic stub-flags.csv file.
|
||||
bootDexJars := extractBootDexJarsFromHiddenAPIModules(ctx, hiddenAPIModules)
|
||||
stubFlags := hiddenAPISingletonPaths(ctx).stubFlags
|
||||
@@ -309,7 +300,7 @@ func (b *platformBootclasspathModule) generateHiddenAPIBuildActions(ctx android.
|
||||
|
||||
// Generate the monotlithic hiddenapi-flags.csv file.
|
||||
allFlags := hiddenAPISingletonPaths(ctx).flags
|
||||
buildRuleToGenerateHiddenApiFlags(ctx, "hiddenAPIFlagsFile", "hiddenapi flags", allFlags, stubFlags, annotationFlags, &flagFileInfo)
|
||||
buildRuleToGenerateHiddenApiFlags(ctx, "hiddenAPIFlagsFile", "hiddenapi flags", allFlags, stubFlags, annotationFlags, monolithicInfo.FlagsFilesByCategory, monolithicInfo.AllFlagsPaths)
|
||||
|
||||
// Generate an intermediate monolithic hiddenapi-metadata.csv file directly from the annotations
|
||||
// in the source code.
|
||||
@@ -328,6 +319,17 @@ func (b *platformBootclasspathModule) generateHiddenAPIBuildActions(ctx android.
|
||||
buildRuleToGenerateIndex(ctx, "monolithic hidden API index", classesJars, indexCSV)
|
||||
}
|
||||
|
||||
// createAndProvideMonolithicHiddenAPIInfo creates a MonolithicHiddenAPIInfo and provides it for
|
||||
// testing.
|
||||
func (b *platformBootclasspathModule) createAndProvideMonolithicHiddenAPIInfo(ctx android.ModuleContext, fragments []android.Module) MonolithicHiddenAPIInfo {
|
||||
flagFileInfo := b.properties.Hidden_api.hiddenAPIFlagFileInfo(ctx)
|
||||
monolithicInfo := newMonolithicHiddenAPIInfo(ctx, flagFileInfo.FlagFilesByCategory, fragments)
|
||||
|
||||
// Store the information for testing.
|
||||
ctx.SetProvider(monolithicHiddenAPIInfoProvider, monolithicInfo)
|
||||
return monolithicInfo
|
||||
}
|
||||
|
||||
func (b *platformBootclasspathModule) buildRuleMergeCSV(ctx android.ModuleContext, desc string, inputPaths android.Paths, outputPath android.WritablePath) {
|
||||
rule := android.NewRuleBuilder(pctx, ctx)
|
||||
rule.Command().
|
||||
|
Reference in New Issue
Block a user