diff options
author | satayev <satayev@google.com> | 2021-05-07 00:10:33 +0100 |
---|---|---|
committer | satayev <satayev@google.com> | 2021-05-20 20:06:03 +0100 |
commit | 8fab6f86af918c37592a51aed09a05e09e1172e9 (patch) | |
tree | 3ce62f4fbb3eadb7f9ed3d37bc8aeb7f3473e6e5 /java/systemserver_classpath_fragment.go | |
parent | ecf2dc4614aaacd9c2f7e2ffbd790903db07f0af (diff) |
Populate individual classpath_fragments' classpaths.proto configs.
To avoid duplicates on *CLASSPATH environ variables at runtime, remove
split entries from platform-*classpath, i.e. all updatable jars that
have their own classpath fragments should not appear in the
platform-*classpath's classpaths.proto config.
Bug: 180105615
Test: m && launch_cvd; atest CtsClasspathsTestCases
Change-Id: Id2759ab8e106cc183e695bf3509a6ab60ab0ef2a
Merged-In: Id2759ab8e106cc183e695bf3509a6ab60ab0ef2a
Diffstat (limited to 'java/systemserver_classpath_fragment.go')
-rw-r--r-- | java/systemserver_classpath_fragment.go | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/java/systemserver_classpath_fragment.go b/java/systemserver_classpath_fragment.go index a505c6d01..a72b3f60c 100644 --- a/java/systemserver_classpath_fragment.go +++ b/java/systemserver_classpath_fragment.go @@ -47,24 +47,19 @@ func (p *platformSystemServerClasspathModule) AndroidMkEntries() (entries []andr } func (p *platformSystemServerClasspathModule) GenerateAndroidBuildActions(ctx android.ModuleContext) { - configuredJars := configuredJarListToClasspathJars(ctx, p.ClasspathFragmentToConfiguredJarList(ctx), p.classpathType) - p.classpathFragmentBase().generateClasspathProtoBuildActions(ctx, configuredJars) + classpathJars := configuredJarListToClasspathJars(ctx, p.ClasspathFragmentToConfiguredJarList(ctx), p.classpathType) + p.classpathFragmentBase().generateClasspathProtoBuildActions(ctx, classpathJars) } -var platformSystemServerClasspathKey = android.NewOnceKey("platform_systemserverclasspath") - func (p *platformSystemServerClasspathModule) ClasspathFragmentToConfiguredJarList(ctx android.ModuleContext) android.ConfiguredJarList { - return ctx.Config().Once(platformSystemServerClasspathKey, func() interface{} { - global := dexpreopt.GetGlobalConfig(ctx) - - jars := global.SystemServerJars + global := dexpreopt.GetGlobalConfig(ctx) - // TODO(satayev): split apex jars into separate configs. - for i := 0; i < global.UpdatableSystemServerJars.Len(); i++ { - jars = jars.Append(global.UpdatableSystemServerJars.Apex(i), global.UpdatableSystemServerJars.Jar(i)) - } - return jars - }).(android.ConfiguredJarList) + jars := global.SystemServerJars + // TODO(satayev): split apex jars into separate configs. + for i := 0; i < global.UpdatableSystemServerJars.Len(); i++ { + jars = jars.Append(global.UpdatableSystemServerJars.Apex(i), global.UpdatableSystemServerJars.Jar(i)) + } + return jars } type SystemServerClasspathModule struct { @@ -101,7 +96,8 @@ func (s *SystemServerClasspathModule) GenerateAndroidBuildActions(ctx android.Mo ctx.PropertyErrorf("contents", "empty contents are not allowed") } - s.classpathFragmentBase().generateClasspathProtoBuildActions(ctx, configuredJarListToClasspathJars(ctx, s.ClasspathFragmentToConfiguredJarList(ctx))) + classpathJars := configuredJarListToClasspathJars(ctx, s.ClasspathFragmentToConfiguredJarList(ctx), s.classpathType) + s.classpathFragmentBase().generateClasspathProtoBuildActions(ctx, classpathJars) } func (s *SystemServerClasspathModule) ClasspathFragmentToConfiguredJarList(ctx android.ModuleContext) android.ConfiguredJarList { |