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.ARMV6HF = [:]
  27 
  28 fetchExternalTools('ARMV6HF', 
  29   ["armhf-raspberry-pi-10.tgz",
  30    "gcc-linaro-arm-linux-gnueabihf-raspbian-2012.09-20120921_linux.tgz" ], 
  31   rootProject.CROSS_TOOLS_DIR, rootProject.IS_IMPORT_CROSS_TOOLS)
  32 
  33 // Define the location of the sdk and toolchain
  34 def sdk=file("${rootProject.CROSS_TOOLS_DIR}/armhf-raspberry-pi-10")
  35 def compilerHome=file("${rootProject.CROSS_TOOLS_DIR}/gcc-linaro-arm-linux-gnueabihf-raspbian-2012.09-20120921_linux")
  36 
  37 // Declare whether this particular target file applies to the current system
  38 ARMV6HF.canBuild = IS_LINUX && compilerHome.exists() && sdk.exists()
  39 if (!ARMV6HF.canBuild) {
  40     if (!compilerHome.exists()) println "ERROR: Mising compiler $compilerHome"
  41     if (!sdk.exists()) println "ERROR: Mising sdk $sdk"
  42     return;
  43 }
  44 
  45 // Lambda for naming the generated libs
  46 ARMV6HF.library = { name -> return "lib${name}.so" as String }
  47 
  48 // alias for this platform in legacy artifacts
  49 ARMV6HF.artifactsName = "armv6hf-vfp"
  50 
  51 ARMV6HF.compileSwing = false;
  52 ARMV6HF.compileSWT = false;
  53 ARMV6HF.compileFXPackager = false;
  54 ARMV6HF.compileDesignTime = false;
  55 
  56 // Libraries end up in the sdk/rt/lib/arm directory for arm builds
  57 ARMV6HF.libDest = "lib/arm"
  58 
  59 // TODO this is garbage. Each target file should define what it includes,
  60 // not what it excludes.
  61 ARMV6HF.jfxrtJarExcludes = [
  62     "**/*.hlsl",
  63     "com/sun/glass/ui/win",
  64     "com/sun/glass/ui/accessible/win",
  65     "com/sun/prism/d3d",
  66     "com/sun/prism/es2/gl/win",
  67     //"com/sun/prism/null3d",
  68     "com/sun/scenario/effect/impl/hw/d3d",
  69     
  70     "com/sun/glass/events/mac",
  71     "com/sun/glass/ui/mac",
  72     "com/sun/glass/ui/accessible/mac",
  73     "com/sun/prism/es2/gl/mac",
  74     
  75     "com/sun/glass/ui/android",
  76     
  77     "com/sun/glass/ui/ios",
  78     
  79     "com/sun/glass/ui/swt", // SWT glass
  80     
  81     "javafx/embed/swing", // Swing Interop
  82     
  83     "javafx/embed/swt", // SWT Interop
  84 
  85     "com/sun/prism/es2/MacGL*",
  86     "com/sun/prism/es2/IOSGL*",
  87     "com/sun/prism/es2/WinGL*",
  88 ]
  89 
  90 def commonFlags = [
  91         "-fno-strict-aliasing", "-fPIC", "-fno-omit-frame-pointer", // optimization flags
  92         "-W", "-Wall", "-Wno-unused", "-Wno-parentheses", "-Werror=implicit-function-declaration"] // warning flags
  93 // Specify the compilation parameters and link parameters
  94 def ccFlags = [
  95         commonFlags, "-I$JDK_HOME/include", "-I$JDK_HOME/include/linux", "-c",
  96         IS_DEBUG_NATIVE ? ["-ggdb", "-DVERBOSE"] : "-O2"].flatten()
  97 //ccFlags.addAll(["-Wnon-virtual-dtor", "-Woverloaded-virtual", "-std=c++0x"])
  98 def linkFlags = ["-shared", commonFlags].flatten()
  99 
 100 // Specify the compilation parameters and link parameters
 101 def extraCFlags = [
 102         "-I", "-L",
 103         ccFlags,
 104         "-marm", "-mfloat-abi=hard", "-mfpu=vfp",
 105         "-I$sdk/usr/include",
 106         "-I$sdk/opt/vc/include",
 107         "-I$sdk/opt/vc/include/interface/vcos/pthreads",
 108         "-I$sdk/opt/vc/include/interface/vmcs_host/linux",
 109         "-DOMAP3", "-DUSE_DISPMAN"].flatten();
 110 
 111 //See if we should build for imx6
 112 def imxHeader=file("$sdk/usr/include/linux/mxcfb.h")
 113 if (imxHeader.exists()) {
 114         extraCFlags = [extraCFlags,"-DIMX6_PLATFORM"].flatten();
 115 }
 116 
 117 def extraLFlags = [
 118         "-I", "-L",
 119         linkFlags,
 120         "-L$sdk/lib/arm-linux/gnueabihf",
 121         "-L$sdk/usr/lib",
 122         "-L$sdk/usr/lib/arm-linux-gnueabihf",
 123         "-L$sdk/opt/vc/lib"].flatten()
 124 
 125 def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten()
 126 
 127 def fontCFlags = [extraCFlags].flatten()
 128 def fontLFlags = [extraLFlags].flatten()
 129 
 130 def iioCFlags = [extraCFlags].flatten()
 131 def iioLFlags = [extraLFlags].flatten()
 132 
 133 def es2EglfbCFlags = [extraCFlags, "-DIS_EGLFB", "-DLINUX"].flatten()
 134 def es2EglfbLFlags = [extraLFlags].flatten()
 135 
 136 def es2X11CFlags = [extraCFlags, "-DUSE_XSHM", "-DDEBUG", "-DIS_EGLX11", "-DLINUX"].flatten()
 137 def es2X11LFlags = [extraLFlags, "-lX11", "-lXext", "-lXdmcp", "-lXau"].flatten()
 138 
 139 def mediaCFlags = [extraCFlags,
 140     "-I$sdk/usr/include/gstreamer-0.10",
 141     "-I$sdk/usr/include/glib-2.0",
 142     "-I$sdk/usr/lib/arm-linux-gnueabihf/glib-2.0/include",
 143     "-DENABLE_NATIVE_SOURCE=1", "-DENABLE_GST_FFMPEG=1"].flatten()
 144 def mediaLFlags = [extraLFlags, "-lgstreamer-0.10", "-lgstapp-0.10",
 145     "-lgstbase-0.10", "-lglib-2.0", "-lgobject-2.0", "-lgmodule-2.0", "-lgthread-2.0"].flatten()
 146 
 147 def webCFlags = [extraCFlags].flatten()
 148 def webLFlags = [extraLFlags].flatten()
 149 
 150 // libraries to remove from the SDK
 151 //deploy.trim.public.library.filter= \
 152 //  fxavcodecplugin-52.so \
 153 //  fxavcodecplugin-53.so \
 154 //  fxplugins.so \
 155 //  libjfxwebkit.so \
 156 //  libgstplugins-lite.so \
 157 //  libgstreamer-lite.so \
 158 //  libprism-es2-eglx11.so \
 159 //  libglass_lens_fb.so \
 160 
 161 def gtkCFlags = [extraCFlags].flatten()
 162 def gtkLFlags = [extraLFlags].flatten()
 163 setupTools("armv6hf_tools",
 164     { propFile ->
 165         ByteArrayOutputStream results = new ByteArrayOutputStream();
 166         exec {
 167             commandLine("$sdk/bin/pkg-config", "--cflags", "gtk+-2.0", "gthread-2.0", "xtst");
 168             setStandardOutput(results);
 169         }
 170         propFile << "cflags=" << results.toString().trim() << "\n";
 171 
 172         results = new ByteArrayOutputStream();
 173         exec {
 174             commandLine "$sdk/bin/pkg-config", "--libs", "gtk+-2.0", "gthread-2.0", "xtst"
 175             standardOutput = results
 176         }
 177         propFile << "libs=" << results.toString().trim();
 178     },
 179     { properties ->
 180         gtkCFlags.addAll(properties.getProperty("cflags").split(" "))
 181         gtkLFlags.addAll(properties.getProperty("libs").split(" "))
 182     }
 183 )
 184 
 185 ARMV6HF.javafxPlatformProperties ="""javafx.platform=eglfb
 186 directfb.glass.platform=Lens
 187 directfb.glass.lens=dfb
 188 directfb.prism.order=sw
 189 directfb.com.sun.javafx.isEmbedded=true
 190 directfb.com.sun.javafx.scene.control.skin.FXVK.cache=true
 191 eglfb.glass.platform=Lens
 192 eglfb.glass.lens=eglfb
 193 eglfb.prism.order=es2
 194 eglfb.prism.eglfb=true
 195 eglfb.prism.lcdtext=false
 196 eglfb.prism.maxvram=128m
 197 eglfb.prism.targetvram=112m
 198 eglfb.use.egl=true
 199 eglfb.use.gles2=true
 200 eglfb.embedded=eglfb
 201 eglfb.com.sun.javafx.isEmbedded=true
 202 eglfb.doNativeComposite=true
 203 eglfb.com.sun.javafx.scene.control.skin.FXVK.cache=true
 204 eglfb.prism.glDepthSize=0
 205 fb.glass.platform=Lens
 206 fb.glass.lens=fb
 207 fb.prism.order=sw
 208 fb.com.sun.javafx.isEmbedded=true
 209 fb.glass.restrictWindowToScreen=true
 210 fb.com.sun.javafx.scene.control.skin.FXVK.cache=true
 211 eglx11.glass.platform=Lens
 212 eglx11.glass.lens=eglx11
 213 eglx11.prism.order=es2
 214 eglx11.prism.eglx11=true
 215 eglx11.prism.lcdtext=false
 216 eglx11.prism.maxvram=128m
 217 eglx11.prism.targetvram=112m
 218 eglx11.use.egl=true
 219 eglx11.use.gles2=true
 220 eglx11.embedded=eglx11
 221 eglx11.com.sun.javafx.isEmbedded=true
 222 eglx11.com.sun.javafx.scene.control.skin.FXVK.cache=true
 223 eglx11.prism.glDepthSize=0
 224 gtk.glass.platform=gtk
 225 gtk.prism.order=sw
 226 gtk.com.sun.javafx.isEmbedded=true
 227 gtk.com.sun.javafx.scene.control.skin.FXVK.cache=true"""
 228 
 229 def pangoCCFlags = [extraCFlags, "-D_ENABLE_PANGO"];
 230 def pangoLinkFlags = [extraLFlags];
 231 setupTools("armv6hf_pango_tools",
 232     { propFile ->
 233         ByteArrayOutputStream results = new ByteArrayOutputStream();
 234         exec {
 235             commandLine "$sdk/bin/pkg-config", "--cflags", "pangoft2"
 236             standardOutput = results
 237         }
 238         propFile << "cflags=" << results.toString().trim() << "\n";
 239 
 240         results = new ByteArrayOutputStream();
 241         exec {
 242             commandLine "$sdk/bin/pkg-config", "--libs", "pangoft2"
 243             standardOutput = results
 244         }
 245         propFile << "libs=" << results.toString().trim();
 246     },
 247     { properties ->
 248         pangoCCFlags.addAll(properties.getProperty("cflags").split(" "))
 249         pangoLinkFlags.addAll(properties.getProperty("libs").split(" "))
 250     }
 251 )
 252 
 253 def freetypeCCFlags = [ext.COMPILE_PANGO ? "-D_ENABLE_PANGO" : 
 254                        ext.COMPILE_HARFBUZZ ? "-D_ENABLE_HARFBUZZ" : ""]
 255 def freetypeLinkFlags = []
 256 setupTools("armv6hf_freetype_tools",
 257     { propFile ->
 258         ByteArrayOutputStream results = new ByteArrayOutputStream();
 259         exec {
 260             commandLine "$sdk/bin/pkg-config", "--cflags", "freetype2"
 261             standardOutput = results
 262         }
 263         propFile << "cflags=" << results.toString().trim() << "\n";
 264 
 265         results = new ByteArrayOutputStream();
 266         exec {
 267             commandLine "$sdk/bin/pkg-config", "--libs", "freetype2"
 268             standardOutput = results
 269         }
 270         propFile << "libs=" << results.toString().trim();
 271     },
 272     { properties ->
 273         freetypeCCFlags.addAll(properties.getProperty("cflags").split(" "))
 274         freetypeLinkFlags.addAll(properties.getProperty("libs").split(" "))
 275     }
 276 )
 277 
 278 def compiler = file("$compilerHome/bin/arm-linux-gnueabihf-gcc").getAbsolutePath()
 279 def linker = file("$compilerHome/bin/arm-linux-gnueabihf-g++").getAbsolutePath()
 280 
 281 ARMV6HF.glass = [:]
 282 ARMV6HF.glass.variants = ["eglfb", "directfb", "fb", "gtk", "lensport" ]
 283 ARMV6HF.glass.javahInclude = [
 284     "com/sun/glass/events/**",
 285     "com/sun/glass/ui/*",
 286     "com/sun/glass/ui/lens/*",
 287     "com/sun/glass/ui/gtk/*",
 288     "com/sun/glass/ui/accessible/gtk/*"]
 289 ARMV6HF.glass.lib = "glass"
 290 
 291 ARMV6HF.glass.lensport = [:]
 292 ARMV6HF.glass.lensport.nativeSource = [
 293     file("modules/graphics/src/main/native-glass/lens/lensport") ]
 294 ARMV6HF.glass.lensport.compiler = compiler
 295 ARMV6HF.glass.lensport.ccFlags = ["-ffast-math", extraCFlags, "-DLINUX", "-DISEGLFB",
 296     "-DLENSPORT", "-I", file("modules/graphics/src/main/native-glass/lens/") ].flatten()
 297 ARMV6HF.glass.lensport.linker = linker
 298 ARMV6HF.glass.lensport.linkFlags = [lensLFlags].flatten()
 299 ARMV6HF.glass.lensport.lib = "lens_porting"
 300 
 301 ARMV6HF.glass.eglfb = [:]
 302 // TODO when building headless, use lens/cursor/nullcursor/
 303 // otherwise we use lens/cursor/fbCursor/ and lens/input/udev
 304 
 305 // TODO when USE_RFB is specified use lens/rfb
 306 
 307 // TODO use /eglfb/x11ContainerScreen when using eglfb and EGL_X11_FB_CONTAINER
 308 // TODO use /headless/headlessScreen when using headless
 309 ARMV6HF.glass.eglfb.nativeSource = [
 310     file("modules/graphics/src/main/native-glass/lens"),
 311     file("modules/graphics/src/main/native-glass/lens/wm"),
 312     file("modules/graphics/src/main/native-glass/lens/cursor/fbCursor"),
 313     file("modules/graphics/src/main/native-glass/lens/input/udev"),
 314     file("modules/graphics/src/main/native-glass/lens/wm/screen/fbdevScreen.c") ]
 315 ARMV6HF.glass.eglfb.compiler = compiler
 316 ARMV6HF.glass.eglfb.ccFlags = ["-ffast-math", extraCFlags, "-DLINUX", "-DISEGLFB"].flatten()
 317 ARMV6HF.glass.eglfb.linker = linker
 318 ARMV6HF.glass.eglfb.linkFlags = [lensLFlags].flatten()
 319 ARMV6HF.glass.eglfb.lib = "glass_lens_eglfb"
 320 
 321 ARMV6HF.glass.directfb = [:]
 322 ARMV6HF.glass.directfb.nativeSource = [
 323     file("modules/graphics/src/main/native-glass/lens"),
 324     file("modules/graphics/src/main/native-glass/lens/wm"),
 325     file("modules/graphics/src/main/native-glass/lens/cursor/fbCursor"),
 326     file("modules/graphics/src/main/native-glass/lens/input/udev"),
 327     file("modules/graphics/src/main/native-glass/lens/wm/screen/dfbScreen.c") ]
 328 ARMV6HF.glass.directfb.compiler = compiler
 329 ARMV6HF.glass.directfb.ccFlags = ["-ffast-math", extraCFlags, "-I$sdk/usr/include/directfb", "-DLINUX"].flatten()
 330 ARMV6HF.glass.directfb.linker = linker
 331 ARMV6HF.glass.directfb.linkFlags = [lensLFlags].flatten()
 332 ARMV6HF.glass.directfb.lib = "glass_lens_dfb"
 333 
 334 ARMV6HF.glass.fb = [:]
 335 ARMV6HF.glass.fb.nativeSource = [
 336     file("modules/graphics/src/main/native-glass/lens"),
 337     file("modules/graphics/src/main/native-glass/lens/wm"),
 338     file("modules/graphics/src/main/native-glass/lens/cursor/fbCursor"),
 339     file("modules/graphics/src/main/native-glass/lens/input/udev"),
 340     file("modules/graphics/src/main/native-glass/lens/wm/screen/fbdevScreen.c") ]
 341 ARMV6HF.glass.fb.compiler = compiler
 342 ARMV6HF.glass.fb.ccFlags = ["-ffast-math", extraCFlags, "-DLINUX"].flatten()
 343 ARMV6HF.glass.fb.linker = linker
 344 ARMV6HF.glass.fb.linkFlags = [lensLFlags].flatten()
 345 ARMV6HF.glass.fb.lib = "glass_lens_fb"
 346 
 347 ARMV6HF.glass.eglx11 = [:]
 348 ARMV6HF.glass.eglx11.nativeSource = [
 349     file("modules/graphics/src/main/native-glass/lens"),
 350     file("modules/graphics/src/main/native-glass/lens/wm"),
 351     file("modules/graphics/src/main/native-glass/lens/cursor/fbCursor"),
 352     file("modules/graphics/src/main/native-glass/lens/input/udev"),
 353     file("modules/graphics/src/main/native-glass/lens/wm/screen/x11ContainerScreen.c")]
 354     //file("modules/graphics/src/main/native-glass/lens/wm/screen")]
 355 ARMV6HF.glass.eglx11.compiler = compiler
 356 ARMV6HF.glass.eglx11.ccFlags = ["-ffast-math", extraCFlags, "-DLINUX"].flatten()
 357 ARMV6HF.glass.eglx11.linker = linker
 358 ARMV6HF.glass.eglx11.linkFlags = [lensLFlags].flatten()
 359 ARMV6HF.glass.eglx11.lib = "glass_lens_eglx11"
 360 
 361 ARMV6HF.glass.gtk = [:]
 362 ARMV6HF.glass.gtk.nativeSource = file("modules/graphics/src/main/native-glass/gtk")
 363 ARMV6HF.glass.gtk.compiler = compiler
 364 ARMV6HF.glass.gtk.ccFlags = ["-ffast-math", gtkCFlags, "-DLINUX"].flatten()
 365 ARMV6HF.glass.gtk.linker = linker
 366 ARMV6HF.glass.gtk.linkFlags = [gtkLFlags, "-lstdc++"].flatten()
 367 ARMV6HF.glass.gtk.lib = "glass"
 368 
 369 ARMV6HF.decora = [:]
 370 ARMV6HF.decora.compiler = compiler
 371 ARMV6HF.decora.ccFlags = extraCFlags
 372 ARMV6HF.decora.linker = linker
 373 ARMV6HF.decora.linkFlags = extraLFlags
 374 ARMV6HF.decora.lib = "decora_sse"
 375 
 376 ARMV6HF.prism = [:]
 377 ARMV6HF.prism.javahInclude = ["com/sun/prism/impl/**/*", "com/sun/prism/PresentableState*"]
 378 ARMV6HF.prism.nativeSource = file("modules/graphics/src/main/native-prism")
 379 ARMV6HF.prism.compiler = compiler
 380 ARMV6HF.prism.ccFlags = [extraCFlags].flatten()
 381 ARMV6HF.prism.linker = linker
 382 ARMV6HF.prism.linkFlags = [extraLFlags, "-lX11", "-lXext", "-lXdmcp", "-lXau"].flatten()
 383 ARMV6HF.prism.lib = "prism_common"
 384 
 385 ARMV6HF.prismSW = [:]
 386 ARMV6HF.prismSW.javahInclude = ["com/sun/pisces/**/*"]
 387 ARMV6HF.prismSW.nativeSource = file("modules/graphics/src/main/native-prism-sw")
 388 ARMV6HF.prismSW.compiler = compiler
 389 ARMV6HF.prismSW.ccFlags = [extraCFlags].flatten()
 390 ARMV6HF.prismSW.linker = linker
 391 ARMV6HF.prismSW.linkFlags = [extraLFlags].flatten()
 392 ARMV6HF.prismSW.lib = "prism_sw"
 393 
 394 ARMV6HF.iio = [:]
 395 ARMV6HF.iio.javahInclude = ["com/sun/javafx/iio/**/*"]
 396 ARMV6HF.iio.nativeSource = [
 397     file("modules/graphics/src/main/native-iio"),
 398     file("modules/graphics/src/main/native-iio/libjpeg7")]
 399 ARMV6HF.iio.compiler = compiler
 400 ARMV6HF.iio.ccFlags = iioCFlags
 401 ARMV6HF.iio.linker = linker
 402 ARMV6HF.iio.linkFlags = iioLFlags
 403 ARMV6HF.iio.lib = "javafx_iio"
 404 
 405 ARMV6HF.prismES2 = [:]
 406 ARMV6HF.prismES2.variants = ["eglfb"]
 407 ARMV6HF.prismES2.javahInclude = ["com/sun/prism/es2/**/*"]
 408 
 409 ARMV6HF.prismES2.eglfb = [:]
 410 ARMV6HF.prismES2.eglfb.nativeSource = [
 411     file("modules/graphics/src/main/native-prism-es2"),
 412     file("modules/graphics/src/main/native-prism-es2/GL"),
 413     file("modules/graphics/src/main/native-prism-es2/eglfb")
 414 ]
 415 ARMV6HF.prismES2.eglfb.compiler = compiler
 416 ARMV6HF.prismES2.eglfb.ccFlags = [ es2EglfbCFlags, "-I", ARMV6HF.glass.lensport.nativeSource ].flatten()
 417 ARMV6HF.prismES2.eglfb.linker = linker
 418 ARMV6HF.prismES2.eglfb.linkFlags = es2EglfbLFlags
 419 ARMV6HF.prismES2.eglfb.lib = "prism_es2_eglfb"
 420 
 421 ARMV6HF.prismES2.eglx11 = [:]
 422 ARMV6HF.prismES2.eglx11.nativeSource = [
 423     file("modules/graphics/src/main/native-prism-es2"),
 424     file("modules/graphics/src/main/native-prism-es2/GL"),
 425     file("modules/graphics/src/main/native-prism-es2/eglx11")
 426 ]
 427 ARMV6HF.prismES2.eglx11.compiler = compiler
 428 ARMV6HF.prismES2.eglx11.ccFlags = es2X11CFlags
 429 ARMV6HF.prismES2.eglx11.linker = linker
 430 ARMV6HF.prismES2.eglx11.linkFlags = es2X11LFlags
 431 ARMV6HF.prismES2.eglx11.lib = "prism_es2_eglx11"
 432 
 433 def closedDir = file("$projectDir/../rt-closed")
 434 ARMV6HF.font = [:]
 435 ARMV6HF.font.javahInclude = [
 436     "com/sun/javafx/font/**/*",
 437     "com/sun/javafx/text/**/*"]
 438 ARMV6HF.font.nativeSource = [file("modules/graphics/src/main/native-font")]
 439 ARMV6HF.font.compiler = compiler
 440 ARMV6HF.font.ccFlags = fontCFlags
 441 ARMV6HF.font.linker = linker
 442 ARMV6HF.font.linkFlags = fontLFlags
 443 ARMV6HF.font.lib = "javafx_font"
 444 
 445 ARMV6HF.fontT2K = [:]
 446 ARMV6HF.fontT2K.javahInclude = ["com/sun/javafx/font/t2k/**/*"]
 447 ARMV6HF.fontT2K.nativeSource = [
 448         file("$closedDir/javafx-font-t2k-native/src"),
 449         file("$closedDir/javafx-font-t2k-native/src/layout")]
 450 ARMV6HF.fontT2K.compiler = compiler
 451 ARMV6HF.fontT2K.ccFlags = [fontCFlags, "-DLE_STANDALONE"].flatten()
 452 ARMV6HF.fontT2K.linker = linker
 453 ARMV6HF.fontT2K.linkFlags = fontLFlags
 454 ARMV6HF.fontT2K.lib = "javafx_font_t2k"
 455 
 456 ARMV6HF.fontFreetype = [:]
 457 ARMV6HF.fontFreetype.javahInclude = ["com/sun/javafx/font/freetype/OSFreetype.class*"]
 458 ARMV6HF.fontFreetype.nativeSource = ["src/main/native-font/freetype.c"]
 459 ARMV6HF.fontFreetype.compiler = compiler
 460 ARMV6HF.fontFreetype.ccFlags = ["-DJFXFONT_PLUS", ccFlags, fontCFlags, freetypeCCFlags].flatten()
 461 ARMV6HF.fontFreetype.linker = linker
 462 ARMV6HF.fontFreetype.linkFlags = [linkFlags, fontLFlags, freetypeLinkFlags].flatten()
 463 ARMV6HF.fontFreetype.lib = "javafx_font_freetype"
 464 
 465 ARMV6HF.fontPango = [:]
 466 ARMV6HF.fontPango.javahInclude = ["com/sun/javafx/font/freetype/OSPango.class"]
 467 ARMV6HF.fontPango.nativeSource = ["src/main/native-font/pango.c"]
 468 ARMV6HF.fontPango.compiler = compiler
 469 ARMV6HF.fontPango.ccFlags = ["-DJFXFONT_PLUS", ccFlags, pangoCCFlags].flatten()
 470 ARMV6HF.fontPango.linker = linker
 471 ARMV6HF.fontPango.linkFlags = [linkFlags, pangoLinkFlags].flatten()
 472 ARMV6HF.fontPango.lib = "javafx_font_pango"
 473 
 474 ARMV6HF.webkit = [:]
 475 ARMV6HF.webkit.binDir   = "$compilerHome/bin"
 476 ARMV6HF.webkit.compiler = compiler
 477 ARMV6HF.webkit.linker   = linker
 478 ARMV6HF.webkit.ar       = file("$compilerHome/bin/arm-linux-gnueabihf-ar").getAbsolutePath()
 479 ARMV6HF.webkit.objcopy  = file("$compilerHome/bin/arm-linux-gnueabihf-objcopy").getAbsolutePath()
 480 ARMV6HF.webkit.strip    = file("$compilerHome/bin/arm-linux-gnueabihf-strip").getAbsolutePath()
 481 ARMV6HF.webkit.ccFlags  = extraCFlags.join(' ')
 482 ARMV6HF.webkit.linkFlags = extraLFlags.join(' ')
 483 
 484 ARMV6HF.media = [:]
 485 ARMV6HF.media.compiler = compiler
 486 ARMV6HF.media.linker = linker
 487 ARMV6HF.media.extra_cflags = mediaCFlags.join(' ')
 488 ARMV6HF.media.extra_ldflags = mediaLFlags.join(' ')