Enable an apex to include a java_import.
With the addition of the compile_dex property to the java_import module it becomes possible to include a java_import module in an apex. This change allows the dependency and adds a test. Bug: 177228901 Test: m nothing Test: new TestApexWithJavaImport Change-Id: I9336dade1857109e2fd21f7d57e1dc4abc4a402c
This commit is contained in:
@@ -1428,6 +1428,7 @@ type javaModule interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var _ javaModule = (*java.Library)(nil)
|
var _ javaModule = (*java.Library)(nil)
|
||||||
|
var _ javaModule = (*java.Import)(nil)
|
||||||
var _ javaModule = (*java.SdkLibrary)(nil)
|
var _ javaModule = (*java.SdkLibrary)(nil)
|
||||||
var _ javaModule = (*java.DexImport)(nil)
|
var _ javaModule = (*java.DexImport)(nil)
|
||||||
var _ javaModule = (*java.SdkLibraryImport)(nil)
|
var _ javaModule = (*java.SdkLibraryImport)(nil)
|
||||||
@@ -1629,7 +1630,7 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
}
|
}
|
||||||
case javaLibTag:
|
case javaLibTag:
|
||||||
switch child.(type) {
|
switch child.(type) {
|
||||||
case *java.Library, *java.SdkLibrary, *java.DexImport, *java.SdkLibraryImport:
|
case *java.Library, *java.SdkLibrary, *java.DexImport, *java.SdkLibraryImport, *java.Import:
|
||||||
af := apexFileForJavaModule(ctx, child.(javaModule))
|
af := apexFileForJavaModule(ctx, child.(javaModule))
|
||||||
if !af.ok() {
|
if !af.ok() {
|
||||||
ctx.PropertyErrorf("java_libs", "%q is not configured to be compiled into dex", depName)
|
ctx.PropertyErrorf("java_libs", "%q is not configured to be compiled into dex", depName)
|
||||||
|
@@ -4515,6 +4515,34 @@ func TestErrorsIfDepsAreNotEnabled(t *testing.T) {
|
|||||||
`)
|
`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestApexWithJavaImport(t *testing.T) {
|
||||||
|
ctx, _ := testApex(t, `
|
||||||
|
apex {
|
||||||
|
name: "myapex",
|
||||||
|
key: "myapex.key",
|
||||||
|
java_libs: ["myjavaimport"],
|
||||||
|
}
|
||||||
|
|
||||||
|
apex_key {
|
||||||
|
name: "myapex.key",
|
||||||
|
public_key: "testkey.avbpubkey",
|
||||||
|
private_key: "testkey.pem",
|
||||||
|
}
|
||||||
|
|
||||||
|
java_import {
|
||||||
|
name: "myjavaimport",
|
||||||
|
apex_available: ["myapex"],
|
||||||
|
jars: ["my.jar"],
|
||||||
|
compile_dex: true,
|
||||||
|
}
|
||||||
|
`)
|
||||||
|
|
||||||
|
module := ctx.ModuleForTests("myapex", "android_common_myapex_image")
|
||||||
|
apexRule := module.Rule("apexRule")
|
||||||
|
copyCmds := apexRule.Args["copy_commands"]
|
||||||
|
ensureContains(t, copyCmds, "image.apex/javalib/myjavaimport.jar")
|
||||||
|
}
|
||||||
|
|
||||||
func TestApexWithApps(t *testing.T) {
|
func TestApexWithApps(t *testing.T) {
|
||||||
ctx, _ := testApex(t, `
|
ctx, _ := testApex(t, `
|
||||||
apex {
|
apex {
|
||||||
|
@@ -2831,6 +2831,10 @@ func (a *Import) JacocoReportClassesFile() android.Path {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (j *Import) LintDepSets() LintDepSets {
|
||||||
|
return LintDepSets{}
|
||||||
|
}
|
||||||
|
|
||||||
func (j *Import) DepsMutator(ctx android.BottomUpMutatorContext) {
|
func (j *Import) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||||
ctx.AddVariationDependencies(nil, libTag, j.properties.Libs...)
|
ctx.AddVariationDependencies(nil, libTag, j.properties.Libs...)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user