Merge "Revert "Revert "Split Java libraries per apex"""
am: c89fe6253f
Change-Id: I490b09e3a7b2ef00aad4defaa8c6b100ef249453
This commit is contained in:
@@ -55,6 +55,11 @@ func (library *Library) AndroidMkHostDex(w io.Writer, name string, data android.
|
||||
}
|
||||
|
||||
func (library *Library) AndroidMk() android.AndroidMkData {
|
||||
if !library.IsForPlatform() {
|
||||
return android.AndroidMkData{
|
||||
Disabled: true,
|
||||
}
|
||||
}
|
||||
return android.AndroidMkData{
|
||||
Class: "JAVA_LIBRARIES",
|
||||
OutputFile: android.OptionalPathForPath(library.outputFile),
|
||||
@@ -141,6 +146,11 @@ func (j *TestHelperLibrary) AndroidMk() android.AndroidMkData {
|
||||
}
|
||||
|
||||
func (prebuilt *Import) AndroidMk() android.AndroidMkData {
|
||||
if !prebuilt.IsForPlatform() {
|
||||
return android.AndroidMkData{
|
||||
Disabled: true,
|
||||
}
|
||||
}
|
||||
return android.AndroidMkData{
|
||||
Class: "JAVA_LIBRARIES",
|
||||
OutputFile: android.OptionalPathForPath(prebuilt.combinedClasspathFile),
|
||||
@@ -157,6 +167,11 @@ func (prebuilt *Import) AndroidMk() android.AndroidMkData {
|
||||
}
|
||||
|
||||
func (prebuilt *DexImport) AndroidMk() android.AndroidMkData {
|
||||
if !prebuilt.IsForPlatform() {
|
||||
return android.AndroidMkData{
|
||||
Disabled: true,
|
||||
}
|
||||
}
|
||||
return android.AndroidMkData{
|
||||
Class: "JAVA_LIBRARIES",
|
||||
OutputFile: android.OptionalPathForPath(prebuilt.maybeStrippedDexJarFile),
|
||||
|
@@ -152,6 +152,14 @@ func stubFlagsRule(ctx android.SingletonContext) {
|
||||
// Collect dex jar paths for modules that had hiddenapi encode called on them.
|
||||
if h, ok := module.(hiddenAPIIntf); ok {
|
||||
if jar := h.bootDexJar(); jar != nil {
|
||||
// For a java lib included in an APEX, only take the one built for
|
||||
// the platform variant, and skip the variants for APEXes.
|
||||
// Otherwise, the hiddenapi tool will complain about duplicated classes
|
||||
if a, ok := module.(android.ApexModule); ok {
|
||||
if android.InAnyApex(module.Name()) && !a.IsForPlatform() {
|
||||
return
|
||||
}
|
||||
}
|
||||
bootDexJars = append(bootDexJars, jar)
|
||||
}
|
||||
}
|
||||
|
14
java/java.go
14
java/java.go
@@ -267,6 +267,7 @@ func (me *CompilerDeviceProperties) EffectiveOptimizeEnabled() bool {
|
||||
type Module struct {
|
||||
android.ModuleBase
|
||||
android.DefaultableModuleBase
|
||||
android.ApexModuleBase
|
||||
|
||||
properties CompilerProperties
|
||||
protoProperties android.ProtoProperties
|
||||
@@ -1550,7 +1551,8 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
j.deviceProperties.UncompressDex = j.dexpreopter.uncompressedDex
|
||||
j.compile(ctx, nil)
|
||||
|
||||
if (Bool(j.properties.Installable) || ctx.Host()) && !android.DirectlyInAnyApex(ctx, ctx.ModuleName()) {
|
||||
exclusivelyForApex := android.InAnyApex(ctx.ModuleName()) && !j.IsForPlatform()
|
||||
if (Bool(j.properties.Installable) || ctx.Host()) && !exclusivelyForApex {
|
||||
j.installFile = ctx.InstallFile(android.PathForModuleInstall(ctx, "framework"),
|
||||
ctx.ModuleName()+".jar", j.outputFile)
|
||||
}
|
||||
@@ -1581,6 +1583,7 @@ func LibraryFactory() android.Module {
|
||||
&module.Module.protoProperties)
|
||||
|
||||
InitJavaModule(module, android.HostAndDeviceSupported)
|
||||
android.InitApexModule(module)
|
||||
return module
|
||||
}
|
||||
|
||||
@@ -1603,6 +1606,7 @@ func LibraryHostFactory() android.Module {
|
||||
module.Module.properties.Installable = proptools.BoolPtr(true)
|
||||
|
||||
InitJavaModule(module, android.HostSupported)
|
||||
android.InitApexModule(module)
|
||||
return module
|
||||
}
|
||||
|
||||
@@ -1858,6 +1862,7 @@ type ImportProperties struct {
|
||||
type Import struct {
|
||||
android.ModuleBase
|
||||
android.DefaultableModuleBase
|
||||
android.ApexModuleBase
|
||||
prebuilt android.Prebuilt
|
||||
|
||||
properties ImportProperties
|
||||
@@ -2014,6 +2019,7 @@ func ImportFactory() android.Module {
|
||||
|
||||
android.InitPrebuiltModule(module, &module.properties.Jars)
|
||||
InitJavaModule(module, android.HostAndDeviceSupported)
|
||||
android.InitApexModule(module)
|
||||
return module
|
||||
}
|
||||
|
||||
@@ -2029,6 +2035,7 @@ func ImportFactoryHost() android.Module {
|
||||
|
||||
android.InitPrebuiltModule(module, &module.properties.Jars)
|
||||
InitJavaModule(module, android.HostSupported)
|
||||
android.InitApexModule(module)
|
||||
return module
|
||||
}
|
||||
|
||||
@@ -2041,6 +2048,7 @@ type DexImportProperties struct {
|
||||
type DexImport struct {
|
||||
android.ModuleBase
|
||||
android.DefaultableModuleBase
|
||||
android.ApexModuleBase
|
||||
prebuilt android.Prebuilt
|
||||
|
||||
properties DexImportProperties
|
||||
@@ -2132,6 +2140,7 @@ func DexImportFactory() android.Module {
|
||||
|
||||
android.InitPrebuiltModule(module, &module.properties.Jars)
|
||||
InitJavaModule(module, android.DeviceSupported)
|
||||
android.InitApexModule(module)
|
||||
return module
|
||||
}
|
||||
|
||||
@@ -2141,6 +2150,7 @@ func DexImportFactory() android.Module {
|
||||
type Defaults struct {
|
||||
android.ModuleBase
|
||||
android.DefaultsModuleBase
|
||||
android.ApexModuleBase
|
||||
}
|
||||
|
||||
// java_defaults provides a set of properties that can be inherited by other java or android modules.
|
||||
@@ -2199,7 +2209,7 @@ func DefaultsFactory(props ...interface{}) android.Module {
|
||||
)
|
||||
|
||||
android.InitDefaultsModule(module)
|
||||
|
||||
android.InitApexModule(module)
|
||||
return module
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user