summaryrefslogtreecommitdiff
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
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
-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)
}
}