File: robovm.txt

package info (click to toggle)
libjogl2-java 2.6.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 57,484 kB
  • sloc: java: 257,713; ansic: 86,782; xml: 7,914; objc: 4,880; sh: 3,033; cpp: 139; makefile: 50; awk: 46; perl: 27
file content (58 lines) | stat: -rw-r--r-- 2,272 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#get jogamp and robovm
wget https://libgdx.badlogicgames.com/robovm/robovm-1.6.1-SNAPSHOT.tar.gz
wget http://jogamp.org/deployment/jogamp-current/fat/jogamp-fat.jar

#unpack
tar zxvf robovm-1.6.1-SNAPSHOT.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

#run
cd com.jogamp.newt.opengl.GLWindow 
#robovm currently fail to find natives inside jars, unpack them
unzip -o lib/jogamp-fat.jar natives/*/*
time ./com.jogamp.newt.opengl.GLWindow



# Runtime options
# All robovm runtimeoptions starts with
# -rvm:
#
# To set jogamp specific java properties use
# -rvm:Djogamp.debug
# -rvm:Djogl.debug
#
# 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.6.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/jogamp-current/archive/jogl-demos.7z
7z x jogl-demos.7z
./robovm-1.6.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