< prev index next >

buildSrc/armv6hf.gradle

Print this page
rev 10424 : 8090969: Remove lens implementation in Glass
Reviewed-by:


  64 def compiler = file("$compilerHome/bin/${compilerPrefix}gcc").getAbsolutePath()
  65 def linker = file("$compilerHome/bin/${compilerPrefix}g++").getAbsolutePath()
  66 
  67 // Declare whether this particular target file applies to the current system
  68 ARMV6HF.canBuild = (IS_LINUX || IS_MAC) && compilerHome.exists() && sdk.exists()
  69 if (!ARMV6HF.canBuild) {
  70     if (!compilerHome.exists()) println "ERROR: Missing compiler $compilerHome"
  71     if (!sdk.exists()) println "ERROR: Missing sdk $sdk"
  72     fail("armv6hf missing required tools")
  73 }
  74 
  75 // Lambda for naming the generated libs
  76 ARMV6HF.library = { name -> return "lib${name}.so" as String }
  77 
  78 ARMV6HF.compileSwing = false;
  79 ARMV6HF.compileSWT = false;
  80 ARMV6HF.compileFXPackager = false;
  81 ARMV6HF.compileWebnodeNative = false;
  82 ARMV6HF.compileMediaNative = false;
  83 
  84 ARMV6HF.includeLens = false
  85 ARMV6HF.includeMonocle = true
  86 ARMV6HF.includeNull3d = true
  87 ARMV6HF.includeEGL = true
  88 ARMV6HF.includeSwing = false
  89 ARMV6HF.includeSWT = false
  90 ARMV6HF.includeGTK = true
  91 
  92 ARMV6HF.javafxPlatformDefault="monocle"
  93 
  94 // Libraries end up in the sdk/lib/arm directory for arm builds
  95 ARMV6HF.arch = "arm"
  96 ARMV6HF.libDest = "lib"
  97 
  98 def commonFlags = [
  99         "-fno-strict-aliasing", "-fPIC", "-fno-omit-frame-pointer", // optimization flags
 100         "-Wextra", "-Wall", "-Wno-unused", "-Wno-parentheses", "-Werror=implicit-function-declaration"] // warning flags
 101 // Specify the compilation parameters and link parameters
 102 def ccFlags = [
 103         commonFlags, "-I$JDK_HOME/include", "-I$JDK_HOME/include/$jniPlatform", "-c",
 104         IS_DEBUG_NATIVE ? ["-ggdb", "-DVERBOSE"] : ["-O2", "-DNDEBUG"]].flatten()


 111         "-marm", "-mfloat-abi=hard", "-mfpu=vfp",
 112         "-I$sdk/usr/include",
 113         "-I$sdk/opt/vc/include",
 114         "-I$sdk/opt/vc/include/interface/vcos/pthreads",
 115         "-I$sdk/opt/vc/include/interface/vmcs_host/linux",
 116         "-DOMAP3", "-DUSE_DISPMAN"].flatten();
 117 
 118 //See if we should build for imx6
 119 def imxHeader=file("$sdk/usr/include/linux/mxcfb.h")
 120 if (imxHeader.exists()) {
 121         extraCFlags = [extraCFlags,"-DIMX6_PLATFORM"].flatten();
 122 }
 123 
 124 def extraLFlags = [
 125         linkFlags,
 126         "-L$sdk/lib/arm-linux-gnueabihf",
 127         "-L$sdk/usr/lib",
 128         "-L$sdk/usr/lib/arm-linux-gnueabihf",
 129         "-L$sdk/opt/vc/lib"].flatten()
 130 
 131 def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten()
 132 def monocleCFlags = [
 133         extraCFlags,
 134         "-Werror",
 135         "-I", file("${project("graphics").projectDir}/src/main/native-glass/monocle/")].flatten();
 136 def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten()
 137 
 138 def fontCFlags = [extraCFlags].flatten()
 139 def fontLFlags = [extraLFlags, "-ldl"].flatten()
 140 
 141 def iioCFlags = [extraCFlags,
 142          "-Wno-main" // suppress warnings about using main as a variable, 3rd party code
 143          ].flatten()
 144 def iioLFlags = [extraLFlags].flatten()
 145 
 146 def es2EglfbCFlags = [extraCFlags, "-DIS_EGLFB", "-DLINUX"].flatten()
 147 def es2EglfbLFlags = [extraLFlags].flatten()
 148 def es2MonocleCFlags = [extraCFlags, "-DIS_EGLFB", "-DLINUX"].flatten()
 149 def es2MonocleLFlags = [extraLFlags].flatten()
 150 
 151 def es2X11CFlags = [extraCFlags, "-DUSE_XSHM", "-DDEBUG", "-DIS_EGLX11", "-DLINUX"].flatten()


 173 gtkLFlags.addAll(gtkLFlags_pkgconfig.split(" "))
 174 
 175 def monoclePlatformAdditions = """
 176 monocle.glass.platform=Monocle
 177 monocle.prism.order=es2,sw
 178 monocle.prism.eglfb=true
 179 monocle.prism.lcdtext=false
 180 monocle.prism.maxvram=128m
 181 monocle.prism.targetvram=112m
 182 monocle.use.egl=true
 183 monocle.use.gles2=true
 184 monocle.embedded=monocle
 185 monocle.com.sun.javafx.isEmbedded=true
 186 monocle.doNativeComposite=true
 187 monocle.com.sun.javafx.scene.control.skin.FXVK.cache=true
 188 monocle.prism.glDepthSize=0
 189 monocle.com.sun.javafx.gestures.zoom=true
 190 monocle.com.sun.javafx.gestures.rotate=true
 191 monocle.com.sun.javafx.gestures.scroll=true"""
 192 
 193 def lensPlatformAdditions = """
 194 directfb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 195 directfb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 196 directfb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 197 directfb.glass.platform=Lens
 198 directfb.glass.lens=dfb
 199 directfb.prism.order=sw
 200 directfb.com.sun.javafx.isEmbedded=true
 201 directfb.com.sun.javafx.scene.control.skin.FXVK.cache=true
 202 directfb.com.sun.javafx.gestures.zoom=true
 203 directfb.com.sun.javafx.gestures.rotate=true
 204 directfb.com.sun.javafx.gestures.scroll=true
 205 eglfb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 206 eglfb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 207 eglfb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 208 eglfb.glass.platform=Lens
 209 eglfb.glass.lens=eglfb
 210 eglfb.prism.order=es2
 211 eglfb.prism.eglfb=true
 212 eglfb.prism.lcdtext=false
 213 eglfb.prism.maxvram=128m
 214 eglfb.prism.targetvram=112m
 215 eglfb.use.egl=true
 216 eglfb.use.gles2=true
 217 eglfb.embedded=eglfb
 218 eglfb.com.sun.javafx.isEmbedded=true
 219 eglfb.doNativeComposite=true
 220 eglfb.com.sun.javafx.scene.control.skin.FXVK.cache=true
 221 eglfb.prism.glDepthSize=0
 222 eglfb.com.sun.javafx.gestures.zoom=true
 223 eglfb.com.sun.javafx.gestures.rotate=true
 224 eglfb.com.sun.javafx.gestures.scroll=true
 225 fb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 226 fb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 227 fb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 228 fb.glass.platform=Lens
 229 fb.glass.lens=fb
 230 fb.prism.order=sw
 231 fb.com.sun.javafx.isEmbedded=true
 232 fb.glass.restrictWindowToScreen=true
 233 fb.com.sun.javafx.scene.control.skin.FXVK.cache=true
 234 fb.com.sun.javafx.gestures.zoom=true
 235 fb.com.sun.javafx.gestures.rotate=true
 236 fb.com.sun.javafx.gestures.scroll=true
 237 eglx11.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 238 eglx11.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 239 eglx11.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 240 eglx11.glass.platform=Lens
 241 eglx11.glass.lens=eglx11
 242 eglx11.prism.order=es2
 243 eglx11.prism.eglx11=true
 244 eglx11.prism.lcdtext=false
 245 eglx11.prism.maxvram=128m
 246 eglx11.prism.targetvram=112m
 247 eglx11.use.egl=true
 248 eglx11.use.gles2=true
 249 eglx11.embedded=eglx11
 250 eglx11.com.sun.javafx.isEmbedded=true
 251 eglx11.com.sun.javafx.scene.control.skin.FXVK.cache=true
 252 eglx11.prism.glDepthSize=0
 253 eglx11.com.sun.javafx.gestures.zoom=true
 254 eglx11.com.sun.javafx.gestures.rotate=true
 255 eglx11.com.sun.javafx.gestures.scroll=true"""
 256 
 257 def gtkPlatformAdditions = """
 258 gtk.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 259 gtk.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 260 gtk.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 261 gtk.glass.platform=gtk
 262 gtk.prism.order=sw
 263 gtk.com.sun.javafx.isEmbedded=true
 264 gtk.com.sun.javafx.scene.control.skin.FXVK.cache=true
 265 gtk.com.sun.javafx.gestures.zoom=true
 266 gtk.com.sun.javafx.gestures.rotate=true
 267 gtk.com.sun.javafx.gestures.scroll=true"""
 268 
 269 def pangoCCFlags = [extraCFlags, "-D_ENABLE_PANGO"];
 270 def pangoLinkFlags = [extraLFlags];
 271 
 272 def pangoCFlags_pkgconfig = "-pthread -I${sdk}/usr/include/pango-1.0 -I${sdk}/usr/include/freetype2 -I${sdk}/usr/include -I${sdk}/usr/include/glib-2.0 -I${sdk}/usr/lib/arm-linux-gnueabihf/glib-2.0/include"
 273 
 274 def pangoLFlags_pkgconfig = "-L${sdk}/usr/lib/arm-linux-gnueabihf -lpangoft2-1.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0"
 275 
 276 pangoCCFlags.addAll(pangoCFlags_pkgconfig.split(" "))
 277 pangoLinkFlags.addAll(pangoLFlags_pkgconfig.split(" "))
 278 
 279 def freetypeCCFlags = [ext.IS_COMPILE_PANGO ? "-D_ENABLE_PANGO" :
 280                        ext.IS_COMPILE_HARFBUZZ ? "-D_ENABLE_HARFBUZZ" : ""]
 281 def freetypeLinkFlags = []
 282 
 283 def freetypeCFlags_pkgconfig = "-I${sdk}/usr/include/freetype2 -I${sdk}/usr/include"
 284 def freetypeLFlags_pkgconfig = "-L${sdk}/usr/lib/arm-linux-gnueabihf -lfreetype"
 285 
 286 freetypeCCFlags.addAll(freetypeCFlags_pkgconfig.split(" "))
 287 freetypeLinkFlags.addAll(freetypeLFlags_pkgconfig.split(" "))
 288 
 289 ARMV6HF.javafxPlatformProperties = "javafx.platform=${ARMV6HF.javafxPlatformDefault}"
 290 
 291 ARMV6HF.glass = [:]
 292 ARMV6HF.glass.javahInclude = [
 293     "com/sun/glass/events/**",
 294     "com/sun/glass/ui/*"]
 295 ARMV6HF.glass.variants = [ ]
 296 if (ARMV6HF.includeLens) {
 297     ARMV6HF.glass.variants.addAll("eglfb", "directfb", "fb", "lensport" );
 298     ARMV6HF.glass.javahInclude.addAll("com/sun/glass/ui/lens/*");
 299     ARMV6HF.javafxPlatformProperties = ARMV6HF.javafxPlatformProperties + lensPlatformAdditions
 300 }
 301 if (ARMV6HF.includeMonocle) {
 302     ARMV6HF.glass.variants.addAll("monocle", "monocle_x11");
 303     ARMV6HF.glass.javahInclude.addAll(
 304         "com/sun/glass/ui/monocle/*",
 305         "com/sun/glass/ui/monocle/dispman/*",
 306         "com/sun/glass/ui/monocle/mx6/*",
 307         "com/sun/glass/ui/monocle/linux/*",
 308         "com/sun/glass/ui/monocle/util/*",
 309         "com/sun/glass/ui/monocle/x11/*");
 310     ARMV6HF.javafxPlatformProperties = ARMV6HF.javafxPlatformProperties + monoclePlatformAdditions
 311 }
 312 if (ARMV6HF.includeGTK) {
 313     ARMV6HF.glass.variants.addAll("gtk");
 314     ARMV6HF.glass.javahInclude.addAll("com/sun/glass/ui/gtk/*");
 315     ARMV6HF.javafxPlatformProperties = ARMV6HF.javafxPlatformProperties + gtkPlatformAdditions
 316 }
 317 
 318 ARMV6HF.glass.lib = "glass"
 319 
 320 ARMV6HF.glass.lensport = [:]
 321 ARMV6HF.glass.lensport.nativeSource = [
 322     file("${project("graphics").projectDir}/src/main/native-glass/lens/lensport") ]
 323 ARMV6HF.glass.lensport.compiler = compiler
 324 ARMV6HF.glass.lensport.ccFlags = ["-ffast-math", extraCFlags, "-DLINUX", "-DISEGLFB",
 325     "-DLENSPORT", "-I", file("${project("graphics").projectDir}/src/main/native-glass/lens/") ].flatten()
 326 ARMV6HF.glass.lensport.linker = linker
 327 ARMV6HF.glass.lensport.linkFlags = [lensLFlags].flatten()
 328 ARMV6HF.glass.lensport.lib = "lens_porting"
 329 
 330 ARMV6HF.glass.monocle = [:]
 331 ARMV6HF.glass.monocle.nativeSource = [
 332         file("${project("graphics").projectDir}/src/main/native-glass/monocle"),
 333         file("${project("graphics").projectDir}/src/main/native-glass/monocle/dispman"),
 334         file("${project("graphics").projectDir}/src/main/native-glass/monocle/mx6"),
 335         file("${project("graphics").projectDir}/src/main/native-glass/monocle/linux"),
 336         file("${project("graphics").projectDir}/src/main/native-glass/monocle/util") ]
 337 ARMV6HF.glass.monocle.compiler = compiler
 338 ARMV6HF.glass.monocle.ccFlags = monocleCFlags
 339 ARMV6HF.glass.monocle.linker = linker
 340 ARMV6HF.glass.monocle.linkFlags = monocleLFlags
 341 ARMV6HF.glass.monocle.lib = "glass_monocle"
 342 
 343 ARMV6HF.glass.monocle_x11 = [:]
 344 ARMV6HF.glass.monocle_x11.nativeSource = [
 345         file("${project("graphics").projectDir}/src/main/native-glass/monocle/util"),
 346         file("${project("graphics").projectDir}/src/main/native-glass/monocle/x11") ]
 347 ARMV6HF.glass.monocle_x11.compiler = compiler
 348 ARMV6HF.glass.monocle_x11.ccFlags = monocleCFlags
 349 ARMV6HF.glass.monocle_x11.linker = linker
 350 ARMV6HF.glass.monocle_x11.linkFlags = [ monocleLFlags, "-lX11" ].flatten()
 351 ARMV6HF.glass.monocle_x11.lib = "glass_monocle_x11"
 352 
 353 ARMV6HF.glass.eglfb = [:]
 354 // TODO when building headless, use lens/cursor/nullcursor/
 355 // otherwise we use lens/cursor/fbCursor/ and lens/input/udev
 356 
 357 // TODO when USE_RFB is specified use lens/rfb
 358 
 359 // TODO use /eglfb/x11ContainerScreen when using eglfb and EGL_X11_FB_CONTAINER
 360 // TODO use /headless/headlessScreen when using headless
 361 ARMV6HF.glass.eglfb.nativeSource = [
 362     file("${project("graphics").projectDir}/src/main/native-glass/lens"),
 363     file("${project("graphics").projectDir}/src/main/native-glass/lens/wm"),
 364     file("${project("graphics").projectDir}/src/main/native-glass/lens/cursor/fbCursor"),
 365     file("${project("graphics").projectDir}/src/main/native-glass/lens/input/udev"),
 366     file("${project("graphics").projectDir}/src/main/native-glass/lens/wm/screen/fbdevScreen.c") ]
 367 ARMV6HF.glass.eglfb.compiler = compiler
 368 ARMV6HF.glass.eglfb.ccFlags = ["-ffast-math", extraCFlags, "-DLINUX", "-DISEGLFB"].flatten()
 369 ARMV6HF.glass.eglfb.linker = linker
 370 ARMV6HF.glass.eglfb.linkFlags = [lensLFlags].flatten()
 371 ARMV6HF.glass.eglfb.lib = "glass_lens_eglfb"
 372 
 373 ARMV6HF.glass.directfb = [:]
 374 ARMV6HF.glass.directfb.nativeSource = [
 375     file("${project("graphics").projectDir}/src/main/native-glass/lens"),
 376     file("${project("graphics").projectDir}/src/main/native-glass/lens/wm"),
 377     file("${project("graphics").projectDir}/src/main/native-glass/lens/cursor/fbCursor"),
 378     file("${project("graphics").projectDir}/src/main/native-glass/lens/input/udev"),
 379     file("${project("graphics").projectDir}/src/main/native-glass/lens/wm/screen/dfbScreen.c") ]
 380 ARMV6HF.glass.directfb.compiler = compiler
 381 ARMV6HF.glass.directfb.ccFlags = ["-ffast-math", extraCFlags, "-I$sdk/usr/include/directfb", "-DLINUX"].flatten()
 382 ARMV6HF.glass.directfb.linker = linker
 383 ARMV6HF.glass.directfb.linkFlags = [lensLFlags].flatten()
 384 ARMV6HF.glass.directfb.lib = "glass_lens_dfb"
 385 
 386 ARMV6HF.glass.fb = [:]
 387 ARMV6HF.glass.fb.nativeSource = [
 388     file("${project("graphics").projectDir}/src/main/native-glass/lens"),
 389     file("${project("graphics").projectDir}/src/main/native-glass/lens/wm"),
 390     file("${project("graphics").projectDir}/src/main/native-glass/lens/cursor/fbCursor"),
 391     file("${project("graphics").projectDir}/src/main/native-glass/lens/input/udev"),
 392     file("${project("graphics").projectDir}/src/main/native-glass/lens/wm/screen/fbdevScreen.c") ]
 393 ARMV6HF.glass.fb.compiler = compiler
 394 ARMV6HF.glass.fb.ccFlags = ["-ffast-math", extraCFlags, "-DLINUX"].flatten()
 395 ARMV6HF.glass.fb.linker = linker
 396 ARMV6HF.glass.fb.linkFlags = [lensLFlags].flatten()
 397 ARMV6HF.glass.fb.lib = "glass_lens_fb"
 398 
 399 ARMV6HF.glass.eglx11 = [:]
 400 ARMV6HF.glass.eglx11.nativeSource = [
 401     file("${project("graphics").projectDir}/src/main/native-glass/lens"),
 402     file("${project("graphics").projectDir}/src/main/native-glass/lens/wm"),
 403     file("${project("graphics").projectDir}/src/main/native-glass/lens/cursor/fbCursor"),
 404     file("${project("graphics").projectDir}/src/main/native-glass/lens/input/udev"),
 405     file("${project("graphics").projectDir}/src/main/native-glass/lens/wm/screen/x11ContainerScreen.c")]
 406     //file("${project("graphics").projectDir}/src/main/native-glass/lens/wm/screen")]
 407 ARMV6HF.glass.eglx11.compiler = compiler
 408 ARMV6HF.glass.eglx11.ccFlags = ["-ffast-math", extraCFlags, "-DLINUX"].flatten()
 409 ARMV6HF.glass.eglx11.linker = linker
 410 ARMV6HF.glass.eglx11.linkFlags = [lensLFlags].flatten()
 411 ARMV6HF.glass.eglx11.lib = "glass_lens_eglx11"
 412 
 413 ARMV6HF.glass.gtk = [:]
 414 ARMV6HF.glass.gtk.nativeSource = file("${project("graphics").projectDir}/src/main/native-glass/gtk")
 415 ARMV6HF.glass.gtk.compiler = compiler
 416 ARMV6HF.glass.gtk.ccFlags = ["-ffast-math", gtkCFlags, "-DLINUX"].flatten()
 417 ARMV6HF.glass.gtk.linker = linker
 418 ARMV6HF.glass.gtk.linkFlags = [gtkLFlags, "-lstdc++"].flatten()
 419 ARMV6HF.glass.gtk.lib = "glass"
 420 
 421 ARMV6HF.decora = [:]
 422 ARMV6HF.decora.compiler = compiler
 423 ARMV6HF.decora.ccFlags = extraCFlags
 424 ARMV6HF.decora.linker = linker
 425 ARMV6HF.decora.linkFlags = extraLFlags
 426 ARMV6HF.decora.lib = "decora_sse"
 427 
 428 ARMV6HF.prism = [:]
 429 ARMV6HF.prism.javahInclude = ["com/sun/prism/impl/**/*", "com/sun/prism/PresentableState*"]
 430 ARMV6HF.prism.nativeSource = file("${project("graphics").projectDir}/src/main/native-prism")
 431 ARMV6HF.prism.compiler = compiler
 432 ARMV6HF.prism.ccFlags = [extraCFlags].flatten()
 433 ARMV6HF.prism.linker = linker
 434 ARMV6HF.prism.linkFlags = [extraLFlags].flatten()
 435 ARMV6HF.prism.lib = "prism_common"
 436 


 438 ARMV6HF.prismSW.javahInclude = ["com/sun/pisces/**/*"]
 439 ARMV6HF.prismSW.nativeSource = file("${project("graphics").projectDir}/src/main/native-prism-sw")
 440 ARMV6HF.prismSW.compiler = compiler
 441 ARMV6HF.prismSW.ccFlags = [extraCFlags].flatten()
 442 ARMV6HF.prismSW.linker = linker
 443 ARMV6HF.prismSW.linkFlags = [extraLFlags].flatten()
 444 ARMV6HF.prismSW.lib = "prism_sw"
 445 
 446 ARMV6HF.iio = [:]
 447 ARMV6HF.iio.javahInclude = ["com/sun/javafx/iio/**/*"]
 448 ARMV6HF.iio.nativeSource = [
 449     file("${project("graphics").projectDir}/src/main/native-iio"),
 450     file("${project("graphics").projectDir}/src/main/native-iio/libjpeg7")]
 451 ARMV6HF.iio.compiler = compiler
 452 ARMV6HF.iio.ccFlags = iioCFlags
 453 ARMV6HF.iio.linker = linker
 454 ARMV6HF.iio.linkFlags = iioLFlags
 455 ARMV6HF.iio.lib = "javafx_iio"
 456 
 457 ARMV6HF.prismES2 = [:]
 458 ARMV6HF.prismES2.variants = ["eglfb", "monocle"]
 459 ARMV6HF.prismES2.javahInclude = ["com/sun/prism/es2/**/*"]
 460 
 461 ARMV6HF.prismES2.eglfb = [:]
 462 ARMV6HF.prismES2.eglfb.nativeSource = [
 463     file("${project("graphics").projectDir}/src/main/native-prism-es2"),
 464     file("${project("graphics").projectDir}/src/main/native-prism-es2/GL"),
 465     file("${project("graphics").projectDir}/src/main/native-prism-es2/eglWrapper"),
 466     file("${project("graphics").projectDir}/src/main/native-prism-es2/eglfb")
 467 ]
 468 ARMV6HF.prismES2.eglfb.compiler = compiler
 469 ARMV6HF.prismES2.eglfb.ccFlags = [ es2EglfbCFlags, "-I", ARMV6HF.glass.lensport.nativeSource ].flatten()
 470 ARMV6HF.prismES2.eglfb.linker = linker
 471 ARMV6HF.prismES2.eglfb.linkFlags = [ es2EglfbLFlags, "-dl" ] .flatten()
 472 ARMV6HF.prismES2.eglfb.lib = "prism_es2_eglfb"
 473 
 474 ARMV6HF.prismES2.monocle= [:]
 475 ARMV6HF.prismES2.monocle.nativeSource = [
 476     file("${project("graphics").projectDir}/src/main/native-prism-es2"),
 477     file("${project("graphics").projectDir}/src/main/native-prism-es2/GL"),
 478     file("${project("graphics").projectDir}/src/main/native-prism-es2/monocle")
 479 ]
 480 ARMV6HF.prismES2.monocle.compiler = compiler
 481 ARMV6HF.prismES2.monocle.ccFlags = [ es2EglfbCFlags, "-I", ARMV6HF.glass.lensport.nativeSource ].flatten()
 482 ARMV6HF.prismES2.monocle.linker = linker
 483 ARMV6HF.prismES2.monocle.linkFlags =[  es2EglfbLFlags, "-ldl" ].flatten()
 484 ARMV6HF.prismES2.monocle.lib = "prism_es2_monocle"
 485 
 486 ARMV6HF.prismES2.eglx11 = [:]
 487 ARMV6HF.prismES2.eglx11.nativeSource = [
 488     file("${project("graphics").projectDir}/src/main/native-prism-es2"),
 489     file("${project("graphics").projectDir}/src/main/native-prism-es2/GL"),
 490     file("${project("graphics").projectDir}/src/main/native-prism-es2/eglx11")
 491 ]
 492 ARMV6HF.prismES2.eglx11.compiler = compiler
 493 ARMV6HF.prismES2.eglx11.ccFlags = es2X11CFlags
 494 ARMV6HF.prismES2.eglx11.linker = linker
 495 ARMV6HF.prismES2.eglx11.linkFlags = es2X11LFlags
 496 ARMV6HF.prismES2.eglx11.lib = "prism_es2_eglx11"
 497 
 498 def closedDir = file("$projectDir/../rt-closed")
 499 ARMV6HF.font = [:]
 500 ARMV6HF.font.javahInclude = [
 501     "com/sun/javafx/font/**/*",
 502     "com/sun/javafx/text/**/*"]
 503 ARMV6HF.font.nativeSource = [file("${project("graphics").projectDir}/src/main/native-font")]
 504 ARMV6HF.font.compiler = compiler
 505 ARMV6HF.font.ccFlags = fontCFlags
 506 ARMV6HF.font.linker = linker
 507 ARMV6HF.font.linkFlags = fontLFlags
 508 ARMV6HF.font.lib = "javafx_font"
 509 
 510 ARMV6HF.fontT2K = [:]
 511 ARMV6HF.fontT2K.javahInclude = ["com/sun/javafx/font/t2k/**/*"]
 512 ARMV6HF.fontT2K.nativeSource = [
 513         file("$closedDir/javafx-font-t2k-native/src"),
 514         file("$closedDir/javafx-font-t2k-native/src/layout")]
 515 ARMV6HF.fontT2K.compiler = compiler
 516 ARMV6HF.fontT2K.ccFlags = [fontCFlags, "-DLE_STANDALONE"].flatten()
 517 ARMV6HF.fontT2K.linker = linker


 545 ARMV6HF.webkit.strip    = file("$compilerHome/bin/${compilerPrefix}strip").getAbsolutePath()
 546 ARMV6HF.webkit.ccFlags  = extraCFlags.join(' ')
 547 ARMV6HF.webkit.linkFlags = extraLFlags.join(' ')
 548 
 549 ARMV6HF.disableMedia = true
 550 ARMV6HF.media = [:]
 551 ARMV6HF.media.compiler = compiler
 552 ARMV6HF.media.linker = linker
 553 ARMV6HF.media.extra_cflags = mediaCFlags.join(' ')
 554 ARMV6HF.media.extra_ldflags = mediaLFlags.join(' ')
 555 
 556 ARMV6HF.deploy = [:]
 557 ARMV6HF.deploy.publicLibraryFilter = [
 558   "fxavcodecplugin-52.so",
 559   "fxavcodecplugin-53.so",
 560   "fxplugins.so",
 561   "libjfxwebkit.so",
 562   "libgstplugins-lite.so",
 563   "libgstreamer-lite.so",
 564   "libprism_es2_eglx11.so",
 565   "libglass_lens_fb.so"
 566 ]
 567 ARMV6HF.deploy.compressBigJar=true


  64 def compiler = file("$compilerHome/bin/${compilerPrefix}gcc").getAbsolutePath()
  65 def linker = file("$compilerHome/bin/${compilerPrefix}g++").getAbsolutePath()
  66 
  67 // Declare whether this particular target file applies to the current system
  68 ARMV6HF.canBuild = (IS_LINUX || IS_MAC) && compilerHome.exists() && sdk.exists()
  69 if (!ARMV6HF.canBuild) {
  70     if (!compilerHome.exists()) println "ERROR: Missing compiler $compilerHome"
  71     if (!sdk.exists()) println "ERROR: Missing sdk $sdk"
  72     fail("armv6hf missing required tools")
  73 }
  74 
  75 // Lambda for naming the generated libs
  76 ARMV6HF.library = { name -> return "lib${name}.so" as String }
  77 
  78 ARMV6HF.compileSwing = false;
  79 ARMV6HF.compileSWT = false;
  80 ARMV6HF.compileFXPackager = false;
  81 ARMV6HF.compileWebnodeNative = false;
  82 ARMV6HF.compileMediaNative = false;
  83 

  84 ARMV6HF.includeMonocle = true
  85 ARMV6HF.includeNull3d = true
  86 ARMV6HF.includeEGL = true
  87 ARMV6HF.includeSwing = false
  88 ARMV6HF.includeSWT = false
  89 ARMV6HF.includeGTK = true
  90 
  91 ARMV6HF.javafxPlatformDefault="monocle"
  92 
  93 // Libraries end up in the sdk/lib/arm directory for arm builds
  94 ARMV6HF.arch = "arm"
  95 ARMV6HF.libDest = "lib"
  96 
  97 def commonFlags = [
  98         "-fno-strict-aliasing", "-fPIC", "-fno-omit-frame-pointer", // optimization flags
  99         "-Wextra", "-Wall", "-Wno-unused", "-Wno-parentheses", "-Werror=implicit-function-declaration"] // warning flags
 100 // Specify the compilation parameters and link parameters
 101 def ccFlags = [
 102         commonFlags, "-I$JDK_HOME/include", "-I$JDK_HOME/include/$jniPlatform", "-c",
 103         IS_DEBUG_NATIVE ? ["-ggdb", "-DVERBOSE"] : ["-O2", "-DNDEBUG"]].flatten()


 110         "-marm", "-mfloat-abi=hard", "-mfpu=vfp",
 111         "-I$sdk/usr/include",
 112         "-I$sdk/opt/vc/include",
 113         "-I$sdk/opt/vc/include/interface/vcos/pthreads",
 114         "-I$sdk/opt/vc/include/interface/vmcs_host/linux",
 115         "-DOMAP3", "-DUSE_DISPMAN"].flatten();
 116 
 117 //See if we should build for imx6
 118 def imxHeader=file("$sdk/usr/include/linux/mxcfb.h")
 119 if (imxHeader.exists()) {
 120         extraCFlags = [extraCFlags,"-DIMX6_PLATFORM"].flatten();
 121 }
 122 
 123 def extraLFlags = [
 124         linkFlags,
 125         "-L$sdk/lib/arm-linux-gnueabihf",
 126         "-L$sdk/usr/lib",
 127         "-L$sdk/usr/lib/arm-linux-gnueabihf",
 128         "-L$sdk/opt/vc/lib"].flatten()
 129 

 130 def monocleCFlags = [
 131         extraCFlags,
 132         "-Werror",
 133         "-I", file("${project("graphics").projectDir}/src/main/native-glass/monocle/")].flatten();
 134 def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten()
 135 
 136 def fontCFlags = [extraCFlags].flatten()
 137 def fontLFlags = [extraLFlags, "-ldl"].flatten()
 138 
 139 def iioCFlags = [extraCFlags,
 140          "-Wno-main" // suppress warnings about using main as a variable, 3rd party code
 141          ].flatten()
 142 def iioLFlags = [extraLFlags].flatten()
 143 
 144 def es2EglfbCFlags = [extraCFlags, "-DIS_EGLFB", "-DLINUX"].flatten()
 145 def es2EglfbLFlags = [extraLFlags].flatten()
 146 def es2MonocleCFlags = [extraCFlags, "-DIS_EGLFB", "-DLINUX"].flatten()
 147 def es2MonocleLFlags = [extraLFlags].flatten()
 148 
 149 def es2X11CFlags = [extraCFlags, "-DUSE_XSHM", "-DDEBUG", "-DIS_EGLX11", "-DLINUX"].flatten()


 171 gtkLFlags.addAll(gtkLFlags_pkgconfig.split(" "))
 172 
 173 def monoclePlatformAdditions = """
 174 monocle.glass.platform=Monocle
 175 monocle.prism.order=es2,sw
 176 monocle.prism.eglfb=true
 177 monocle.prism.lcdtext=false
 178 monocle.prism.maxvram=128m
 179 monocle.prism.targetvram=112m
 180 monocle.use.egl=true
 181 monocle.use.gles2=true
 182 monocle.embedded=monocle
 183 monocle.com.sun.javafx.isEmbedded=true
 184 monocle.doNativeComposite=true
 185 monocle.com.sun.javafx.scene.control.skin.FXVK.cache=true
 186 monocle.prism.glDepthSize=0
 187 monocle.com.sun.javafx.gestures.zoom=true
 188 monocle.com.sun.javafx.gestures.rotate=true
 189 monocle.com.sun.javafx.gestures.scroll=true"""
 190 
































































 191 def gtkPlatformAdditions = """
 192 gtk.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 193 gtk.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 194 gtk.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 195 gtk.glass.platform=gtk
 196 gtk.prism.order=sw
 197 gtk.com.sun.javafx.isEmbedded=true
 198 gtk.com.sun.javafx.scene.control.skin.FXVK.cache=true
 199 gtk.com.sun.javafx.gestures.zoom=true
 200 gtk.com.sun.javafx.gestures.rotate=true
 201 gtk.com.sun.javafx.gestures.scroll=true"""
 202 
 203 def pangoCCFlags = [extraCFlags, "-D_ENABLE_PANGO"];
 204 def pangoLinkFlags = [extraLFlags];
 205 
 206 def pangoCFlags_pkgconfig = "-pthread -I${sdk}/usr/include/pango-1.0 -I${sdk}/usr/include/freetype2 -I${sdk}/usr/include -I${sdk}/usr/include/glib-2.0 -I${sdk}/usr/lib/arm-linux-gnueabihf/glib-2.0/include"
 207 
 208 def pangoLFlags_pkgconfig = "-L${sdk}/usr/lib/arm-linux-gnueabihf -lpangoft2-1.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0"
 209 
 210 pangoCCFlags.addAll(pangoCFlags_pkgconfig.split(" "))
 211 pangoLinkFlags.addAll(pangoLFlags_pkgconfig.split(" "))
 212 
 213 def freetypeCCFlags = [ext.IS_COMPILE_PANGO ? "-D_ENABLE_PANGO" :
 214                        ext.IS_COMPILE_HARFBUZZ ? "-D_ENABLE_HARFBUZZ" : ""]
 215 def freetypeLinkFlags = []
 216 
 217 def freetypeCFlags_pkgconfig = "-I${sdk}/usr/include/freetype2 -I${sdk}/usr/include"
 218 def freetypeLFlags_pkgconfig = "-L${sdk}/usr/lib/arm-linux-gnueabihf -lfreetype"
 219 
 220 freetypeCCFlags.addAll(freetypeCFlags_pkgconfig.split(" "))
 221 freetypeLinkFlags.addAll(freetypeLFlags_pkgconfig.split(" "))
 222 
 223 ARMV6HF.javafxPlatformProperties = "javafx.platform=${ARMV6HF.javafxPlatformDefault}"
 224 
 225 ARMV6HF.glass = [:]
 226 ARMV6HF.glass.javahInclude = [
 227     "com/sun/glass/events/**",
 228     "com/sun/glass/ui/*"]
 229 ARMV6HF.glass.variants = [ ]





 230 if (ARMV6HF.includeMonocle) {
 231     ARMV6HF.glass.variants.addAll("monocle", "monocle_x11");
 232     ARMV6HF.glass.javahInclude.addAll(
 233         "com/sun/glass/ui/monocle/*",
 234         "com/sun/glass/ui/monocle/dispman/*",
 235         "com/sun/glass/ui/monocle/mx6/*",
 236         "com/sun/glass/ui/monocle/linux/*",
 237         "com/sun/glass/ui/monocle/util/*",
 238         "com/sun/glass/ui/monocle/x11/*");
 239     ARMV6HF.javafxPlatformProperties = ARMV6HF.javafxPlatformProperties + monoclePlatformAdditions
 240 }
 241 if (ARMV6HF.includeGTK) {
 242     ARMV6HF.glass.variants.addAll("gtk");
 243     ARMV6HF.glass.javahInclude.addAll("com/sun/glass/ui/gtk/*");
 244     ARMV6HF.javafxPlatformProperties = ARMV6HF.javafxPlatformProperties + gtkPlatformAdditions
 245 }
 246 
 247 ARMV6HF.glass.lib = "glass"
 248 










 249 ARMV6HF.glass.monocle = [:]
 250 ARMV6HF.glass.monocle.nativeSource = [
 251         file("${project("graphics").projectDir}/src/main/native-glass/monocle"),
 252         file("${project("graphics").projectDir}/src/main/native-glass/monocle/dispman"),
 253         file("${project("graphics").projectDir}/src/main/native-glass/monocle/mx6"),
 254         file("${project("graphics").projectDir}/src/main/native-glass/monocle/linux"),
 255         file("${project("graphics").projectDir}/src/main/native-glass/monocle/util") ]
 256 ARMV6HF.glass.monocle.compiler = compiler
 257 ARMV6HF.glass.monocle.ccFlags = monocleCFlags
 258 ARMV6HF.glass.monocle.linker = linker
 259 ARMV6HF.glass.monocle.linkFlags = monocleLFlags
 260 ARMV6HF.glass.monocle.lib = "glass_monocle"
 261 
 262 ARMV6HF.glass.monocle_x11 = [:]
 263 ARMV6HF.glass.monocle_x11.nativeSource = [
 264         file("${project("graphics").projectDir}/src/main/native-glass/monocle/util"),
 265         file("${project("graphics").projectDir}/src/main/native-glass/monocle/x11") ]
 266 ARMV6HF.glass.monocle_x11.compiler = compiler
 267 ARMV6HF.glass.monocle_x11.ccFlags = monocleCFlags
 268 ARMV6HF.glass.monocle_x11.linker = linker
 269 ARMV6HF.glass.monocle_x11.linkFlags = [ monocleLFlags, "-lX11" ].flatten()
 270 ARMV6HF.glass.monocle_x11.lib = "glass_monocle_x11"
 271 
 272 FileTree ft_gtk = fileTree("${project(":graphics").projectDir}/src/main/native-glass/gtk/") {
 273     exclude("**/launcher.c")
 274 }
 275 File gen_headers = new File("${project(":graphics").buildDir}/gensrc/headers/javafx.graphics")























































 276 
 277 ARMV6HF.glass.gtk = [:]
 278 ARMV6HF.glass.gtk.nativeSource = ft_gtk.getFiles()
 279 ARMV6HF.glass.gtk.compiler = compiler
 280 ARMV6HF.glass.gtk.ccFlags = ["-ffast-math", gtkCFlags, "-DLINUX", "-I${gen_headers}"].flatten()
 281 ARMV6HF.glass.gtk.linker = linker
 282 ARMV6HF.glass.gtk.linkFlags = [gtkLFlags, "-lstdc++"].flatten()
 283 ARMV6HF.glass.gtk.lib = "glass"
 284 
 285 ARMV6HF.decora = [:]
 286 ARMV6HF.decora.compiler = compiler
 287 ARMV6HF.decora.ccFlags = extraCFlags
 288 ARMV6HF.decora.linker = linker
 289 ARMV6HF.decora.linkFlags = extraLFlags
 290 ARMV6HF.decora.lib = "decora_sse"
 291 
 292 ARMV6HF.prism = [:]
 293 ARMV6HF.prism.javahInclude = ["com/sun/prism/impl/**/*", "com/sun/prism/PresentableState*"]
 294 ARMV6HF.prism.nativeSource = file("${project("graphics").projectDir}/src/main/native-prism")
 295 ARMV6HF.prism.compiler = compiler
 296 ARMV6HF.prism.ccFlags = [extraCFlags].flatten()
 297 ARMV6HF.prism.linker = linker
 298 ARMV6HF.prism.linkFlags = [extraLFlags].flatten()
 299 ARMV6HF.prism.lib = "prism_common"
 300 


 302 ARMV6HF.prismSW.javahInclude = ["com/sun/pisces/**/*"]
 303 ARMV6HF.prismSW.nativeSource = file("${project("graphics").projectDir}/src/main/native-prism-sw")
 304 ARMV6HF.prismSW.compiler = compiler
 305 ARMV6HF.prismSW.ccFlags = [extraCFlags].flatten()
 306 ARMV6HF.prismSW.linker = linker
 307 ARMV6HF.prismSW.linkFlags = [extraLFlags].flatten()
 308 ARMV6HF.prismSW.lib = "prism_sw"
 309 
 310 ARMV6HF.iio = [:]
 311 ARMV6HF.iio.javahInclude = ["com/sun/javafx/iio/**/*"]
 312 ARMV6HF.iio.nativeSource = [
 313     file("${project("graphics").projectDir}/src/main/native-iio"),
 314     file("${project("graphics").projectDir}/src/main/native-iio/libjpeg7")]
 315 ARMV6HF.iio.compiler = compiler
 316 ARMV6HF.iio.ccFlags = iioCFlags
 317 ARMV6HF.iio.linker = linker
 318 ARMV6HF.iio.linkFlags = iioLFlags
 319 ARMV6HF.iio.lib = "javafx_iio"
 320 
 321 ARMV6HF.prismES2 = [:]
 322 ARMV6HF.prismES2.variants = ["monocle"]
 323 ARMV6HF.prismES2.javahInclude = ["com/sun/prism/es2/**/*"]
 324 













 325 ARMV6HF.prismES2.monocle= [:]
 326 ARMV6HF.prismES2.monocle.nativeSource = [
 327     file("${project("graphics").projectDir}/src/main/native-prism-es2"),
 328     file("${project("graphics").projectDir}/src/main/native-prism-es2/GL"),
 329     file("${project("graphics").projectDir}/src/main/native-prism-es2/monocle")
 330 ]
 331 ARMV6HF.prismES2.monocle.compiler = compiler
 332 ARMV6HF.prismES2.monocle.ccFlags = [ es2EglfbCFlags, "-I", "-I${gen_headers}" ].flatten()
 333 ARMV6HF.prismES2.monocle.linker = linker
 334 ARMV6HF.prismES2.monocle.linkFlags =[  es2EglfbLFlags, "-ldl" ].flatten()
 335 ARMV6HF.prismES2.monocle.lib = "prism_es2_monocle"
 336 












 337 def closedDir = file("$projectDir/../rt-closed")
 338 ARMV6HF.font = [:]
 339 ARMV6HF.font.javahInclude = [
 340     "com/sun/javafx/font/**/*",
 341     "com/sun/javafx/text/**/*"]
 342 ARMV6HF.font.nativeSource = [file("${project("graphics").projectDir}/src/main/native-font")]
 343 ARMV6HF.font.compiler = compiler
 344 ARMV6HF.font.ccFlags = fontCFlags
 345 ARMV6HF.font.linker = linker
 346 ARMV6HF.font.linkFlags = fontLFlags
 347 ARMV6HF.font.lib = "javafx_font"
 348 
 349 ARMV6HF.fontT2K = [:]
 350 ARMV6HF.fontT2K.javahInclude = ["com/sun/javafx/font/t2k/**/*"]
 351 ARMV6HF.fontT2K.nativeSource = [
 352         file("$closedDir/javafx-font-t2k-native/src"),
 353         file("$closedDir/javafx-font-t2k-native/src/layout")]
 354 ARMV6HF.fontT2K.compiler = compiler
 355 ARMV6HF.fontT2K.ccFlags = [fontCFlags, "-DLE_STANDALONE"].flatten()
 356 ARMV6HF.fontT2K.linker = linker


 384 ARMV6HF.webkit.strip    = file("$compilerHome/bin/${compilerPrefix}strip").getAbsolutePath()
 385 ARMV6HF.webkit.ccFlags  = extraCFlags.join(' ')
 386 ARMV6HF.webkit.linkFlags = extraLFlags.join(' ')
 387 
 388 ARMV6HF.disableMedia = true
 389 ARMV6HF.media = [:]
 390 ARMV6HF.media.compiler = compiler
 391 ARMV6HF.media.linker = linker
 392 ARMV6HF.media.extra_cflags = mediaCFlags.join(' ')
 393 ARMV6HF.media.extra_ldflags = mediaLFlags.join(' ')
 394 
 395 ARMV6HF.deploy = [:]
 396 ARMV6HF.deploy.publicLibraryFilter = [
 397   "fxavcodecplugin-52.so",
 398   "fxavcodecplugin-53.so",
 399   "fxplugins.so",
 400   "libjfxwebkit.so",
 401   "libgstplugins-lite.so",
 402   "libgstreamer-lite.so",
 403   "libprism_es2_eglx11.so",

 404 ]
 405 ARMV6HF.deploy.compressBigJar=true
< prev index next >