From cdef0114f029698d129762a5da9edbf77de174c7 Mon Sep 17 00:00:00 2001 From: Xerxes RĂ„nby Date: Tue, 8 Sep 2015 09:50:38 +0200 Subject: doc/misc/robovm.txt: Explore low footprint deployment 6.3Mb --- doc/misc/robovm.txt | 41 ++++++++++++++++++++++++++++++++++++----- 1 file 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 -- cgit v1.2.3