Propagate PRODUCT_MINIMIZE_JAVA_DEBUG_INFO to soong and use it
Strip debug info in javac when PRODUCT_MINIMIZE_JAVA_DEBUG_INFO
is set.
Test: m with PRODUCT_MINIMIZE_JAVA_DEBUG_INFO=true
Change-Id: I167e742662801291c516bf1ff826486560d22147
diff --git a/android/config.go b/android/config.go
index 56d0a39..e9a8d42 100644
--- a/android/config.go
+++ b/android/config.go
@@ -504,6 +504,10 @@
return Bool(c.ProductVariables.Pdk)
}
+func (c *config) MinimizeJavaDebugInfo() bool {
+ return Bool(c.ProductVariables.MinimizeJavaDebugInfo) && !Bool(c.ProductVariables.Eng)
+}
+
func (c *config) DevicePrefer32BitExecutables() bool {
return Bool(c.ProductVariables.DevicePrefer32BitExecutables)
}
diff --git a/android/variable.go b/android/variable.go
index 4b3925c..28841e2 100644
--- a/android/variable.go
+++ b/android/variable.go
@@ -158,6 +158,7 @@
Treble *bool `json:",omitempty"`
Pdk *bool `json:",omitempty"`
Uml *bool `json:",omitempty"`
+ MinimizeJavaDebugInfo *bool `json:",omitempty"`
IntegerOverflowExcludePaths *[]string `json:",omitempty"`
diff --git a/java/java.go b/java/java.go
index 7ecf672..1541dec 100644
--- a/java/java.go
+++ b/java/java.go
@@ -466,6 +466,11 @@
if ctx.AConfig().TargetOpenJDK9() {
javacFlags = append(javacFlags, j.properties.Openjdk9.Javacflags...)
}
+ if ctx.AConfig().MinimizeJavaDebugInfo() {
+ // Override the -g flag passed globally to remove local variable debug info to reduce
+ // disk and memory usage.
+ javacFlags = append(javacFlags, "-g:source,lines")
+ }
if len(javacFlags) > 0 {
// optimization.
ctx.Variable(pctx, "javacFlags", strings.Join(javacFlags, " "))