aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2019-02-07 08:57:26 -0800
committerColin Cross <ccross@android.com>2019-02-07 08:57:26 -0800
commit76e3e1f55461869fc66403b1c643dccde3e02c9f (patch)
tree042d3eb67d4814c7778c4dfe26b506cdc34637be /java
parent6e8fe6feb16ee95187d37cfe8084d46290f0e826 (diff)
downloadandroid_build_soong-76e3e1f55461869fc66403b1c643dccde3e02c9f.tar.gz
android_build_soong-76e3e1f55461869fc66403b1c643dccde3e02c9f.tar.bz2
android_build_soong-76e3e1f55461869fc66403b1c643dccde3e02c9f.zip
Use a presingleton to create hiddenapi singleton paths early
If no module uses hiddenapi (because it is an unbundled build that does not build any boot image modules), then the makevars singleton panics because it will always run before the hiddenapi singleton (due to package init() function ordering), and the hiddenapi singleton paths have not been initialized yet. Add a presingleton to initialize the paths early. Bug: 123645297 Test: tapas Launcher3 && m on unbundled branch Change-Id: I9386ac87848a2181f51140129288df80fff9acfd
Diffstat (limited to 'java')
-rw-r--r--java/hiddenapi_singleton.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/java/hiddenapi_singleton.go b/java/hiddenapi_singleton.go
index 96de755c..d43e276a 100644
--- a/java/hiddenapi_singleton.go
+++ b/java/hiddenapi_singleton.go
@@ -19,6 +19,7 @@ import (
)
func init() {
+ android.RegisterPreSingletonType("pre-hiddenapi", hiddenAPIPreSingletonFactory)
android.RegisterSingletonType("hiddenapi", hiddenAPISingletonFactory)
}
@@ -43,6 +44,18 @@ func hiddenAPISingletonPaths(ctx android.PathContext) hiddenAPISingletonPathsStr
}).(hiddenAPISingletonPathsStruct)
}
+func hiddenAPIPreSingletonFactory() android.Singleton {
+ return hiddenAPIPreSingleton{}
+}
+
+type hiddenAPIPreSingleton struct{}
+
+// hiddenAPI pre-singleton rules to ensure paths are always generated before
+// makevars
+func (hiddenAPIPreSingleton) GenerateBuildActions(ctx android.SingletonContext) {
+ hiddenAPISingletonPaths(ctx)
+}
+
func hiddenAPISingletonFactory() android.Singleton {
return hiddenAPISingleton{}
}