Enable prebuilt hiddenapi CSV files.
By enabling these hiddenapi CSV files to be prebuilt, it becomes possible to create a split build that supports the hiddenapi encode dex step, but doesn't contain all of the java sources needed to generate the CSV files. Bug: 175048716 Test: m nothing Test: new TestHiddenAPISingletonWithPrebuiltCsvFile Test: local build without prebuilt hiddenapi Test: local build with prebuilt hiddenapi Change-Id: I805ea3ec05860d2df211a3985ec025bf36f0d775
This commit is contained in:
@@ -67,6 +67,19 @@ func (h *hiddenAPISingleton) GenerateBuildActions(ctx android.SingletonContext)
|
||||
|
||||
stubFlagsRule(ctx)
|
||||
|
||||
// If there is a prebuilt hiddenapi dir, generate rules to use the
|
||||
// files within. Generally, we build the hiddenapi files from source
|
||||
// during the build, ensuring consistency. It's possible, in a split
|
||||
// build (framework and vendor) scenario, for the vendor build to use
|
||||
// prebuilt hiddenapi files from the framework build. In this scenario,
|
||||
// the framework and vendor builds must use the same source to ensure
|
||||
// consistency.
|
||||
|
||||
if ctx.Config().PrebuiltHiddenApiDir(ctx) != "" {
|
||||
h.flags = prebuiltFlagsRule(ctx)
|
||||
return
|
||||
}
|
||||
|
||||
// These rules depend on files located in frameworks/base, skip them if running in a tree that doesn't have them.
|
||||
if ctx.Config().FrameworksBaseDirExists(ctx) {
|
||||
h.flags = flagsRule(ctx)
|
||||
@@ -212,6 +225,19 @@ func stubFlagsRule(ctx android.SingletonContext) {
|
||||
rule.Build("hiddenAPIStubFlagsFile", "hiddenapi stub flags")
|
||||
}
|
||||
|
||||
func prebuiltFlagsRule(ctx android.SingletonContext) android.Path {
|
||||
outputPath := hiddenAPISingletonPaths(ctx).flags
|
||||
inputPath := android.PathForSource(ctx, ctx.Config().PrebuiltHiddenApiDir(ctx), "hiddenapi-flags.csv")
|
||||
|
||||
ctx.Build(pctx, android.BuildParams{
|
||||
Rule: android.Cp,
|
||||
Output: outputPath,
|
||||
Input: inputPath,
|
||||
})
|
||||
|
||||
return outputPath
|
||||
}
|
||||
|
||||
// flagsRule creates a rule to build hiddenapi-flags.csv out of flags.csv files generated for boot image modules and
|
||||
// the unsupported API.
|
||||
func flagsRule(ctx android.SingletonContext) android.Path {
|
||||
@@ -391,6 +417,20 @@ func (h *hiddenAPIIndexSingleton) GenerateBuildActions(ctx android.SingletonCont
|
||||
return
|
||||
}
|
||||
|
||||
if ctx.Config().PrebuiltHiddenApiDir(ctx) != "" {
|
||||
outputPath := hiddenAPISingletonPaths(ctx).index
|
||||
inputPath := android.PathForSource(ctx, ctx.Config().PrebuiltHiddenApiDir(ctx), "hiddenapi-index.csv")
|
||||
|
||||
ctx.Build(pctx, android.BuildParams{
|
||||
Rule: android.Cp,
|
||||
Output: outputPath,
|
||||
Input: inputPath,
|
||||
})
|
||||
|
||||
h.index = outputPath
|
||||
return
|
||||
}
|
||||
|
||||
indexes := android.Paths{}
|
||||
ctx.VisitAllModules(func(module android.Module) {
|
||||
if h, ok := module.(hiddenAPIIntf); ok {
|
||||
|
Reference in New Issue
Block a user