Merge "Add java_import_host handling logic."
This commit is contained in:
commit
7494e7301a
|
@ -205,6 +205,11 @@ func rewriteIncorrectAndroidmkPrebuilts(f *Fixer) error {
|
||||||
if mod.Type != "java_import" {
|
if mod.Type != "java_import" {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
host, _ := getLiteralBoolPropertyValue(mod, "host")
|
||||||
|
if host {
|
||||||
|
mod.Type = "java_import_host"
|
||||||
|
removeProperty(mod, "host")
|
||||||
|
}
|
||||||
srcs, ok := getLiteralListProperty(mod, "srcs")
|
srcs, ok := getLiteralListProperty(mod, "srcs")
|
||||||
if !ok {
|
if !ok {
|
||||||
continue
|
continue
|
||||||
|
@ -705,6 +710,24 @@ func getLiteralStringPropertyValue(mod *parser.Module, name string) (s string, f
|
||||||
return stringValue.Value, true
|
return stringValue.Value, true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getLiteralBoolProperty(mod *parser.Module, name string) (b *parser.Bool, found bool) {
|
||||||
|
prop, ok := mod.GetProperty(name)
|
||||||
|
if !ok {
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
b, ok = prop.Value.(*parser.Bool)
|
||||||
|
return b, ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func getLiteralBoolPropertyValue(mod *parser.Module, name string) (s bool, found bool) {
|
||||||
|
boolValue, ok := getLiteralBoolProperty(mod, name)
|
||||||
|
if !ok {
|
||||||
|
return false, false
|
||||||
|
}
|
||||||
|
|
||||||
|
return boolValue.Value, true
|
||||||
|
}
|
||||||
|
|
||||||
func propertyIndex(props []*parser.Property, propertyName string) int {
|
func propertyIndex(props []*parser.Property, propertyName string) int {
|
||||||
for i, prop := range props {
|
for i, prop := range props {
|
||||||
if prop.Name == propertyName {
|
if prop.Name == propertyName {
|
||||||
|
|
|
@ -555,3 +555,69 @@ func TestReplaceJavaStaticLibs(t *testing.T) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestRewritePrebuilts(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
in string
|
||||||
|
out string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "jar srcs",
|
||||||
|
in: `
|
||||||
|
java_import {
|
||||||
|
name: "foo",
|
||||||
|
srcs: ["foo.jar"],
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
out: `
|
||||||
|
java_import {
|
||||||
|
name: "foo",
|
||||||
|
jars: ["foo.jar"],
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "aar srcs",
|
||||||
|
in: `
|
||||||
|
java_import {
|
||||||
|
name: "foo",
|
||||||
|
srcs: ["foo.aar"],
|
||||||
|
installable: true,
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
out: `
|
||||||
|
android_library_import {
|
||||||
|
name: "foo",
|
||||||
|
aars: ["foo.aar"],
|
||||||
|
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "host prebuilt",
|
||||||
|
in: `
|
||||||
|
java_import {
|
||||||
|
name: "foo",
|
||||||
|
srcs: ["foo.jar"],
|
||||||
|
host: true,
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
out: `
|
||||||
|
java_import_host {
|
||||||
|
name: "foo",
|
||||||
|
jars: ["foo.jar"],
|
||||||
|
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, test := range tests {
|
||||||
|
t.Run(test.name, func(t *testing.T) {
|
||||||
|
runPass(t, test.in, test.out, func(fixer *Fixer) error {
|
||||||
|
return rewriteIncorrectAndroidmkPrebuilts(fixer)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue