diff options
author | satayev <satayev@google.com> | 2021-05-06 23:38:10 +0100 |
---|---|---|
committer | satayev <satayev@google.com> | 2021-05-07 16:31:07 +0100 |
commit | 013485bd832075821f01a2a737b14647baab3835 (patch) | |
tree | 33bd84e0f78ab7fa2407abec670969642372b2c2 /java/platform_bootclasspath.go | |
parent | 95e9c5bbfa8a1a46433183830a2429ac83979d33 (diff) |
Declare ConfiguredJarList in specific fragment implementations.
Each specific classpath_fragment module knows what jars must be part
of the corresponding classpaths.proto config.
Note that bootclasspath_fragment does not implement classpath_fragment
yet, thus all boot jars and all system server jars go into corresponding
platform classpaths.
Bug: 180105615
Test: m && launch_cvd; atest CtsClasspathsTestCases
Change-Id: I6a8c7b0a5d17d62e790a441b8e2c5c1a816e7f30
Diffstat (limited to 'java/platform_bootclasspath.go')
-rw-r--r-- | java/platform_bootclasspath.go | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/java/platform_bootclasspath.go b/java/platform_bootclasspath.go index 1f2494296..1caffe48c 100644 --- a/java/platform_bootclasspath.go +++ b/java/platform_bootclasspath.go @@ -167,8 +167,6 @@ func (d *platformBootclasspathModule) MakeVars(ctx android.MakeVarsContext) { } func (b *platformBootclasspathModule) GenerateAndroidBuildActions(ctx android.ModuleContext) { - b.classpathFragmentBase().generateClasspathProtoBuildActions(ctx) - // Gather all the dependencies from the art, updatable and non-updatable boot jars. artModules := gatherApexModulePairDepsWithTag(ctx, platformBootclasspathArtBootJarDepTag) nonUpdatableModules := gatherApexModulePairDepsWithTag(ctx, platformBootclasspathNonUpdatableBootJarDepTag) @@ -189,6 +187,8 @@ func (b *platformBootclasspathModule) GenerateAndroidBuildActions(ctx android.Mo b.checkNonUpdatableModules(ctx, nonUpdatableModules) b.checkUpdatableModules(ctx, updatableModules) + b.generateClasspathProtoBuildActions(ctx) + b.generateHiddenAPIBuildActions(ctx, b.configuredModules, b.fragments) // Nothing to do if skipping the dexpreopt of boot image jars. @@ -199,6 +199,23 @@ func (b *platformBootclasspathModule) GenerateAndroidBuildActions(ctx android.Mo b.generateBootImageBuildActions(ctx, updatableModules) } +// Generate classpaths.proto config +func (b *platformBootclasspathModule) generateClasspathProtoBuildActions(ctx android.ModuleContext) { + // ART and platform boot jars must have a corresponding entry in DEX2OATBOOTCLASSPATH + classpathJars := configuredJarListToClasspathJars(ctx, b.ClasspathFragmentToConfiguredJarList(ctx), BOOTCLASSPATH, DEX2OATBOOTCLASSPATH) + // TODO(satayev): remove updatable boot jars once each apex has its own fragment + global := dexpreopt.GetGlobalConfig(ctx) + classpathJars = append(classpathJars, configuredJarListToClasspathJars(ctx, global.UpdatableBootJars, BOOTCLASSPATH)...) + + b.classpathFragmentBase().generateClasspathProtoBuildActions(ctx, classpathJars) +} + +func (b *platformBootclasspathModule) ClasspathFragmentToConfiguredJarList(ctx android.ModuleContext) android.ConfiguredJarList { + global := dexpreopt.GetGlobalConfig(ctx) + // TODO(satayev): split ART apex jars into their own classpathFragment + return global.BootJars +} + // checkNonUpdatableModules ensures that the non-updatable modules supplied are not part of an // updatable module. func (b *platformBootclasspathModule) checkNonUpdatableModules(ctx android.ModuleContext, modules []android.Module) { |