Do not add dependencies of shared SDK libraries to manifest_fixer.
Test: lunch aosp_cf_x86_phone-userdebug && m Bug: 132357300 Bug: 168686456 Change-Id: Ibd9742684fa6a8f1353ca0e513f7fa814a6ec9fc
This commit is contained in:
@@ -426,7 +426,7 @@ func aaptLibs(ctx android.ModuleContext, sdkContext sdkContext, sdkLibraries dex
|
||||
// (including the java_sdk_library) itself then append any implicit sdk library
|
||||
// names to the list of sdk libraries to be added to the manifest.
|
||||
if component, ok := module.(SdkLibraryComponentDependency); ok {
|
||||
sdkLibraries.MaybeAddContext(ctx, component.OptionalImplicitSdkLibrary(),
|
||||
sdkLibraries.MaybeAddContext(ctx, component.OptionalImplicitSdkLibrary(), true,
|
||||
component.DexJarBuildPath(), component.DexJarInstallPath())
|
||||
}
|
||||
|
||||
|
@@ -1981,7 +1981,7 @@ func (u *usesLibrary) classLoaderContextForUsesLibDeps(ctx android.ModuleContext
|
||||
if tag, ok := ctx.OtherModuleDependencyTag(m).(usesLibraryDependencyTag); ok {
|
||||
dep := ctx.OtherModuleName(m)
|
||||
if lib, ok := m.(Dependency); ok {
|
||||
clcMap.AddContextForSdk(ctx, tag.sdkVersion, dep,
|
||||
clcMap.AddContextForSdk(ctx, tag.sdkVersion, dep, isSharedSdkLibrary(m),
|
||||
lib.DexJarBuildPath(), lib.DexJarInstallPath(), lib.ExportedSdkLibs())
|
||||
} else if ctx.Config().AllowMissingDependencies() {
|
||||
ctx.AddMissingDependencies([]string{dep})
|
||||
@@ -1995,6 +1995,11 @@ func (u *usesLibrary) classLoaderContextForUsesLibDeps(ctx android.ModuleContext
|
||||
return clcMap
|
||||
}
|
||||
|
||||
func isSharedSdkLibrary(m android.Module) bool {
|
||||
lib, ok := m.(SdkLibraryDependency)
|
||||
return ok && lib.IsSharedLibrary()
|
||||
}
|
||||
|
||||
// enforceUsesLibraries returns true of <uses-library> tags should be checked against uses_libs and optional_uses_libs
|
||||
// properties. Defaults to true if either of uses_libs or optional_uses_libs is specified. Will default to true
|
||||
// unconditionally in the future.
|
||||
|
10
java/java.go
10
java/java.go
@@ -1027,7 +1027,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.MaybeAddContext(ctx, dep.OptionalImplicitSdkLibrary(),
|
||||
j.exportedSdkLibs.MaybeAddContext(ctx, dep.OptionalImplicitSdkLibrary(), true,
|
||||
dep.DexJarBuildPath(), dep.DexJarInstallPath())
|
||||
case staticLibTag:
|
||||
ctx.ModuleErrorf("dependency on java_sdk_library %q can only be in libs", otherName)
|
||||
@@ -2062,12 +2062,12 @@ 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.MaybeAddContext(ctx, j.OptionalImplicitSdkLibrary(),
|
||||
j.exportedSdkLibs.MaybeAddContext(ctx, j.OptionalImplicitSdkLibrary(), true,
|
||||
j.DexJarBuildPath(), j.DexJarInstallPath())
|
||||
|
||||
// A non-SDK library may provide a <uses-library> (the name may be different from the module name).
|
||||
if lib := proptools.String(j.usesLibraryProperties.Provides_uses_lib); lib != "" {
|
||||
j.exportedSdkLibs.AddContext(ctx, lib, j.DexJarBuildPath(), j.DexJarInstallPath())
|
||||
j.exportedSdkLibs.AddContext(ctx, lib, true, j.DexJarBuildPath(), j.DexJarInstallPath())
|
||||
}
|
||||
|
||||
j.distFiles = j.GenerateTaggedDistFiles(ctx)
|
||||
@@ -2744,7 +2744,7 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
case libTag:
|
||||
flags.classpath = append(flags.classpath, dep.SdkHeaderJars(ctx, j.sdkVersion())...)
|
||||
// names of sdk libs that are directly depended are exported
|
||||
j.exportedSdkLibs.AddContext(ctx, otherName,
|
||||
j.exportedSdkLibs.AddContext(ctx, otherName, dep.IsSharedLibrary(),
|
||||
dep.DexJarBuildPath(), dep.DexJarInstallPath())
|
||||
}
|
||||
}
|
||||
@@ -2760,7 +2760,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.MaybeAddContext(ctx, j.OptionalImplicitSdkLibrary(),
|
||||
j.exportedSdkLibs.MaybeAddContext(ctx, j.OptionalImplicitSdkLibrary(), true,
|
||||
outputFile, installFile)
|
||||
|
||||
j.exportAidlIncludeDirs = android.PathsForModuleSrc(ctx, j.properties.Aidl.Export_include_dirs)
|
||||
|
@@ -673,6 +673,11 @@ func (c *commonToSdkLibraryAndImport) apiModuleName(apiScope *apiScope) string {
|
||||
return c.namingScheme.apiModuleName(apiScope, c.moduleBase.BaseModuleName())
|
||||
}
|
||||
|
||||
// If the SDK library is a shared library.
|
||||
func (c *commonToSdkLibraryAndImport) IsSharedLibrary() bool {
|
||||
return c.sharedLibrary()
|
||||
}
|
||||
|
||||
// The component names for different outputs of the java_sdk_library.
|
||||
//
|
||||
// They are similar to the names used for the child modules it creates
|
||||
@@ -918,6 +923,9 @@ type SdkLibraryDependency interface {
|
||||
// jars for the stubs. The latter should only be needed when generating JavaDoc as otherwise
|
||||
// they are identical to the corresponding header jars.
|
||||
SdkImplementationJars(ctx android.BaseModuleContext, sdkVersion sdkSpec) android.Paths
|
||||
|
||||
// If the SDK library is a shared library.
|
||||
IsSharedLibrary() bool
|
||||
}
|
||||
|
||||
type SdkLibrary struct {
|
||||
|
Reference in New Issue
Block a user