aboutsummaryrefslogtreecommitdiffstats
path: root/java/proguard.conf
diff options
context:
space:
mode:
authorPo Lu2024-04-11 10:15:25 +0800
committerPo Lu2024-04-11 10:15:25 +0800
commitb9acfd7c2b9d1fa5c49e7bd9f78a040f7485b29b (patch)
treefccf2c69faf9d9374623d5b582e6f2b409d4740c /java/proguard.conf
parent7720c614afcf2b657c1edd1901cdc688e372a53c (diff)
downloademacs-b9acfd7c2b9d1fa5c49e7bd9f78a040f7485b29b.tar.gz
emacs-b9acfd7c2b9d1fa5c49e7bd9f78a040f7485b29b.zip
Optimize R8 configuration
* java/org/gnu/emacs/EmacsWindowManager.java (WindowConsumer): Mark as package-local. * java/proguard.conf: List only symbols that must be preserved, enabling R8 to optimize the remainder.
Diffstat (limited to 'java/proguard.conf')
-rw-r--r--java/proguard.conf39
1 files changed, 34 insertions, 5 deletions
diff --git a/java/proguard.conf b/java/proguard.conf
index 2fc974020ff..e6b08f76fe4 100644
--- a/java/proguard.conf
+++ b/java/proguard.conf
@@ -1,4 +1,4 @@
1# Trivial Proguard configuration file 1# Proguard configuration files for Emacs
2# 2#
3# Copyright (C) 2024 Free Software Foundation, Inc. 3# Copyright (C) 2024 Free Software Foundation, Inc.
4# 4#
@@ -17,8 +17,37 @@
17# You should have received a copy of the GNU General Public License 17# You should have received a copy of the GNU General Public License
18# along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. 18# along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
19# 19#
20# The effect of these two lines is to prevent the removal of symbol 20# The effect of the following lines is to inhibit the removal of variable or
21# names, which Emacs requires to link to functions defined in Java. 21# method symbol names from symbols referenced from C.
22 22
23-keep,allowoptimization interface org.gnu.emacs.* 23-keep,allowoptimization class org.gnu.emacs.EmacsClipboard { <methods>; }
24-keep,allowoptimization class org.gnu.emacs.* { <fields>; <methods>; } 24-keep,allowoptimization class org.gnu.emacs.EmacsContextMenu { <methods>; }
25-keep,allowoptimization class org.gnu.emacs.EmacsCursor { <methods>; }
26-keep,allowoptimization class org.gnu.emacs.EmacsDesktopNotification { <methods>; }
27-keep,allowoptimization class org.gnu.emacs.EmacsDialog { <methods>; }
28-keep,allowoptimization class org.gnu.emacs.EmacsDirectoryEntry { <fields>; }
29-keep,allowoptimization class org.gnu.emacs.EmacsFontDriver { <methods>; }
30-keep,allowoptimization class org.gnu.emacs.EmacsFontDriver$* { <fields>; }
31-keep,allowoptimization class org.gnu.emacs.EmacsGC { <methods>; <fields>; }
32-keep,allowoptimization class org.gnu.emacs.EmacsHandleObject { <methods>; }
33-keep,allowoptimization class org.gnu.emacs.EmacsPixmap { <methods>; }
34-keep,allowoptimization class org.gnu.emacs.EmacsService { <methods>; }
35-keep,allowoptimization class org.gnu.emacs.EmacsWindow { <methods>; }
36-keep,allowoptimization class org.gnu.emacs.EmacsNative { <methods>; }
37-keep,allowoptimization class org.gnu.emacs.EmacsNoninteractive { <methods>; }
38-keep,allowoptimization interface org.gnu.emacs.EmacsDrawable { <methods>; }
39
40# And these lines inhibit the deletion of symbols that are referenced by
41# the operating system while enabling the compiler to minify or delete
42# symbols only referenced internally.
43
44-keep,allowoptimization,allowaccessmodification public class * extends android.app.Activity
45-keep,allowoptimization,allowaccessmodification public class * extends android.app.Application
46-keep,allowoptimization,allowaccessmodification public class * extends android.app.Service
47-keep,allowoptimization,allowaccessmodification public class * extends android.content.BroadcastReceiver
48-keep,allowoptimization,allowaccessmodification public class * extends android.content.ContentProvider
49
50# Local Variables:
51# truncate-lines: t
52# indent-tabs-mode: nil
53# End: