summaryrefslogtreecommitdiff
path: root/java/prebuilt_apis.go
diff options
context:
space:
mode:
author Paul Duffin <paulduffin@google.com> 2021-10-28 13:27:37 +0100
committer Paul Duffin <paulduffin@google.com> 2021-11-01 16:37:49 +0000
commitb077bcc6bc5839de98ecb94a3416c69bc54f97c2 (patch)
tree0b2121379b705fc3b5481fa9b1e57b2c5c339b27 /java/prebuilt_apis.go
parent1cad3a53db591d5f40d4a7d7ac883fd10763fd98 (diff)
Create prebuilt system modules for all API scopes
Previously, system modules were only created for the public API scope. This change creates them for any API scope as long as its directory has a core-for-system-modules.jar. It does that by hooking into the existing logic for creating a java_import for all jars in the API directories and creating a java_system_modules for every core-for-system-modules.jar file. That avoids the need for extra path globs. Test: m droid m sdk_public_current_system_modules - works as expected. m sdk_module-lib_current_system_modules - fails with missing target as expected. touch prebuilts/sdk/current/module-lib/core-for-system-modules.jar m sdk_module-lib_current_system_modules - fails with invalid jar file as expected. Bug: 204189791 Change-Id: I27a264941009e03439d5d847dab14a7b4f6f119f
Diffstat (limited to 'java/prebuilt_apis.go')
-rw-r--r--java/prebuilt_apis.go21
1 files changed, 7 insertions, 14 deletions
diff --git a/java/prebuilt_apis.go b/java/prebuilt_apis.go
index c33e6c229..c67e2bd59 100644
--- a/java/prebuilt_apis.go
+++ b/java/prebuilt_apis.go
@@ -167,30 +167,24 @@ func prebuiltSdkStubs(mctx android.LoadHookContext, p *prebuiltApis) {
localPath := strings.TrimPrefix(f, mydir)
module, apiver, scope := parseJarPath(localPath)
createImport(mctx, module, scope, apiver, localPath, sdkVersion, compileDex)
+
+ if module == "core-for-system-modules" {
+ createSystemModules(mctx, apiver, scope)
+ }
}
}
-func createSystemModules(mctx android.LoadHookContext, apiver string) {
+func createSystemModules(mctx android.LoadHookContext, apiver string, scope string) {
props := struct {
Name *string
Libs []string
}{}
- props.Name = proptools.StringPtr(prebuiltApiModuleName(mctx, "system_modules", "public", apiver))
- props.Libs = append(props.Libs, prebuiltApiModuleName(mctx, "core-for-system-modules", "public", apiver))
+ props.Name = proptools.StringPtr(prebuiltApiModuleName(mctx, "system_modules", scope, apiver))
+ props.Libs = append(props.Libs, prebuiltApiModuleName(mctx, "core-for-system-modules", scope, apiver))
mctx.CreateModule(systemModulesImportFactory, &props)
}
-func prebuiltSdkSystemModules(mctx android.LoadHookContext, p *prebuiltApis) {
- for _, apiver := range p.properties.Api_dirs {
- jar := android.ExistentPathForSource(mctx,
- mctx.ModuleDir(), apiver, "public", "core-for-system-modules.jar")
- if jar.Valid() {
- createSystemModules(mctx, apiver)
- }
- }
-}
-
func prebuiltApiFiles(mctx android.LoadHookContext, p *prebuiltApis) {
mydir := mctx.ModuleDir() + "/"
// <apiver>/<scope>/api/<module>.txt
@@ -273,7 +267,6 @@ func createPrebuiltApiModules(mctx android.LoadHookContext) {
if p, ok := mctx.Module().(*prebuiltApis); ok {
prebuiltApiFiles(mctx, p)
prebuiltSdkStubs(mctx, p)
- prebuiltSdkSystemModules(mctx, p)
}
}