buildSrc/armv6sf.gradle

Print this page
rev 7322 : RT-37594: Make lens build optional
Reviewed-by:


  35 def compilerHome=file("/opt/arm-linaro-4.7")
  36 if (rootProject.hasProperty("ARMV6SF_COMPILER")) {
  37     logger.quiet "Using alternate ARMV6SF_COMPILER $rootProject.ARMV6SF_COMPILER"
  38     compilerHome=file(rootProject.ARMV6SF_COMPILER);
  39 }
  40 def compilerPrefix="arm-linux-gnueabi-"
  41 if (rootProject.hasProperty("ARMV6SF_COMPILER_PREFIX")) {
  42     logger.quiet "Using alternate ARMV6SF_COMPILER_PREFIX $rootProject.ARMV6SF_COMPILER_PREFIX"
  43     compilerPrefix="${rootProject.ARMV6SF_COMPILER_PREFIX}"
  44 }
  45 def jniPlatform
  46 if (IS_LINUX) {
  47     jniPlatform="linux"
  48 } else if (IS_MAC) {
  49     jniPlatform="darwin"
  50 } else {
  51     fail "armv6sf Cannot build on this platform"
  52     return;
  53 }
  54 



  55 // Declare whether this particular target file applies to the current system
  56 ARMV6SF.canBuild = (IS_LINUX || IS_MAC) && compilerHome.exists() && sdk.exists()
  57 if (!ARMV6SF.canBuild) {
  58     if (!compilerHome.exists()) println "ERROR: Missing compiler $compilerHome"
  59     if (!sdk.exists()) println "ERROR: Missing sdk $sdk"
  60     fail("armv6sf missing required tools")
  61 }
  62 
  63 // Lambda for naming the generated libs
  64 ARMV6SF.library = { name -> return "lib${name}.so" as String }
  65 
  66 ARMV6SF.compileSwing = false;
  67 ARMV6SF.compileSWT = false;
  68 ARMV6SF.compileFXPackager = false;
  69 ARMV6SF.compileDesignTime = false;
  70 
  71 ARMV6SF.includeLens = true

  72 ARMV6SF.includeNull3d = true
  73 ARMV6SF.includeEGL = true
  74 ARMV6SF.includeSwing = false
  75 ARMV6SF.includeSWT = false
  76 ARMV6SF.includeGTK = true
  77 


  78 // Libraries end up in the sdk/rt/lib/arm directory for arm builds
  79 ARMV6SF.arch = "arm"
  80 ARMV6SF.libDest = "lib/arm"
  81 
  82 def commonFlags = [
  83         "-fno-strict-aliasing", "-fPIC", "-fno-omit-frame-pointer", // optimization flags
  84         "-W", "-Wall", "-Wno-unused", "-Wno-parentheses", "-Werror=implicit-function-declaration"] // warning flags
  85 // Specify the compilation parameters and link parameters
  86 def ccFlags = [
  87         commonFlags, "-I$JDK_HOME/include", "-I$JDK_HOME/include/$jniPlatform", "-c",
  88         IS_DEBUG_NATIVE ? ["-ggdb", "-DVERBOSE"] : ["-O2", "-DNDEBUG"]].flatten()
  89 //ccFlags.addAll(["-Wnon-virtual-dtor", "-Woverloaded-virtual", "-std=c++0x"])
  90 def linkFlags = ["-shared", commonFlags].flatten()
  91 
  92 // Specify the compilation parameters and link parameters
  93 def extraCFlags = [
  94         "-I", "-L",
  95         ccFlags,
  96         "-march=armv6", "-mfloat-abi=softfp", "-mfpu=vfp",
  97         "-I$sdk/usr/include",


 166         ByteArrayOutputStream results = new ByteArrayOutputStream();
 167         exec {
 168             commandLine("$sdk/bin/pkg-config", "--cflags", "gtk+-2.0", "gthread-2.0", "xtst");
 169             setStandardOutput(results);
 170         }
 171         propFile << "cflags=" << results.toString().trim() << "\n";
 172 
 173         results = new ByteArrayOutputStream();
 174         exec {
 175             commandLine "$sdk/bin/pkg-config", "--libs", "gtk+-2.0", "gthread-2.0", "xtst"
 176             standardOutput = results
 177         }
 178         propFile << "libs=" << results.toString().trim();
 179     },
 180     { properties ->
 181         gtkCFlags.addAll(properties.getProperty("cflags").split(" "))
 182         gtkLFlags.addAll(properties.getProperty("libs").split(" "))
 183     }
 184 )
 185 
 186 ARMV6SF.javafxPlatformProperties = """javafx.platform=monocle


















 187 directfb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 188 directfb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 189 directfb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 190 directfb.glass.platform=Lens
 191 directfb.glass.lens=dfb
 192 directfb.prism.order=sw
 193 directfb.com.sun.javafx.isEmbedded=true
 194 directfb.com.sun.javafx.scene.control.skin.FXVK.cache=true
 195 directfb.com.sun.javafx.gestures.zoom=true
 196 directfb.com.sun.javafx.gestures.rotate=true
 197 directfb.com.sun.javafx.gestures.scroll=true
 198 eglfb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 199 eglfb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 200 eglfb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 201 eglfb.maxTextureSize=2048
 202 eglfb.glass.platform=Lens
 203 eglfb.glass.lens=eglfb
 204 eglfb.prism.order=es2
 205 eglfb.prism.eglfb=true
 206 eglfb.prism.lcdtext=false
 207 eglfb.prism.maxvram=128m
 208 eglfb.prism.targetvram=112m
 209 eglfb.use.egl=true
 210 eglfb.doNativeComposite=true
 211 eglfb.use.gles2=true
 212 eglfb.embedded=eglfb
 213 eglfb.com.sun.javafx.isEmbedded=true

 214 eglfb.com.sun.javafx.scene.control.skin.FXVK.cache=true
 215 eglfb.prism.glDepthSize=0
 216 eglfb.com.sun.javafx.gestures.zoom=true
 217 eglfb.com.sun.javafx.gestures.rotate=true
 218 eglfb.com.sun.javafx.gestures.scroll=true
 219 fb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 220 fb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 221 fb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 222 fb.glass.platform=Lens
 223 fb.glass.lens=fb
 224 fb.prism.order=sw
 225 fb.com.sun.javafx.isEmbedded=true
 226 fb.glass.restrictWindowToScreen=true
 227 fb.com.sun.javafx.scene.control.skin.FXVK.cache=true
 228 fb.com.sun.javafx.gestures.zoom=true
 229 fb.com.sun.javafx.gestures.rotate=true
 230 fb.com.sun.javafx.gestures.scroll=true
 231 monocle.glass.platform=Monocle
 232 monocle.prism.order=es2,sw
 233 monocle.prism.eglfb=true
 234 monocle.prism.lcdtext=false
 235 monocle.prism.maxvram=128m
 236 monocle.prism.targetvram=112m
 237 monocle.use.egl=true
 238 monocle.use.gles2=true
 239 monocle.embedded=monocle
 240 monocle.com.sun.javafx.isEmbedded=true
 241 monocle.doNativeComposite=true
 242 monocle.com.sun.javafx.scene.control.skin.FXVK.cache=true
 243 monocle.prism.glDepthSize=0
 244 monocle.com.sun.javafx.gestures.zoom=true
 245 monocle.com.sun.javafx.gestures.rotate=true
 246 monocle.com.sun.javafx.gestures.scroll=true
 247 eglx11.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 248 eglx11.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 249 eglx11.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 250 eglx11.glass.platform=Lens
 251 eglx11.glass.lens=eglx11
 252 eglx11.prism.order=es2
 253 eglx11.prism.eglx11=true
 254 eglx11.prism.lcdtext=false
 255 eglx11.prism.maxvram=128m
 256 eglx11.prism.targetvram=112m
 257 eglx11.use.egl=true
 258 eglx11.use.gles2=true
 259 eglx11.embedded=eglx11
 260 eglx11.com.sun.javafx.isEmbedded=true
 261 eglx11.com.sun.javafx.scene.control.skin.FXVK.cache=true
 262 eglx11.prism.glDepthSize=0
 263 eglx11.com.sun.javafx.gestures.zoom=true
 264 eglx11.com.sun.javafx.gestures.rotate=true
 265 eglx11.com.sun.javafx.gestures.scroll=true


 266 gtk.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 267 gtk.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 268 gtk.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 269 gtk.glass.platform=gtk
 270 gtk.prism.order=sw
 271 gtk.com.sun.javafx.isEmbedded=true
 272 gtk.com.sun.javafx.scene.control.skin.FXVK.cache=true
 273 gtk.com.sun.javafx.gestures.zoom=true
 274 gtk.com.sun.javafx.gestures.rotate=true
 275 gtk.com.sun.javafx.gestures.scroll=true"""
 276 
 277 def pangoCCFlags = [extraCFlags, "-D_ENABLE_PANGO"];
 278 def pangoLinkFlags = [extraLFlags];
 279 setupTools("armv6sf_pango_tools",
 280     { propFile ->
 281         ByteArrayOutputStream results = new ByteArrayOutputStream();
 282         exec {
 283             commandLine "$sdk/bin/pkg-config", "--cflags", "pangoft2"
 284             standardOutput = results
 285         }


 306         ByteArrayOutputStream results = new ByteArrayOutputStream();
 307         exec {
 308             commandLine "$sdk/bin/pkg-config", "--cflags", "freetype2"
 309             standardOutput = results
 310         }
 311         propFile << "cflags=" << results.toString().trim() << "\n";
 312 
 313         results = new ByteArrayOutputStream();
 314         exec {
 315             commandLine "$sdk/bin/pkg-config", "--libs", "freetype2"
 316             standardOutput = results
 317         }
 318         propFile << "libs=" << results.toString().trim();
 319     },
 320     { properties ->
 321         freetypeCCFlags.addAll(properties.getProperty("cflags").split(" "))
 322         freetypeLinkFlags.addAll(properties.getProperty("libs").split(" "))
 323     }
 324 )
 325 
 326 def compiler = file("$compilerHome/bin/${compilerPrefix}gcc").getAbsolutePath()
 327 def linker = file("$compilerHome/bin/${compilerPrefix}g++").getAbsolutePath()
 328 
 329 ARMV6SF.glass = [:]
 330 ARMV6SF.glass.variants = ["eglfb", "directfb", "fb", "gtk", "lensport", "monocle", "monocle_x11" ]
 331 ARMV6SF.glass.javahInclude = [
 332     "com/sun/glass/events/**",
 333     "com/sun/glass/ui/*",
 334     "com/sun/glass/ui/lens/*",








 335     "com/sun/glass/ui/monocle/*",


 336     "com/sun/glass/ui/monocle/linux/*",
 337     "com/sun/glass/ui/monocle/util/*",
 338     "com/sun/glass/ui/monocle/x11/*",
 339     "com/sun/glass/ui/gtk/*"]







 340 ARMV6SF.glass.lib = "glass"
 341 
 342 ARMV6SF.glass.lensport = [:]
 343 ARMV6SF.glass.lensport.nativeSource = [
 344     file("modules/graphics/src/main/native-glass/lens/lensport") ]
 345 ARMV6SF.glass.lensport.compiler = compiler
 346 ARMV6SF.glass.lensport.ccFlags = ["-ffast-math", extraCFlags, "-DLINUX", "-DISEGLFB",
 347     "-DLENSPORT", "-I", file("modules/graphics/src/main/native-glass/lens/")].flatten()
 348 ARMV6SF.glass.lensport.linker = linker
 349 ARMV6SF.glass.lensport.linkFlags = [lensLFlags].flatten()
 350 ARMV6SF.glass.lensport.lib = "lens_porting"
 351 
 352 ARMV6SF.glass.monocle = [:]
 353 ARMV6SF.glass.monocle.nativeSource = [
 354         file("modules/graphics/src/main/native-glass/monocle"),
 355         file("modules/graphics/src/main/native-glass/monocle/linux"),
 356         file("modules/graphics/src/main/native-glass/monocle/util") ]
 357 ARMV6SF.glass.monocle.compiler = compiler
 358 ARMV6SF.glass.monocle.ccFlags = monocleCFlags
 359 ARMV6SF.glass.monocle.linker = linker




  35 def compilerHome=file("/opt/arm-linaro-4.7")
  36 if (rootProject.hasProperty("ARMV6SF_COMPILER")) {
  37     logger.quiet "Using alternate ARMV6SF_COMPILER $rootProject.ARMV6SF_COMPILER"
  38     compilerHome=file(rootProject.ARMV6SF_COMPILER);
  39 }
  40 def compilerPrefix="arm-linux-gnueabi-"
  41 if (rootProject.hasProperty("ARMV6SF_COMPILER_PREFIX")) {
  42     logger.quiet "Using alternate ARMV6SF_COMPILER_PREFIX $rootProject.ARMV6SF_COMPILER_PREFIX"
  43     compilerPrefix="${rootProject.ARMV6SF_COMPILER_PREFIX}"
  44 }
  45 def jniPlatform
  46 if (IS_LINUX) {
  47     jniPlatform="linux"
  48 } else if (IS_MAC) {
  49     jniPlatform="darwin"
  50 } else {
  51     fail "armv6sf Cannot build on this platform"
  52     return;
  53 }
  54 
  55 def compiler = file("$compilerHome/bin/${compilerPrefix}gcc").getAbsolutePath()
  56 def linker = file("$compilerHome/bin/${compilerPrefix}g++").getAbsolutePath()
  57 
  58 // Declare whether this particular target file applies to the current system
  59 ARMV6SF.canBuild = (IS_LINUX || IS_MAC) && compilerHome.exists() && sdk.exists()
  60 if (!ARMV6SF.canBuild) {
  61     if (!compilerHome.exists()) println "ERROR: Missing compiler $compilerHome"
  62     if (!sdk.exists()) println "ERROR: Missing sdk $sdk"
  63     fail("armv6sf missing required tools")
  64 }
  65 
  66 // Lambda for naming the generated libs
  67 ARMV6SF.library = { name -> return "lib${name}.so" as String }
  68 
  69 ARMV6SF.compileSwing = false;
  70 ARMV6SF.compileSWT = false;
  71 ARMV6SF.compileFXPackager = false;
  72 ARMV6SF.compileDesignTime = false;
  73 
  74 ARMV6SF.includeLens = true
  75 ARMV6SF.includeMonocle = true
  76 ARMV6SF.includeNull3d = true
  77 ARMV6SF.includeEGL = true
  78 ARMV6SF.includeSwing = false
  79 ARMV6SF.includeSWT = false
  80 ARMV6SF.includeGTK = true
  81 
  82 ARMV6SF.javafxPlatformDefault="monocle"
  83 
  84 // Libraries end up in the sdk/rt/lib/arm directory for arm builds
  85 ARMV6SF.arch = "arm"
  86 ARMV6SF.libDest = "lib/arm"
  87 
  88 def commonFlags = [
  89         "-fno-strict-aliasing", "-fPIC", "-fno-omit-frame-pointer", // optimization flags
  90         "-W", "-Wall", "-Wno-unused", "-Wno-parentheses", "-Werror=implicit-function-declaration"] // warning flags
  91 // Specify the compilation parameters and link parameters
  92 def ccFlags = [
  93         commonFlags, "-I$JDK_HOME/include", "-I$JDK_HOME/include/$jniPlatform", "-c",
  94         IS_DEBUG_NATIVE ? ["-ggdb", "-DVERBOSE"] : ["-O2", "-DNDEBUG"]].flatten()
  95 //ccFlags.addAll(["-Wnon-virtual-dtor", "-Woverloaded-virtual", "-std=c++0x"])
  96 def linkFlags = ["-shared", commonFlags].flatten()
  97 
  98 // Specify the compilation parameters and link parameters
  99 def extraCFlags = [
 100         "-I", "-L",
 101         ccFlags,
 102         "-march=armv6", "-mfloat-abi=softfp", "-mfpu=vfp",
 103         "-I$sdk/usr/include",


 172         ByteArrayOutputStream results = new ByteArrayOutputStream();
 173         exec {
 174             commandLine("$sdk/bin/pkg-config", "--cflags", "gtk+-2.0", "gthread-2.0", "xtst");
 175             setStandardOutput(results);
 176         }
 177         propFile << "cflags=" << results.toString().trim() << "\n";
 178 
 179         results = new ByteArrayOutputStream();
 180         exec {
 181             commandLine "$sdk/bin/pkg-config", "--libs", "gtk+-2.0", "gthread-2.0", "xtst"
 182             standardOutput = results
 183         }
 184         propFile << "libs=" << results.toString().trim();
 185     },
 186     { properties ->
 187         gtkCFlags.addAll(properties.getProperty("cflags").split(" "))
 188         gtkLFlags.addAll(properties.getProperty("libs").split(" "))
 189     }
 190 )
 191 
 192 def monoclePlatformAdditions = """
 193 monocle.glass.platform=Monocle
 194 monocle.prism.order=es2,sw
 195 monocle.prism.eglfb=true
 196 monocle.prism.lcdtext=false
 197 monocle.prism.maxvram=128m
 198 monocle.prism.targetvram=112m
 199 monocle.use.egl=true
 200 monocle.use.gles2=true
 201 monocle.embedded=monocle
 202 monocle.com.sun.javafx.isEmbedded=true
 203 monocle.doNativeComposite=true
 204 monocle.com.sun.javafx.scene.control.skin.FXVK.cache=true
 205 monocle.prism.glDepthSize=0
 206 monocle.com.sun.javafx.gestures.zoom=true
 207 monocle.com.sun.javafx.gestures.rotate=true
 208 monocle.com.sun.javafx.gestures.scroll=true"""
 209 
 210 def lensPlatformAdditions = """
 211 directfb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 212 directfb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 213 directfb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 214 directfb.glass.platform=Lens
 215 directfb.glass.lens=dfb
 216 directfb.prism.order=sw
 217 directfb.com.sun.javafx.isEmbedded=true
 218 directfb.com.sun.javafx.scene.control.skin.FXVK.cache=true
 219 directfb.com.sun.javafx.gestures.zoom=true
 220 directfb.com.sun.javafx.gestures.rotate=true
 221 directfb.com.sun.javafx.gestures.scroll=true
 222 eglfb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 223 eglfb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 224 eglfb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 225 eglfb.maxTextureSize=2048
 226 eglfb.glass.platform=Lens
 227 eglfb.glass.lens=eglfb
 228 eglfb.prism.order=es2
 229 eglfb.prism.eglfb=true
 230 eglfb.prism.lcdtext=false
 231 eglfb.prism.maxvram=128m
 232 eglfb.prism.targetvram=112m
 233 eglfb.use.egl=true

 234 eglfb.use.gles2=true
 235 eglfb.embedded=eglfb
 236 eglfb.com.sun.javafx.isEmbedded=true
 237 eglfb.doNativeComposite=true
 238 eglfb.com.sun.javafx.scene.control.skin.FXVK.cache=true
 239 eglfb.prism.glDepthSize=0
 240 eglfb.com.sun.javafx.gestures.zoom=true
 241 eglfb.com.sun.javafx.gestures.rotate=true
 242 eglfb.com.sun.javafx.gestures.scroll=true
 243 fb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 244 fb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 245 fb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 246 fb.glass.platform=Lens
 247 fb.glass.lens=fb
 248 fb.prism.order=sw
 249 fb.com.sun.javafx.isEmbedded=true
 250 fb.glass.restrictWindowToScreen=true
 251 fb.com.sun.javafx.scene.control.skin.FXVK.cache=true
 252 fb.com.sun.javafx.gestures.zoom=true
 253 fb.com.sun.javafx.gestures.rotate=true
 254 fb.com.sun.javafx.gestures.scroll=true
















 255 eglx11.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 256 eglx11.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 257 eglx11.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 258 eglx11.glass.platform=Lens
 259 eglx11.glass.lens=eglx11
 260 eglx11.prism.order=es2
 261 eglx11.prism.eglx11=true
 262 eglx11.prism.lcdtext=false
 263 eglx11.prism.maxvram=128m
 264 eglx11.prism.targetvram=112m
 265 eglx11.use.egl=true
 266 eglx11.use.gles2=true
 267 eglx11.embedded=eglx11
 268 eglx11.com.sun.javafx.isEmbedded=true
 269 eglx11.com.sun.javafx.scene.control.skin.FXVK.cache=true
 270 eglx11.prism.glDepthSize=0
 271 eglx11.com.sun.javafx.gestures.zoom=true
 272 eglx11.com.sun.javafx.gestures.rotate=true
 273 eglx11.com.sun.javafx.gestures.scroll=true"""
 274 
 275 def gtkPlatformAdditions = """
 276 gtk.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 277 gtk.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 278 gtk.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 279 gtk.glass.platform=gtk
 280 gtk.prism.order=sw
 281 gtk.com.sun.javafx.isEmbedded=true
 282 gtk.com.sun.javafx.scene.control.skin.FXVK.cache=true
 283 gtk.com.sun.javafx.gestures.zoom=true
 284 gtk.com.sun.javafx.gestures.rotate=true
 285 gtk.com.sun.javafx.gestures.scroll=true"""
 286 
 287 def pangoCCFlags = [extraCFlags, "-D_ENABLE_PANGO"];
 288 def pangoLinkFlags = [extraLFlags];
 289 setupTools("armv6sf_pango_tools",
 290     { propFile ->
 291         ByteArrayOutputStream results = new ByteArrayOutputStream();
 292         exec {
 293             commandLine "$sdk/bin/pkg-config", "--cflags", "pangoft2"
 294             standardOutput = results
 295         }


 316         ByteArrayOutputStream results = new ByteArrayOutputStream();
 317         exec {
 318             commandLine "$sdk/bin/pkg-config", "--cflags", "freetype2"
 319             standardOutput = results
 320         }
 321         propFile << "cflags=" << results.toString().trim() << "\n";
 322 
 323         results = new ByteArrayOutputStream();
 324         exec {
 325             commandLine "$sdk/bin/pkg-config", "--libs", "freetype2"
 326             standardOutput = results
 327         }
 328         propFile << "libs=" << results.toString().trim();
 329     },
 330     { properties ->
 331         freetypeCCFlags.addAll(properties.getProperty("cflags").split(" "))
 332         freetypeLinkFlags.addAll(properties.getProperty("libs").split(" "))
 333     }
 334 )
 335 
 336 ARMV6SF.javafxPlatformProperties = "javafx.platform=${ARMV6SF.javafxPlatformDefault}"

 337 
 338 ARMV6SF.glass = [:]

 339 ARMV6SF.glass.javahInclude = [
 340     "com/sun/glass/events/**",
 341     "com/sun/glass/ui/*"]
 342 ARMV6SF.glass.variants = [ ]
 343 if (ARMV6SF.includeLens) { 
 344     ARMV6SF.glass.variants.addAll("eglfb", "directfb", "fb", "lensport" );
 345     ARMV6SF.glass.javahInclude.addAll("com/sun/glass/ui/lens/*");
 346     ARMV6SF.javafxPlatformProperties = ARMV6SF.javafxPlatformProperties + lensPlatformAdditions
 347 }
 348 if (ARMV6SF.includeMonocle) { 
 349     ARMV6SF.glass.variants.addAll("monocle", "monocle_x11");
 350     ARMV6SF.glass.javahInclude.addAll(
 351         "com/sun/glass/ui/monocle/*",
 352         "com/sun/glass/ui/monocle/dispman/*",
 353         "com/sun/glass/ui/monocle/mx6/*",
 354         "com/sun/glass/ui/monocle/linux/*",
 355         "com/sun/glass/ui/monocle/util/*",
 356         "com/sun/glass/ui/monocle/x11/*");
 357     ARMV6SF.javafxPlatformProperties = ARMV6SF.javafxPlatformProperties + monoclePlatformAdditions
 358 }
 359 if (ARMV6SF.includeGTK) {
 360     ARMV6SF.glass.variants.addAll("gtk");
 361     ARMV6SF.glass.javahInclude.addAll("com/sun/glass/ui/gtk/*");
 362     ARMV6SF.javafxPlatformProperties = ARMV6SF.javafxPlatformProperties + gtkPlatformAdditions
 363 }
 364 
 365 ARMV6SF.glass.lib = "glass"
 366 
 367 ARMV6SF.glass.lensport = [:]
 368 ARMV6SF.glass.lensport.nativeSource = [
 369     file("modules/graphics/src/main/native-glass/lens/lensport") ]
 370 ARMV6SF.glass.lensport.compiler = compiler
 371 ARMV6SF.glass.lensport.ccFlags = ["-ffast-math", extraCFlags, "-DLINUX", "-DISEGLFB",
 372     "-DLENSPORT", "-I", file("modules/graphics/src/main/native-glass/lens/")].flatten()
 373 ARMV6SF.glass.lensport.linker = linker
 374 ARMV6SF.glass.lensport.linkFlags = [lensLFlags].flatten()
 375 ARMV6SF.glass.lensport.lib = "lens_porting"
 376 
 377 ARMV6SF.glass.monocle = [:]
 378 ARMV6SF.glass.monocle.nativeSource = [
 379         file("modules/graphics/src/main/native-glass/monocle"),
 380         file("modules/graphics/src/main/native-glass/monocle/linux"),
 381         file("modules/graphics/src/main/native-glass/monocle/util") ]
 382 ARMV6SF.glass.monocle.compiler = compiler
 383 ARMV6SF.glass.monocle.ccFlags = monocleCFlags
 384 ARMV6SF.glass.monocle.linker = linker