1 /*
   2  * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 ext.ARMV6SF = [:]
  27 
  28 fetchExternalTools('ARMV6SF', [ "armv6-vfp-04.tgz" ], 
  29   rootProject.CROSS_TOOLS_DIR, rootProject.IS_IMPORT_CROSS_TOOLS)
  30 
  31 // Define the location of the sdk and toolchain
  32 def sdk=file("${rootProject.CROSS_TOOLS_DIR}/armv6-vfp-04")
  33 
  34 def compilerHome=file("/opt/arm-linaro-4.7")
  35 if (rootProject.hasProperty("ARMV6SF_COMPILER")) {
  36     logger.quiet "Using alternate ARMV6SF_COMPILER $rootProject.ARMV6SF_COMPILER"
  37     compilerHome=file(rootProject.ARMV6SF_COMPILER);
  38 }
  39 def compilerPrefix="arm-linux-gnueabi-"
  40 if (rootProject.hasProperty("ARMV6SF_COMPILER_PREFIX")) {
  41     logger.quiet "Using alternate ARMV6SF_COMPILER_PREFIX $rootProject.ARMV6SF_COMPILER_PREFIX"
  42     compilerPrefix="${rootProject.ARMV6SF_COMPILER_PREFIX}"
  43 }
  44 def jniPlatform
  45 if (IS_LINUX) {
  46     jniPlatform="linux"
  47 } else if (IS_MAC) {
  48     jniPlatform="darwin"
  49 } else {
  50     println "ERROR: Cannot build on this platform"
  51     return;
  52 }
  53 
  54 // Declare whether this particular target file applies to the current system
  55 ARMV6SF.canBuild = (IS_LINUX || IS_MAC) && compilerHome.exists() && sdk.exists()
  56 if (!ARMV6SF.canBuild) {
  57     if (!compilerHome.exists()) println "ERROR: Mising compiler $compilerHome"
  58     if (!sdk.exists()) println "ERROR: Mising sdk $sdk"
  59     return;
  60 }
  61 
  62 // Lambda for naming the generated libs
  63 ARMV6SF.library = { name -> return "lib${name}.so" as String }
  64 
  65 // alias for this platform in legacy artifacts
  66 ARMV6SF.artifactsName = "armv6-vfp"
  67 
  68 ARMV6SF.compileSwing = false;
  69 ARMV6SF.compileSWT = false;
  70 ARMV6SF.compileFXPackager = false;
  71 ARMV6SF.compileDesignTime = false;
  72 
  73 // Libraries end up in the sdk/rt/lib/arm directory for arm builds
  74 ARMV6SF.libDest = "lib/arm"
  75 
  76 // TODO this is garbage. Each target file should define what it includes,
  77 // not what it excludes.
  78 ARMV6SF.jfxrtJarExcludes = [
  79     "**/*.hlsl",
  80     "com/sun/glass/ui/win",
  81     "com/sun/glass/ui/accessible/win",
  82     "com/sun/prism/d3d",
  83     "com/sun/prism/es2/gl/win",
  84     //"com/sun/prism/null3d",
  85     "com/sun/scenario/effect/impl/hw/d3d",
  86     
  87     "com/sun/glass/events/mac",
  88     "com/sun/glass/ui/mac",
  89     "com/sun/glass/ui/accessible/mac",
  90     "com/sun/prism/es2/gl/mac",
  91         
  92     "com/sun/glass/ui/android",
  93     
  94     "com/sun/glass/ui/ios",
  95     
  96     "com/sun/glass/ui/swt", // SWT glass
  97     
  98     "javafx/embed/swing", // Swing Interop
  99     
 100     "javafx/embed/swt", // SWT Interop
 101 
 102     "com/sun/prism/es2/MacGL*",
 103     "com/sun/prism/es2/IOSGL*",
 104     "com/sun/prism/es2/WinGL*",
 105 ]
 106 
 107 def commonFlags = [
 108         "-fno-strict-aliasing", "-fPIC", "-fno-omit-frame-pointer", // optimization flags
 109         "-W", "-Wall", "-Wno-unused", "-Wno-parentheses", "-Werror=implicit-function-declaration"] // warning flags
 110 // Specify the compilation parameters and link parameters
 111 def ccFlags = [
 112         commonFlags, "-I$JDK_HOME/include", "-I$JDK_HOME/include/$jniPlatform", "-c",
 113         IS_DEBUG_NATIVE ? ["-ggdb", "-DVERBOSE"] : "-O2"].flatten()
 114 //ccFlags.addAll(["-Wnon-virtual-dtor", "-Woverloaded-virtual", "-std=c++0x"])
 115 def linkFlags = ["-shared", commonFlags].flatten()
 116 
 117 // Specify the compilation parameters and link parameters
 118 def extraCFlags = [
 119         "-I", "-L",
 120         ccFlags,
 121         "-march=armv6", "-mfloat-abi=softfp", "-mfpu=vfp",
 122         "-I$sdk/usr/include",
 123         "-D_GNU_SOURCE", "-DOMAP3"].flatten();
 124 
 125 //See if we should build for imx6
 126 def imxHeader=file("$sdk/usr/include/linux/mxcfb.h")
 127 if (imxHeader.exists()) {
 128         extraCFlags = [extraCFlags,"-DIMX6_PLATFORM"].flatten();
 129 }
 130 
 131 def extraLFlags = [
 132         "-I", "-L",
 133         linkFlags,
 134         "-Wl,-rpath-link", "$sdk/usr/lib",
 135         "-L$sdk/usr/lib"].flatten()
 136 
 137 def x11CFlags = [extraCFlags, "-DUSE_XSHM"].flatten()
 138 def x11LFlags = [extraLFlags, "-lX11", "-lXext"].flatten()
 139 def eglCFlags = [extraCFlags].flatten()
 140 def eglLFlags = [extraLFlags].flatten()
 141 def dfbCFlags = ["-I$sdk/usr/include/directfb"]
 142 def dfbLFlags = ["-ldl"]
 143 // TODO dfb.args=disable-module=ps2mouse,disable-module=keyboard
 144 
 145 def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten()
 146 def monocleCFlags = [
 147         extraCFlags,
 148         "-Werror",
 149         "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten();
 150 def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten()
 151 def glassCFlags = ["-ffast-math"]
 152 def glassLFlags = []
 153 
 154 def fontCFlags = [extraCFlags].flatten()
 155 def fontLFlags = [extraLFlags].flatten()
 156 
 157 def iioCFlags = [extraCFlags].flatten()
 158 def iioLFlags = [extraLFlags].flatten()
 159 
 160 def es2CFlags = [extraCFlags].flatten()
 161 def es2LFlags = [extraLFlags, eglLFlags].flatten()
 162 
 163 def es2EglfbCFlags = [extraCFlags, eglCFlags, "-DIS_EGLFB", "-DLINUX"].flatten()
 164 def es2EglfbLFlags = [extraLFlags, eglLFlags].flatten()
 165 
 166 def es2X11CFlags = [extraCFlags, eglCFlags, x11CFlags, "-DDEBUG", "-DIS_EGLX11", "-DLINUX"].flatten()
 167 def es2X11LFlags = [extraLFlags, x11LFlags, eglLFlags, "-lXdmcp", "-lXau"].flatten()
 168 
 169 def prismSWCFlags = [extraCFlags].flatten()
 170 def prismSWLFlags = [extraLFlags].flatten()
 171 
 172 def mediaCFlags = [extraCFlags,
 173     "-I$sdk/usr/include/gstreamer-0.10",
 174     "-I$sdk/usr/include/glib-2.0",
 175     "-I$sdk/usr/lib/glib-2.0/include",
 176     "-DENABLE_NATIVE_SOURCE=1", "-DENABLE_GST_FFMPEG=1"].flatten()
 177 def mediaLFlags = [extraLFlags, "-lgstreamer-0.10", "-lgstapp-0.10",
 178     "-lgstbase-0.10", "-lglib-2.0", "-lgobject-2.0", "-lgmodule-2.0", "-lgthread-2.0"].flatten()
 179 
 180 def webCFlags = [extraCFlags].flatten()
 181 def webLFlags = [extraLFlags].flatten()
 182 
 183 // libraries to remove from the sdk
 184 //deploy.trim.public.library.filter= \
 185 //  fxavcodecplugin-52.so \
 186 //  fxavcodecplugin-53.so \
 187 //  fxplugins.so \
 188 //  libjfxwebkit.so \
 189 //  libgstplugins-lite.so \
 190 //  libgstreamer-lite.so \
 191 //  libprism-es2-eglx11.so \
 192 //  libglass-lens-fb.so \
 193 
 194 //defineProperty("CC", "gcc");
 195 //defineProperty("PRISM_CC", "cc");
 196 //defineProperty("PRISM_SW_CC", "cc");
 197 
 198 def gtkCFlags = [extraCFlags].flatten()
 199 def gtkLFlags = [extraLFlags].flatten()
 200 setupTools("armv6sf_tools",
 201     { propFile ->
 202         ByteArrayOutputStream results = new ByteArrayOutputStream();
 203         exec {
 204             commandLine("$sdk/bin/pkg-config", "--cflags", "gtk+-2.0", "gthread-2.0", "xtst");
 205             setStandardOutput(results);
 206         }
 207         propFile << "cflags=" << results.toString().trim() << "\n";
 208 
 209         results = new ByteArrayOutputStream();
 210         exec {
 211             commandLine "$sdk/bin/pkg-config", "--libs", "gtk+-2.0", "gthread-2.0", "xtst"
 212             standardOutput = results
 213         }
 214         propFile << "libs=" << results.toString().trim();
 215     },
 216     { properties ->
 217         gtkCFlags.addAll(properties.getProperty("cflags").split(" "))
 218         gtkLFlags.addAll(properties.getProperty("libs").split(" "))
 219     }
 220 )
 221 
 222 ARMV6SF.javafxPlatformProperties = """javafx.platform=eglfb
 223 directfb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 224 directfb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 225 directfb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 226 directfb.glass.platform=Lens
 227 directfb.glass.lens=dfb
 228 directfb.prism.order=sw
 229 directfb.com.sun.javafx.isEmbedded=true
 230 directfb.com.sun.javafx.scene.control.skin.FXVK.cache=true
 231 eglfb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 232 eglfb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 233 eglfb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 234 eglfb.maxTextureSize=2048
 235 eglfb.glass.platform=Lens
 236 eglfb.glass.lens=eglfb
 237 eglfb.prism.order=es2
 238 eglfb.prism.eglfb=true
 239 eglfb.prism.lcdtext=false
 240 eglfb.prism.maxvram=128m
 241 eglfb.prism.targetvram=112m
 242 eglfb.use.egl=true
 243 eglfb.doNativeComposite=true
 244 eglfb.use.gles2=true
 245 eglfb.embedded=eglfb
 246 eglfb.com.sun.javafx.isEmbedded=true
 247 eglfb.com.sun.javafx.scene.control.skin.FXVK.cache=true
 248 eglfb.prism.glDepthSize=0
 249 fb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 250 fb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 251 fb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 252 fb.glass.platform=Lens
 253 fb.glass.lens=fb
 254 fb.prism.order=sw
 255 fb.com.sun.javafx.isEmbedded=true
 256 fb.glass.restrictWindowToScreen=true
 257 fb.com.sun.javafx.scene.control.skin.FXVK.cache=true
 258 monocle.glass.platform=Monocle
 259 monocle.prism.order=es2,sw
 260 monocle.prism.eglfb=true
 261 monocle.prism.lcdtext=false
 262 monocle.prism.maxvram=128m
 263 monocle.prism.targetvram=112m
 264 monocle.use.egl=true
 265 monocle.use.gles2=true
 266 monocle.embedded=eglfb
 267 monocle.com.sun.javafx.isEmbedded=true
 268 monocle.doNativeComposite=true
 269 monocle.com.sun.javafx.scene.control.skin.FXVK.cache=true
 270 monocle.prism.glDepthSize=0
 271 eglx11.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 272 eglx11.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 273 eglx11.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 274 eglx11.glass.platform=Lens
 275 eglx11.glass.lens=eglx11
 276 eglx11.prism.order=es2
 277 eglx11.prism.eglx11=true
 278 eglx11.prism.lcdtext=false
 279 eglx11.prism.maxvram=128m
 280 eglx11.prism.targetvram=112m
 281 eglx11.use.egl=true
 282 eglx11.use.gles2=true
 283 eglx11.embedded=eglx11
 284 eglx11.com.sun.javafx.isEmbedded=true
 285 eglx11.com.sun.javafx.scene.control.skin.FXVK.cache=true
 286 eglx11.prism.glDepthSize=0
 287 gtk.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 288 gtk.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 289 gtk.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 290 gtk.glass.platform=gtk
 291 gtk.prism.order=sw
 292 gtk.com.sun.javafx.isEmbedded=true
 293 gtk.com.sun.javafx.scene.control.skin.FXVK.cache=true"""
 294 
 295 def pangoCCFlags = [extraCFlags, "-D_ENABLE_PANGO"];
 296 def pangoLinkFlags = [extraLFlags];
 297 setupTools("armv6sf_pango_tools",
 298     { propFile ->
 299         ByteArrayOutputStream results = new ByteArrayOutputStream();
 300         exec {
 301             commandLine "$sdk/bin/pkg-config", "--cflags", "pangoft2"
 302             standardOutput = results
 303         }
 304         propFile << "cflags=" << results.toString().trim() << "\n";
 305 
 306         results = new ByteArrayOutputStream();
 307         exec {
 308             commandLine "$sdk/bin/pkg-config", "--libs", "pangoft2"
 309             standardOutput = results
 310         }
 311         propFile << "libs=" << results.toString().trim();
 312     },
 313     { properties ->
 314         pangoCCFlags.addAll(properties.getProperty("cflags").split(" "))
 315         pangoLinkFlags.addAll(properties.getProperty("libs").split(" "))
 316     }
 317 )
 318 
 319 def freetypeCCFlags = [ext.COMPILE_PANGO ? "-D_ENABLE_PANGO" : 
 320                        ext.COMPILE_HARFBUZZ ? "-D_ENABLE_HARFBUZZ" : ""]
 321 def freetypeLinkFlags = []
 322 setupTools("armv6sf_freetype_tools",
 323     { propFile ->
 324         ByteArrayOutputStream results = new ByteArrayOutputStream();
 325         exec {
 326             commandLine "$sdk/bin/pkg-config", "--cflags", "freetype2"
 327             standardOutput = results
 328         }
 329         propFile << "cflags=" << results.toString().trim() << "\n";
 330 
 331         results = new ByteArrayOutputStream();
 332         exec {
 333             commandLine "$sdk/bin/pkg-config", "--libs", "freetype2"
 334             standardOutput = results
 335         }
 336         propFile << "libs=" << results.toString().trim();
 337     },
 338     { properties ->
 339         freetypeCCFlags.addAll(properties.getProperty("cflags").split(" "))
 340         freetypeLinkFlags.addAll(properties.getProperty("libs").split(" "))
 341     }
 342 )
 343 
 344 def compiler = file("$compilerHome/bin/${compilerPrefix}gcc").getAbsolutePath()
 345 def linker = file("$compilerHome/bin/${compilerPrefix}g++").getAbsolutePath()
 346 
 347 ARMV6SF.glass = [:]
 348 ARMV6SF.glass.variants = ["eglfb", "directfb", "fb", "gtk", "lensport", "monocle", "monocle_x11" ]
 349 ARMV6SF.glass.javahInclude = [
 350     "com/sun/glass/events/**",
 351     "com/sun/glass/ui/*",
 352     "com/sun/glass/ui/lens/*",
 353     "com/sun/glass/ui/monocle/linux/*",
 354     "com/sun/glass/ui/monocle/util/*",
 355     "com/sun/glass/ui/monocle/x11/*",
 356     "com/sun/glass/ui/gtk/*",
 357     "com/sun/glass/ui/accessible/gtk/*"]
 358 ARMV6SF.glass.lib = "glass"
 359 
 360 ARMV6SF.glass.lensport = [:]
 361 ARMV6SF.glass.lensport.nativeSource = [
 362     file("modules/graphics/src/main/native-glass/lens/lensport") ]
 363 ARMV6SF.glass.lensport.compiler = compiler
 364 ARMV6SF.glass.lensport.ccFlags = ["-ffast-math", extraCFlags, "-DLINUX", "-DISEGLFB",
 365     "-DLENSPORT", "-I", file("modules/graphics/src/main/native-glass/lens/")].flatten()
 366 ARMV6SF.glass.lensport.linker = linker
 367 ARMV6SF.glass.lensport.linkFlags = [lensLFlags].flatten()
 368 ARMV6SF.glass.lensport.lib = "lens_porting"
 369 
 370 ARMV6SF.glass.monocle = [:]
 371 ARMV6SF.glass.monocle.nativeSource = [
 372         file("modules/graphics/src/main/native-glass/monocle/linux"),
 373         file("modules/graphics/src/main/native-glass/monocle/util") ]
 374 ARMV6SF.glass.monocle.compiler = compiler
 375 ARMV6SF.glass.monocle.ccFlags = monocleCFlags
 376 ARMV6SF.glass.monocle.linker = linker
 377 ARMV6SF.glass.monocle.linkFlags = monocleLFlags
 378 ARMV6SF.glass.monocle.lib = "glass_monocle"
 379 
 380 ARMV6SF.glass.monocle_x11 = [:]
 381 ARMV6SF.glass.monocle_x11.nativeSource = [
 382         file("modules/graphics/src/main/native-glass/monocle/util"),
 383         file("modules/graphics/src/main/native-glass/monocle/x11") ]
 384 ARMV6SF.glass.monocle_x11.compiler = compiler
 385 ARMV6SF.glass.monocle_x11.ccFlags = monocleCFlags
 386 ARMV6SF.glass.monocle_x11.linker = linker
 387 ARMV6SF.glass.monocle_x11.linkFlags = [ monocleLFlags, "-lX11" ].flatten()
 388 ARMV6SF.glass.monocle_x11.lib = "glass_monocle_x11"
 389 
 390 ARMV6SF.glass.eglfb = [:]
 391 // TODO when building headless, use lens/cursor/nullcursor/
 392 // otherwise we use lens/cursor/fbCursor/ and lens/input/udev
 393 
 394 // TODO when USE_RFB is specified use lens/rfb
 395 
 396 // TODO use /eglfb/x11ContainerScreen when using eglfb and EGL_X11_FB_CONTAINER
 397 // TODO use /headless/headlessScreen when using headless
 398 ARMV6SF.glass.eglfb.nativeSource = [
 399     file("modules/graphics/src/main/native-glass/lens"),
 400     file("modules/graphics/src/main/native-glass/lens/wm"),
 401     file("modules/graphics/src/main/native-glass/lens/cursor/fbCursor"),
 402     file("modules/graphics/src/main/native-glass/lens/input/udev"),
 403     file("modules/graphics/src/main/native-glass/lens/wm/screen/fbdevScreen.c")]
 404 ARMV6SF.glass.eglfb.compiler = compiler
 405 ARMV6SF.glass.eglfb.ccFlags = ["-ffast-math", extraCFlags, "-DLINUX", "-DISEGLFB"].flatten()
 406 ARMV6SF.glass.eglfb.linker = linker
 407 ARMV6SF.glass.eglfb.linkFlags = [lensLFlags].flatten()
 408 ARMV6SF.glass.eglfb.lib = "glass_lens_eglfb"
 409 
 410 ARMV6SF.glass.directfb = [:]
 411 ARMV6SF.glass.directfb.nativeSource = [
 412     file("modules/graphics/src/main/native-glass/lens"),
 413     file("modules/graphics/src/main/native-glass/lens/wm"),
 414     file("modules/graphics/src/main/native-glass/lens/cursor/fbCursor"),
 415     file("modules/graphics/src/main/native-glass/lens/input/udev"),
 416     file("modules/graphics/src/main/native-glass/lens/wm/screen/dfbScreen.c")]
 417 ARMV6SF.glass.directfb.compiler = compiler
 418 ARMV6SF.glass.directfb.ccFlags = ["-ffast-math", extraCFlags, "-I$sdk/usr/include/directfb", "-DLINUX"].flatten()
 419 ARMV6SF.glass.directfb.linker = linker
 420 ARMV6SF.glass.directfb.linkFlags = [lensLFlags].flatten()
 421 ARMV6SF.glass.directfb.lib = "glass_lens_dfb"
 422 
 423 ARMV6SF.glass.fb = [:]
 424 ARMV6SF.glass.fb.nativeSource = [
 425     file("modules/graphics/src/main/native-glass/lens"),
 426     file("modules/graphics/src/main/native-glass/lens/wm"),
 427     file("modules/graphics/src/main/native-glass/lens/cursor/fbCursor"),
 428     file("modules/graphics/src/main/native-glass/lens/input/udev"),
 429     file("modules/graphics/src/main/native-glass/lens/wm/screen/fbdevScreen.c") ]
 430 ARMV6SF.glass.fb.compiler = compiler
 431 ARMV6SF.glass.fb.ccFlags = ["-ffast-math", extraCFlags, "-DLINUX"].flatten()
 432 ARMV6SF.glass.fb.linker = linker
 433 ARMV6SF.glass.fb.linkFlags = [lensLFlags].flatten()
 434 ARMV6SF.glass.fb.lib = "glass_lens_fb"
 435  
 436 ARMV6SF.glass.eglx11 = [:]
 437 ARMV6SF.glass.eglx11.nativeSource = [
 438     file("modules/graphics/src/main/native-glass/lens"),
 439     file("modules/graphics/src/main/native-glass/lens/wm"),
 440     file("modules/graphics/src/main/native-glass/lens/cursor/fbCursor"),
 441     file("modules/graphics/src/main/native-glass/lens/input/udev"),
 442     file("modules/graphics/src/main/native-glass/lens/wm/screen/x11ContainerScreen.c")]
 443 ARMV6SF.glass.eglx11.compiler = compiler
 444 ARMV6SF.glass.eglx11.ccFlags = ["-ffast-math", extraCFlags].flatten()
 445 ARMV6SF.glass.eglx11.ccFlags = ["-ffast-math", extraCFlags, "-DLINUX"].flatten()
 446 ARMV6SF.glass.eglx11.linker = linker
 447 ARMV6SF.glass.eglx11.linkFlags = [lensLFlags].flatten()
 448 ARMV6SF.glass.eglx11.lib = "glass_lens_eglx11"
 449  
 450 ARMV6SF.glass.gtk = [:]
 451 ARMV6SF.glass.gtk.nativeSource = file("modules/graphics/src/main/native-glass/gtk")
 452 ARMV6SF.glass.gtk.compiler = compiler
 453 ARMV6SF.glass.gtk.ccFlags = ["-ffast-math", gtkCFlags, "-DLINUX"].flatten()
 454 ARMV6SF.glass.gtk.linker = linker
 455 ARMV6SF.glass.gtk.linkFlags = [gtkLFlags, "-lstdc++"].flatten()
 456 ARMV6SF.glass.gtk.lib = "glass"
 457 
 458 ARMV6SF.decora = [:]
 459 ARMV6SF.decora.compiler = compiler
 460 ARMV6SF.decora.ccFlags = extraCFlags
 461 ARMV6SF.decora.linker = linker
 462 ARMV6SF.decora.linkFlags = extraLFlags
 463 ARMV6SF.decora.lib = "decora_sse"
 464 
 465 ARMV6SF.prism = [:]
 466 ARMV6SF.prism.javahInclude = ["com/sun/prism/impl/**/*", "com/sun/prism/PresentableState*"]
 467 ARMV6SF.prism.nativeSource = file("modules/graphics/src/main/native-prism")
 468 ARMV6SF.prism.compiler = compiler
 469 ARMV6SF.prism.ccFlags = es2CFlags
 470 ARMV6SF.prism.linker = linker
 471 ARMV6SF.prism.linkFlags = es2LFlags 
 472 ARMV6SF.prism.lib = "prism_common"
 473 
 474 ARMV6SF.prismSW = [:]
 475 ARMV6SF.prismSW.javahInclude = ["com/sun/pisces/**/*"]
 476 ARMV6SF.prismSW.nativeSource = file("modules/graphics/src/main/native-prism-sw")
 477 ARMV6SF.prismSW.compiler = compiler
 478 ARMV6SF.prismSW.ccFlags = prismSWCFlags
 479 ARMV6SF.prismSW.linker = linker
 480 ARMV6SF.prismSW.linkFlags = prismSWLFlags
 481 ARMV6SF.prismSW.lib = "prism_sw"
 482 
 483 ARMV6SF.iio = [:]
 484 ARMV6SF.iio.javahInclude = ["com/sun/javafx/iio/**/*"]
 485 ARMV6SF.iio.nativeSource = [
 486     file("modules/graphics/src/main/native-iio"),
 487     file("modules/graphics/src/main/native-iio/libjpeg7")]
 488 ARMV6SF.iio.compiler = compiler
 489 ARMV6SF.iio.ccFlags = iioCFlags
 490 ARMV6SF.iio.linker = linker
 491 ARMV6SF.iio.linkFlags = iioLFlags
 492 ARMV6SF.iio.lib = "javafx_iio"
 493 
 494 ARMV6SF.prismES2 = [:]
 495 ARMV6SF.prismES2.variants = ["eglfb"]
 496 ARMV6SF.prismES2.javahInclude = ["com/sun/prism/es2/**/*"]
 497 
 498 ARMV6SF.prismES2.eglfb = [:]
 499 ARMV6SF.prismES2.eglfb.nativeSource = [
 500     file("modules/graphics/src/main/native-prism-es2"),
 501     file("modules/graphics/src/main/native-prism-es2/GL"),
 502     file("modules/graphics/src/main/native-prism-es2/eglfb")
 503 ]
 504 ARMV6SF.prismES2.eglfb.compiler = compiler
 505 ARMV6SF.prismES2.eglfb.ccFlags = [ es2EglfbCFlags, "-I", ARMV6SF.glass.lensport.nativeSource ].flatten()
 506 ARMV6SF.prismES2.eglfb.linker = linker
 507 ARMV6SF.prismES2.eglfb.linkFlags = es2EglfbLFlags
 508 ARMV6SF.prismES2.eglfb.lib = "prism_es2_eglfb"
 509 
 510 ARMV6SF.prismES2.eglx11 = [:]
 511 ARMV6SF.prismES2.eglx11.nativeSource = [
 512     file("modules/graphics/src/main/native-prism-es2"),
 513     file("modules/graphics/src/main/native-prism-es2/GL"),
 514     file("modules/graphics/src/main/native-prism-es2/eglx11")
 515 ]
 516 ARMV6SF.prismES2.eglx11.compiler = compiler
 517 ARMV6SF.prismES2.eglx11.ccFlags = es2X11CFlags
 518 ARMV6SF.prismES2.eglx11.linker = linker
 519 ARMV6SF.prismES2.eglx11.linkFlags = es2X11LFlags
 520 ARMV6SF.prismES2.eglx11.lib = "prism_es2_eglx11"
 521 
 522 def closedDir = file("$projectDir/../rt-closed")
 523 ARMV6SF.font = [:]
 524 ARMV6SF.font.javahInclude = [
 525     "com/sun/javafx/font/**/*",
 526     "com/sun/javafx/text/**/*"]
 527 ARMV6SF.font.nativeSource = [file("modules/graphics/src/main/native-font")]
 528 ARMV6SF.font.compiler = compiler
 529 ARMV6SF.font.ccFlags = fontCFlags
 530 ARMV6SF.font.linker = linker
 531 ARMV6SF.font.linkFlags = fontLFlags
 532 ARMV6SF.font.lib = "javafx_font"
 533 
 534 ARMV6SF.fontT2K = [:]
 535 ARMV6SF.fontT2K.javahInclude = ["com/sun/javafx/font/t2k/**/*"]
 536 ARMV6SF.fontT2K.nativeSource = [
 537         file("$closedDir/javafx-font-t2k-native/src"),
 538         file("$closedDir/javafx-font-t2k-native/src/layout")]
 539 ARMV6SF.fontT2K.compiler = compiler
 540 ARMV6SF.fontT2K.ccFlags = [fontCFlags, "-DLE_STANDALONE"].flatten()
 541 ARMV6SF.fontT2K.linker = linker
 542 ARMV6SF.fontT2K.linkFlags = fontLFlags
 543 ARMV6SF.fontT2K.lib = "javafx_font_t2k"
 544 
 545 ARMV6SF.fontFreetype = [:]
 546 ARMV6SF.fontFreetype.javahInclude = ["com/sun/javafx/font/freetype/OSFreetype.class"]
 547 ARMV6SF.fontFreetype.nativeSource = ["src/main/native-font/freetype.c"]
 548 ARMV6SF.fontFreetype.compiler = compiler
 549 ARMV6SF.fontFreetype.ccFlags = ["-DJFXFONT_PLUS", ccFlags, fontCFlags, freetypeCCFlags].flatten()
 550 ARMV6SF.fontFreetype.linker = linker
 551 ARMV6SF.fontFreetype.linkFlags = [linkFlags, fontLFlags, freetypeLinkFlags].flatten()
 552 ARMV6SF.fontFreetype.lib = "javafx_font_freetype"
 553 
 554 ARMV6SF.fontPango = [:]
 555 ARMV6SF.fontPango.javahInclude = ["com/sun/javafx/font/freetype/OSPango.class"]
 556 ARMV6SF.fontPango.nativeSource = ["src/main/native-font/pango.c"]
 557 ARMV6SF.fontPango.compiler = compiler
 558 ARMV6SF.fontPango.ccFlags = ["-DJFXFONT_PLUS", ccFlags, pangoCCFlags].flatten()
 559 ARMV6SF.fontPango.linker = linker
 560 ARMV6SF.fontPango.linkFlags = [linkFlags, pangoLinkFlags].flatten()
 561 ARMV6SF.fontPango.lib = "javafx_font_pango"
 562 
 563 ARMV6SF.webkit = [:]
 564 ARMV6SF.webkit.binDir   = "$compilerHome/bin"
 565 ARMV6SF.webkit.compiler = compiler
 566 ARMV6SF.webkit.linker   = linker
 567 ARMV6SF.webkit.ar       = file("$compilerHome/bin/${compilerPrefix}ar").getAbsolutePath()
 568 ARMV6SF.webkit.objcopy  = file("$compilerHome/bin/${compilerPrefix}objcopy").getAbsolutePath()
 569 ARMV6SF.webkit.strip    = file("$compilerHome/bin/${compilerPrefix}strip").getAbsolutePath()
 570 ARMV6SF.webkit.ccFlags  = extraCFlags.join(' ')
 571 ARMV6SF.webkit.linkFlags = extraLFlags.join(' ')
 572 
 573 ARMV6SF.media = [:]
 574 ARMV6SF.media.compiler = compiler
 575 ARMV6SF.media.linker = linker
 576 ARMV6SF.media.extra_cflags = mediaCFlags.join(' ')
 577 ARMV6SF.media.extra_ldflags = mediaLFlags.join(' ')