Add java_boot_libs to sdk
The build has some implicit dependencies (via the boot jars configuration) on a number of modules, e.g. core-oj, apache-xml, that are part of the java boot class path and which are provided by mainline modules (e.g. art, conscrypt, runtime-i18n) but which are not otherwise used outside those mainline modules. As they are not needed outside the mainline modules adding them to the sdk/module-exports as either java_libs, or java_header_libs would end up exporting more information than was strictly necessary. This change adds the java_boot_libs property to allow those modules to be exported as part of the sdk/module_exports without exposing any unnecessary information. Some points to note: * The java_import has to have a valid file for the src property otherwise it will be disabled. * The src property is supposed to reference a jar file but the java_boot_libs property will make it reference an empty file (not an empty jar) so that any attempt to use that file as a jar, e.g. compiling against it, will cause a build failure. * The name of the file passed to the src property should make it clear that the file is not intended to be used. * The test makes sure that only the jar file is copied to the snapshot. Test: m nothing Bug: 171061220 Change-Id: I175331e4c8e3874ab70a67cdc2f76ed1576e41eb
This commit is contained in:
@@ -653,6 +653,9 @@ type snapshotBuilder struct {
|
||||
filesToZip android.Paths
|
||||
zipsToMerge android.Paths
|
||||
|
||||
// The path to an empty file.
|
||||
emptyFile android.WritablePath
|
||||
|
||||
prebuiltModules map[string]*bpModule
|
||||
prebuiltOrder []*bpModule
|
||||
|
||||
@@ -703,6 +706,19 @@ func (s *snapshotBuilder) UnzipToSnapshot(zipPath android.Path, destDir string)
|
||||
s.zipsToMerge = append(s.zipsToMerge, tmpZipPath)
|
||||
}
|
||||
|
||||
func (s *snapshotBuilder) EmptyFile() android.Path {
|
||||
if s.emptyFile == nil {
|
||||
ctx := s.ctx
|
||||
s.emptyFile = android.PathForModuleOut(ctx, "empty")
|
||||
s.ctx.Build(pctx, android.BuildParams{
|
||||
Rule: android.Touch,
|
||||
Output: s.emptyFile,
|
||||
})
|
||||
}
|
||||
|
||||
return s.emptyFile
|
||||
}
|
||||
|
||||
func (s *snapshotBuilder) AddPrebuiltModule(member android.SdkMember, moduleType string) android.BpModule {
|
||||
name := member.Name()
|
||||
if s.prebuiltModules[name] != nil {
|
||||
|
Reference in New Issue
Block a user