Bp2build support for app R8-related fields
Bug: 293304784
Test: CI
Change-Id: I0aefa57f968cb41e50d7c1d29b2d8a1480655355
diff --git a/bp2build/android_app_conversion_test.go b/bp2build/android_app_conversion_test.go
index 25494a1..f2ee322 100644
--- a/bp2build/android_app_conversion_test.go
+++ b/bp2build/android_app_conversion_test.go
@@ -47,6 +47,11 @@
name: "TestApp",
srcs: ["app.java"],
sdk_version: "current",
+ optimize: {
+ shrink: true,
+ optimize: true,
+ obfuscate: true,
+ },
}
`,
ExpectedBazelTargets: []string{
@@ -75,17 +80,25 @@
},
Blueprint: simpleModuleDoNotConvertBp2build("android_app", "static_lib_dep") + `
android_app {
- name: "TestApp",
- srcs: ["app.java"],
- sdk_version: "current",
- package_name: "com.google",
- resource_dirs: ["resa", "resb"],
- manifest: "manifest/AndroidManifest.xml",
- static_libs: ["static_lib_dep"],
- java_version: "7",
- certificate: "foocert",
- required: ["static_lib_dep"],
- asset_dirs: ["assets_"],
+ name: "TestApp",
+ srcs: ["app.java"],
+ sdk_version: "current",
+ package_name: "com.google",
+ resource_dirs: ["resa", "resb"],
+ manifest: "manifest/AndroidManifest.xml",
+ static_libs: ["static_lib_dep"],
+ java_version: "7",
+ certificate: "foocert",
+ required: ["static_lib_dep"],
+ asset_dirs: ["assets_"],
+ optimize: {
+ enabled: true,
+ optimize: false,
+ proguard_flags_files: ["proguard.flags"],
+ shrink: false,
+ obfuscate: false,
+ ignore_warnings: true,
+ },
}
`,
ExpectedBazelTargets: []string{
@@ -103,6 +116,14 @@
"java_version": `"7"`,
"sdk_version": `"current"`,
"certificate_name": `"foocert"`,
+ "proguard_specs": `[
+ "proguard.flags",
+ ":TestApp_proguard_flags",
+ ]`,
+ }),
+ MakeBazelTarget("genrule", "TestApp_proguard_flags", AttrNameToString{
+ "outs": `["TestApp_proguard.flags"]`,
+ "cmd": `"echo -ignorewarning -dontshrink -dontoptimize -dontobfuscate > $(OUTS)"`,
}),
}})
}
@@ -129,7 +150,10 @@
x86: {
srcs: ["x86.java"],
}
- }
+ },
+ optimize: {
+ enabled: false,
+ },
}
`,
ExpectedBazelTargets: []string{
@@ -142,6 +166,7 @@
"manifest": `"AndroidManifest.xml"`,
"resource_files": `["res/res.png"]`,
"sdk_version": `"current"`,
+ "optimize": `False`,
}),
}})
}
@@ -157,6 +182,9 @@
name: "TestApp",
certificate: ":foocert",
sdk_version: "current",
+ optimize: {
+ enabled: false,
+ },
}
`,
ExpectedBazelTargets: []string{
@@ -165,6 +193,7 @@
"manifest": `"AndroidManifest.xml"`,
"resource_files": `[]`,
"sdk_version": `"current"`, // use as default
+ "optimize": `False`,
}),
}})
}
@@ -182,6 +211,9 @@
name: "TestApp",
certificate: "foocert",
sdk_version: "current",
+ optimize: {
+ enabled: false,
+ },
}
`,
ExpectedBazelTargets: []string{
@@ -190,6 +222,7 @@
"manifest": `"AndroidManifest.xml"`,
"resource_files": `[]`,
"sdk_version": `"current"`, // use as default
+ "optimize": `False`,
}),
}})
}
@@ -207,6 +240,9 @@
name: "TestApp",
certificate: "foocert",
sdk_version: "current",
+ optimize: {
+ enabled: false,
+ },
}
`,
ExpectedBazelTargets: []string{
@@ -215,6 +251,7 @@
"manifest": `"AndroidManifest.xml"`,
"resource_files": `[]`,
"sdk_version": `"current"`, // use as default
+ "optimize": `False`,
}),
}})
}
@@ -225,12 +262,14 @@
ModuleTypeUnderTest: "android_app",
ModuleTypeUnderTestFactory: java.AndroidAppFactory,
Filesystem: map[string]string{},
- Blueprint: simpleModuleDoNotConvertBp2build("filegroup", "foocert") +
- simpleModuleDoNotConvertBp2build("java_library", "barLib") + `
+ Blueprint: simpleModuleDoNotConvertBp2build("java_library", "barLib") + `
android_app {
name: "foo",
libs: ["barLib"],
sdk_version: "current",
+ optimize: {
+ enabled: false,
+ },
}
`,
ExpectedBazelTargets: []string{
@@ -239,6 +278,7 @@
"resource_files": `[]`,
"deps": `[":barLib-neverlink"]`,
"sdk_version": `"current"`, // use as default
+ "optimize": `False`,
}),
}})
}
@@ -260,6 +300,9 @@
manifest: "fooManifest.xml",
libs: ["barLib"],
sdk_version: "current",
+ optimize: {
+ enabled: false,
+ },
}
`,
ExpectedBazelTargets: []string{
@@ -278,6 +321,7 @@
"certificate": `":foocert"`,
"manifest": `"fooManifest.xml"`,
"sdk_version": `"current"`, // use as default
+ "optimize": `False`,
}),
}})
}
@@ -290,15 +334,17 @@
Filesystem: map[string]string{
"res/res.png": "",
},
- Blueprint: simpleModuleDoNotConvertBp2build("filegroup", "foocert") + `
+ Blueprint: `
android_app {
name: "foo",
srcs: ["a.java"],
common_srcs: ["b.kt"],
- certificate: "foocert",
manifest: "fooManifest.xml",
libs: ["barLib"],
sdk_version: "current",
+ optimize: {
+ enabled: false,
+ },
}
java_library{
name: "barLib",
@@ -315,10 +361,10 @@
"sdk_version": `"current"`, // use as default
}),
MakeBazelTarget("android_binary", "foo", AttrNameToString{
- "deps": `[":foo_kt"]`,
- "certificate_name": `"foocert"`,
- "manifest": `"fooManifest.xml"`,
- "sdk_version": `"current"`, // use as default
+ "deps": `[":foo_kt"]`,
+ "manifest": `"fooManifest.xml"`,
+ "sdk_version": `"current"`, // use as default
+ "optimize": `False`,
}),
}})
}
@@ -331,14 +377,16 @@
Filesystem: map[string]string{
"res/res.png": "",
},
- Blueprint: simpleModuleDoNotConvertBp2build("filegroup", "foocert") + `
+ Blueprint: `
android_app {
name: "foo",
srcs: ["a.java", "b.kt"],
- certificate: ":foocert",
manifest: "fooManifest.xml",
kotlincflags: ["-flag1", "-flag2"],
sdk_version: "current",
+ optimize: {
+ enabled: false,
+ },
}
`,
ExpectedBazelTargets: []string{
@@ -357,9 +405,9 @@
}),
MakeBazelTarget("android_binary", "foo", AttrNameToString{
"deps": `[":foo_kt"]`,
- "certificate": `":foocert"`,
"manifest": `"fooManifest.xml"`,
"sdk_version": `"current"`,
+ "optimize": `False`,
}),
}})
}
@@ -370,13 +418,16 @@
ModuleTypeUnderTest: "android_app",
ModuleTypeUnderTestFactory: java.AndroidAppFactory,
Filesystem: map[string]string{},
- Blueprint: simpleModuleDoNotConvertBp2build("filegroup", "foocert") + `
+ Blueprint: `
android_app {
name: "foo",
sdk_version: "current",
min_sdk_version: "24",
max_sdk_version: "30",
target_sdk_version: "29",
+ optimize: {
+ enabled: false,
+ },
}
`,
ExpectedBazelTargets: []string{
@@ -389,6 +440,7 @@
"targetSdkVersion": "29",
}`,
"sdk_version": `"current"`,
+ "optimize": `False`,
}),
}})
}
@@ -399,10 +451,13 @@
ModuleTypeUnderTest: "android_app",
ModuleTypeUnderTestFactory: java.AndroidAppFactory,
Filesystem: map[string]string{},
- Blueprint: simpleModuleDoNotConvertBp2build("filegroup", "foocert") + `
+ Blueprint: `
android_app {
name: "foo",
sdk_version: "30",
+ optimize: {
+ enabled: false,
+ },
}
`,
ExpectedBazelTargets: []string{
@@ -414,6 +469,7 @@
"targetSdkVersion": "30",
}`,
"sdk_version": `"30"`,
+ "optimize": `False`,
}),
}})
}