aboutsummaryrefslogtreecommitdiffstats
path: root/doc/misc
diff options
context:
space:
mode:
authorXerxes Rånby <[email protected]>2015-09-08 09:50:38 +0200
committerXerxes Rånby <[email protected]>2015-09-08 09:50:38 +0200
commitcdef0114f029698d129762a5da9edbf77de174c7 (patch)
tree33e94f001ca407f8162cf7a8af070e8f7b3e2e61 /doc/misc
parent20dc629cb92f48412090ab020c1d5a282ceaa268 (diff)
doc/misc/robovm.txt: Explore low footprint deployment 6.3Mb
Diffstat (limited to 'doc/misc')
-rw-r--r--doc/misc/robovm.txt41
1 files changed, 36 insertions, 5 deletions
diff --git a/doc/misc/robovm.txt b/doc/misc/robovm.txt
index 7d457c0cb..4c522807f 100644
--- a/doc/misc/robovm.txt
+++ b/doc/misc/robovm.txt
@@ -1,19 +1,21 @@
#get jogamp and robovm
-wget http://download.robovm.org/nightlies/robovm-1.6.1-SNAPSHOT-20150820_014200-647.tar.gz
-wget http://jogamp.org/deployment/archive/master/gluegen_885-joal_611-jogl_1424-jocl_1073/fat/jogamp-fat.jar
+wget http://download.robovm.org/nightlies/robovm-1.7.1-SNAPSHOT-20150903_014201-674.tar.gz
+wget http://jogamp.org/deployment/archive/master/gluegen_886-joal_612-jogl_1433-jocl_1079-signed/fat/jogamp-fat.jar
#unpack
-tar zxvf robovm-1.6.1-SNAPSHOT-20150820_014200-647.tar.gz
+tar zxvf robovm-1.7.1-SNAPSHOT-20150903_014201-674.tar.gz
#compile using robovm
-./robovm-1.6.1-SNAPSHOT/bin/robovm -verbose -dynamic-jni -forcelinkclasses jogamp.**:com.jogamp.** -cp jogamp-fat.jar com.jogamp.newt.opengl.GLWindow
+./robovm-1.7.1-SNAPSHOT/bin/robovm -verbose -dynamic-jni -forcelinkclasses jogamp.**:com.jogamp.** -cp jogamp-fat.jar com.jogamp.newt.opengl.GLWindow
#run
cd com.jogamp.newt.opengl.GLWindow
#robovm currently fail to find natives inside jars, unpack them
-unzip lib/jogamp-fat.jar natives/*/*
+unzip -o lib/jogamp-fat.jar natives/*/*
time ./com.jogamp.newt.opengl.GLWindow
+
+
# Runtime options
# All robovm runtimeoptions starts with
# -rvm:
@@ -25,3 +27,32 @@ time ./com.jogamp.newt.opengl.GLWindow
# for more rvm flag examples see
# https://github.com/robovm/robovm/wiki/Hacking-on-RoboVM#controlling-a-robovm-executable
time ./com.jogamp.newt.opengl.GLWindow -rvm:Djogl.debug
+
+
+# Make the generated robovm binary smaller
+# we can use the robovm -treeshaker aggressive to remove classes from the binary
+# and we can more carefully select which nativewindow backends to include using forcelinkclasses.
+# finally we can reduce the size using strip and upx
+./robovm-1.7.1-SNAPSHOT/bin/robovm -treeshaker aggressive -verbose -dynamic-jni -forcelinkclasses jogamp.nativewindow.x11.X11GraphicsConfigurationFactory:jogamp.** -cp jogamp-fat.jar com.jogamp.newt.opengl.GLWindow
+cd com.jogamp.newt.opengl.GLWindow
+strip com.jogamp.newt.opengl.GLWindow
+upx com.jogamp.newt.opengl.GLWindow
+# the final binary is then below 5Mb!
+# du -s -h com.jogamp.newt.opengl.GLWindow
+# 4,7M com.jogamp.newt.opengl.GLWindow
+
+
+
+# Real world example using jogl-demos compressed to small size: 6,3Mb
+wget http://jogamp.org/deployment/archive/master/gluegen_886-joal_612-jogl_1433-jocl_1079-signed/archive/jogl-demos.7z
+7z x jogl-demos.7z
+./robovm-1.7.1-SNAPSHOT/bin/robovm -treeshaker aggressive -verbose -dynamic-jni -forcelinkclasses jogamp.nativewindow.x11.X11GraphicsConfigurationFactory:jogamp.** -cp jogamp-fat.jar:jogl-demos/jar/jogl-demos.jar demos.es2.RawGL2ES2demo
+cd demos.es2.RawGL2ES2demo
+unzip -o lib/jogamp-fat.jar natives/*/*
+zip -d lib/jogamp-fat.jar natives/*/*
+strip demos.es2.RawGL2ES2demo
+upx demos.es2.RawGL2ES2demo
+chmod +x natives/*/*
+strip natives/*/*
+upx natives/*/*
+./demos.es2.RawGL2ES2demo