Propagate transitive SDK Java library dependencies to dexpreopt.
For some dependencies, like stubs, the SDK library may not be found at build time (either because the implementation library is not among the dependencies of the dexpreopted module, or because it's part of a prebuilt, or because it's missing from the build altogether). In such cases dexpreopt is useless, because dex2oat does not have access to the full classpath (unless the &-classpath is used). Therefore do not dexpreopt in such cases. Test: lunch aosp_cf_x86_phone-userdebug && m Bug: 132357300 Change-Id: If289088cfd103011ccb16165e95a97b30fd31b81
This commit is contained in:
@@ -991,7 +991,7 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps {
|
||||
case libTag:
|
||||
deps.classpath = append(deps.classpath, dep.SdkHeaderJars(ctx, j.sdkVersion())...)
|
||||
// names of sdk libs that are directly depended are exported
|
||||
j.exportedSdkLibs.AddLibraryPath(ctx, dep.OptionalImplicitSdkLibrary(), dep.DexJarBuildPath(), dep.DexJarInstallPath())
|
||||
j.exportedSdkLibs.MaybeAddLibraryPath(ctx, dep.OptionalImplicitSdkLibrary(), dep.DexJarBuildPath(), dep.DexJarInstallPath())
|
||||
case staticLibTag:
|
||||
ctx.ModuleErrorf("dependency on java_sdk_library %q can only be in libs", otherName)
|
||||
}
|
||||
@@ -1970,7 +1970,7 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
// add the name of that java_sdk_library to the exported sdk libs to make sure
|
||||
// that, if necessary, a <uses-library> element for that java_sdk_library is
|
||||
// added to the Android manifest.
|
||||
j.exportedSdkLibs.AddLibraryPath(ctx, j.OptionalImplicitSdkLibrary(), j.DexJarBuildPath(), j.DexJarInstallPath())
|
||||
j.exportedSdkLibs.MaybeAddLibraryPath(ctx, j.OptionalImplicitSdkLibrary(), j.DexJarBuildPath(), j.DexJarInstallPath())
|
||||
|
||||
j.distFiles = j.GenerateTaggedDistFiles(ctx)
|
||||
}
|
||||
@@ -2608,7 +2608,7 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
switch tag {
|
||||
case libTag:
|
||||
// names of sdk libs that are directly depended are exported
|
||||
j.exportedSdkLibs.AddLibraryPath(ctx, &otherName, dep.DexJarBuildPath(), dep.DexJarInstallPath())
|
||||
j.exportedSdkLibs.AddLibraryPath(ctx, otherName, dep.DexJarBuildPath(), dep.DexJarInstallPath())
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -2623,7 +2623,7 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
// add the name of that java_sdk_library to the exported sdk libs to make sure
|
||||
// that, if necessary, a <uses-library> element for that java_sdk_library is
|
||||
// added to the Android manifest.
|
||||
j.exportedSdkLibs.AddLibraryPath(ctx, j.OptionalImplicitSdkLibrary(), outputFile, installFile)
|
||||
j.exportedSdkLibs.MaybeAddLibraryPath(ctx, j.OptionalImplicitSdkLibrary(), outputFile, installFile)
|
||||
|
||||
j.exportAidlIncludeDirs = android.PathsForModuleSrc(ctx, j.properties.Aidl.Export_include_dirs)
|
||||
}
|
||||
|
Reference in New Issue
Block a user