summaryrefslogtreecommitdiff
path: root/java/platform_bootclasspath.go
diff options
context:
space:
mode:
Diffstat (limited to 'java/platform_bootclasspath.go')
-rw-r--r--java/platform_bootclasspath.go20
1 files changed, 17 insertions, 3 deletions
diff --git a/java/platform_bootclasspath.go b/java/platform_bootclasspath.go
index fa13332dc..d98ce6719 100644
--- a/java/platform_bootclasspath.go
+++ b/java/platform_bootclasspath.go
@@ -73,13 +73,13 @@ type platformBootclasspathModule struct {
fragments []android.Module
// Path to the monolithic hiddenapi-flags.csv file.
- hiddenAPIFlagsCSV android.Path
+ hiddenAPIFlagsCSV android.OutputPath
// Path to the monolithic hiddenapi-index.csv file.
- hiddenAPIIndexCSV android.Path
+ hiddenAPIIndexCSV android.OutputPath
// Path to the monolithic hiddenapi-unsupported.csv file.
- hiddenAPIMetadataCSV android.Path
+ hiddenAPIMetadataCSV android.OutputPath
}
// ApexVariantReference specifies a particular apex variant of a module.
@@ -266,6 +266,20 @@ func (b *platformBootclasspathModule) generateHiddenAPIBuildActions(ctx android.
b.hiddenAPIIndexCSV = hiddenAPISingletonPaths(ctx).index
b.hiddenAPIMetadataCSV = hiddenAPISingletonPaths(ctx).metadata
+ // Don't run any hiddenapi rules if UNSAFE_DISABLE_HIDDENAPI_FLAGS=true. This is a performance
+ // optimization that can be used to reduce the incremental build time but as its name suggests it
+ // can be unsafe to use, e.g. when the changes affect anything that goes on the bootclasspath.
+ if ctx.Config().IsEnvTrue("UNSAFE_DISABLE_HIDDENAPI_FLAGS") {
+ paths := android.OutputPaths{b.hiddenAPIFlagsCSV, b.hiddenAPIIndexCSV, b.hiddenAPIMetadataCSV}
+ for _, path := range paths {
+ ctx.Build(pctx, android.BuildParams{
+ Rule: android.Touch,
+ Output: path,
+ })
+ }
+ return
+ }
+
moduleSpecificFlagsPaths := android.Paths{}
for _, module := range modules {
if h, ok := module.(hiddenAPIIntf); ok {