Merge "Move hidden API metadata file rule to platform_bootclasspath" am: fd105d469c
am: c552799891
am: a9a8e07643
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1674033 Change-Id: I68f24d678cdd437a1672047be672338184e12cd5
This commit is contained in:
commit
724f24e68a
|
@ -115,7 +115,7 @@ func hiddenAPISingletonFactory() android.Singleton {
|
||||||
}
|
}
|
||||||
|
|
||||||
type hiddenAPISingleton struct {
|
type hiddenAPISingleton struct {
|
||||||
flags, metadata android.Path
|
flags android.Path
|
||||||
}
|
}
|
||||||
|
|
||||||
// hiddenAPI singleton rules
|
// hiddenAPI singleton rules
|
||||||
|
@ -144,24 +144,18 @@ func (h *hiddenAPISingleton) GenerateBuildActions(ctx android.SingletonContext)
|
||||||
// These rules depend on files located in frameworks/base, skip them if running in a tree that doesn't have them.
|
// 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) {
|
if ctx.Config().FrameworksBaseDirExists(ctx) {
|
||||||
h.flags = flagsRule(ctx)
|
h.flags = flagsRule(ctx)
|
||||||
h.metadata = metadataRule(ctx)
|
|
||||||
} else {
|
} else {
|
||||||
h.flags = emptyFlagsRule(ctx)
|
h.flags = emptyFlagsRule(ctx)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Export paths to Make. INTERNAL_PLATFORM_HIDDENAPI_FLAGS is used by Make rules in art/ and cts/.
|
// Export paths to Make. INTERNAL_PLATFORM_HIDDENAPI_FLAGS is used by Make rules in art/ and cts/.
|
||||||
// Both paths are used to call dist-for-goals.
|
|
||||||
func (h *hiddenAPISingleton) MakeVars(ctx android.MakeVarsContext) {
|
func (h *hiddenAPISingleton) MakeVars(ctx android.MakeVarsContext) {
|
||||||
if ctx.Config().IsEnvTrue("UNSAFE_DISABLE_HIDDENAPI_FLAGS") {
|
if ctx.Config().IsEnvTrue("UNSAFE_DISABLE_HIDDENAPI_FLAGS") {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.Strict("INTERNAL_PLATFORM_HIDDENAPI_FLAGS", h.flags.String())
|
ctx.Strict("INTERNAL_PLATFORM_HIDDENAPI_FLAGS", h.flags.String())
|
||||||
|
|
||||||
if h.metadata != nil {
|
|
||||||
ctx.Strict("INTERNAL_PLATFORM_HIDDENAPI_GREYLIST_METADATA", h.metadata.String())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// stubFlagsRule creates the rule to build hiddenapi-stub-flags.txt out of dex jars from stub modules and boot image
|
// stubFlagsRule creates the rule to build hiddenapi-stub-flags.txt out of dex jars from stub modules and boot image
|
||||||
|
@ -354,34 +348,6 @@ func emptyFlagsRule(ctx android.SingletonContext) android.Path {
|
||||||
return outputPath
|
return outputPath
|
||||||
}
|
}
|
||||||
|
|
||||||
// metadataRule creates a rule to build hiddenapi-unsupported.csv out of the metadata.csv files generated for boot image
|
|
||||||
// modules.
|
|
||||||
func metadataRule(ctx android.SingletonContext) android.Path {
|
|
||||||
var metadataCSV android.Paths
|
|
||||||
|
|
||||||
ctx.VisitAllModules(func(module android.Module) {
|
|
||||||
if h, ok := module.(hiddenAPIIntf); ok {
|
|
||||||
if csv := h.metadataCSV(); csv != nil {
|
|
||||||
metadataCSV = append(metadataCSV, csv)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
rule := android.NewRuleBuilder(pctx, ctx)
|
|
||||||
|
|
||||||
outputPath := hiddenAPISingletonPaths(ctx).metadata
|
|
||||||
|
|
||||||
rule.Command().
|
|
||||||
BuiltTool("merge_csv").
|
|
||||||
Flag("--key_field signature").
|
|
||||||
FlagWithOutput("--output=", outputPath).
|
|
||||||
Inputs(metadataCSV)
|
|
||||||
|
|
||||||
rule.Build("hiddenAPIGreylistMetadataFile", "hiddenapi greylist metadata")
|
|
||||||
|
|
||||||
return outputPath
|
|
||||||
}
|
|
||||||
|
|
||||||
// commitChangeForRestat adds a command to a rule that updates outputPath from tempPath if they are different. It
|
// commitChangeForRestat adds a command to a rule that updates outputPath from tempPath if they are different. It
|
||||||
// also marks the rule as restat and marks the tempPath as a temporary file that should not be considered an output of
|
// also marks the rule as restat and marks the tempPath as a temporary file that should not be considered an output of
|
||||||
// the rule.
|
// the rule.
|
||||||
|
|
|
@ -341,6 +341,7 @@ func (b *platformBootclasspathModule) generateHiddenAPIBuildActions(ctx android.
|
||||||
ruleToGenerateHiddenApiFlags(ctx, outputPath, baseFlagsPath, moduleSpecificFlagsPaths, augmentationInfo)
|
ruleToGenerateHiddenApiFlags(ctx, outputPath, baseFlagsPath, moduleSpecificFlagsPaths, augmentationInfo)
|
||||||
|
|
||||||
b.generateHiddenAPIIndexRules(ctx, hiddenAPISupportingModules)
|
b.generateHiddenAPIIndexRules(ctx, hiddenAPISupportingModules)
|
||||||
|
b.generatedHiddenAPIMetadataRules(ctx, hiddenAPISupportingModules)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *platformBootclasspathModule) generateHiddenAPIIndexRules(ctx android.ModuleContext, modules []hiddenAPISupportingModule) {
|
func (b *platformBootclasspathModule) generateHiddenAPIIndexRules(ctx android.ModuleContext, modules []hiddenAPISupportingModule) {
|
||||||
|
@ -358,3 +359,22 @@ func (b *platformBootclasspathModule) generateHiddenAPIIndexRules(ctx android.Mo
|
||||||
Inputs(indexes)
|
Inputs(indexes)
|
||||||
rule.Build("platform-bootclasspath-monolithic-hiddenapi-index", "monolithic hidden API index")
|
rule.Build("platform-bootclasspath-monolithic-hiddenapi-index", "monolithic hidden API index")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (b *platformBootclasspathModule) generatedHiddenAPIMetadataRules(ctx android.ModuleContext, modules []hiddenAPISupportingModule) {
|
||||||
|
metadataCSVFiles := android.Paths{}
|
||||||
|
for _, module := range modules {
|
||||||
|
metadataCSVFiles = append(metadataCSVFiles, module.metadataCSV())
|
||||||
|
}
|
||||||
|
|
||||||
|
rule := android.NewRuleBuilder(pctx, ctx)
|
||||||
|
|
||||||
|
outputPath := hiddenAPISingletonPaths(ctx).metadata
|
||||||
|
|
||||||
|
rule.Command().
|
||||||
|
BuiltTool("merge_csv").
|
||||||
|
Flag("--key_field signature").
|
||||||
|
FlagWithOutput("--output=", outputPath).
|
||||||
|
Inputs(metadataCSVFiles)
|
||||||
|
|
||||||
|
rule.Build("platform-bootclasspath-monolithic-hiddenapi-metadata", "monolithic hidden API metadata")
|
||||||
|
}
|
||||||
|
|
|
@ -173,7 +173,7 @@ func TestPlatformBootclasspath_Dist(t *testing.T) {
|
||||||
android.AssertStringEquals(t, "platform dist goals call", "$(call dist-for-goals,droidcore,out/soong/hiddenapi/hiddenapi-flags.csv:hiddenapi-flags.csv)\n", android.StringRelativeToTop(result.Config, goals[1]))
|
android.AssertStringEquals(t, "platform dist goals call", "$(call dist-for-goals,droidcore,out/soong/hiddenapi/hiddenapi-flags.csv:hiddenapi-flags.csv)\n", android.StringRelativeToTop(result.Config, goals[1]))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPlatformBootclasspath_HiddenAPIMonolithicIndexFile(t *testing.T) {
|
func TestPlatformBootclasspath_HiddenAPIMonolithicFiles(t *testing.T) {
|
||||||
result := android.GroupFixturePreparers(
|
result := android.GroupFixturePreparers(
|
||||||
hiddenApiFixtureFactory,
|
hiddenApiFixtureFactory,
|
||||||
PrepareForTestWithJavaSdkLibraryFiles,
|
PrepareForTestWithJavaSdkLibraryFiles,
|
||||||
|
|
Loading…
Reference in New Issue