38 pkgconfig="${sdk}/bin/pkg-config"
39 } else {
40 jniPlatform="linux"
41 sdk=""
42 pkgconfig="pkg-config"
43 }
44
45 if (rootProject.hasProperty("X86EGL_COMPILER")) {
46 logger.quiet "Using alternate X86EGL_COMPILER $rootProject.X86EGL_COMPILER"
47 compilerHome=file(rootProject.X86EGL_COMPILER);
48 } else {
49 compilerHome=file("/usr");
50 }
51 if (rootProject.hasProperty("X86EGL_COMPILER_PREFIX")) {
52 logger.quiet "Using alternate X86EGL_COMPILER_PREFIX $rootProject.X86EGL_COMPILER_PREFIX"
53 compilerPrefix="${rootProject.X86EGL_COMPILER_PREFIX}"
54 } else {
55 compilerPrefix=""
56 }
57
58 // Declare whether this particular target file applies to the current system
59 X86EGL.canBuild = (IS_LINUX || IS_MAC) && compilerHome.exists()
60 if (!X86EGL.canBuild) {
61 return;
62 }
63
64 // Lambda for naming the generated libs
65 X86EGL.library = { name -> return "lib${name}.so" as String }
66
67 X86EGL.compileSwing = false;
68 X86EGL.compileSWT = false;
69 X86EGL.compileFXPackager = false;
70 X86EGL.compileDesignTime = false;
71 X86EGL.compileWebnodeNative = false;
72 X86EGL.compileMediaNative = false;
73
74 X86EGL.includeLens = true
75 X86EGL.includeNull3d = true
76 X86EGL.includeEGL = true
77 X86EGL.includeSwing = false
78 X86EGL.includeSWT = false
79 X86EGL.includeGTK = true
80
81 // Libraries end up in the sdk/rt/lib/[i386|amd46] directory depending on machine arch
82 if (rootProject.hasProperty("X86EGL_ARCH")) {
83 X86EGL.arch = X86EGL_ARCH
84 X86EGL.libDest = "lib/${X86EGL_ARCH}"
85 } else {
86 X86EGL.arch = OS_ARCH
87 X86EGL.libDest = "lib/${OS_ARCH}"
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,
96 "-I$JDK_HOME/include", "-I$JDK_HOME/include/${jniPlatform}", "-c",
97 IS_DEBUG_NATIVE ? ["-ggdb", "-DVERBOSE"] : ["-O2", "-DNDEBUG"]].flatten()
98 //ccFlags.addAll(["-Wnon-virtual-dtor", "-Woverloaded-virtual", "-std=c++0x"])
99 def linkFlags = ["-shared", commonFlags].flatten()
100
150 commandLine("$pkgconfig", "--cflags", "gtk+-2.0",
151 "gthread-2.0", "xtst");
152 setStandardOutput(results);
153 }
154 propFile << "cflags=" << results.toString().trim() << "\n";
155
156 results = new ByteArrayOutputStream();
157 exec {
158 commandLine "$pkgconfig", "--libs", "gtk+-2.0",
159 "gthread-2.0", "xtst"
160 standardOutput = results
161 }
162 propFile << "libs=" << results.toString().trim();
163 },
164 { properties ->
165 gtkCFlags.addAll(properties.getProperty("cflags").split(" "))
166 gtkLFlags.addAll(properties.getProperty("libs").split(" "))
167 }
168 )
169
170 X86EGL.javafxPlatformProperties ="""javafx.platform=monocle
171 directfb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
172 directfb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
173 directfb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
174 directfb.glass.platform=Lens
175 directfb.glass.lens=dfb
176 directfb.prism.order=sw
177 directfb.com.sun.javafx.isEmbedded=true
178 directfb.com.sun.javafx.scene.control.skin.FXVK.cache=true
179 directfb.com.sun.javafx.gestures.zoom=true
180 directfb.com.sun.javafx.gestures.rotate=true
181 directfb.com.sun.javafx.gestures.scroll=true
182 eglfb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
183 eglfb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
184 eglfb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
185 eglfb.glass.platform=Lens
186 eglfb.glass.lens=eglfb
187 eglfb.prism.order=es2
188 eglfb.prism.eglfb=true
189 eglfb.prism.lcdtext=false
190 eglfb.use.egl=true
191 eglfb.use.gles2=true
192 eglfb.embedded=eglfb
193 eglfb.com.sun.javafx.isEmbedded=true
194 eglfb.doNativeComposite=true
195 eglfb.com.sun.javafx.scene.control.skin.FXVK.cache=true
196 eglfb.com.sun.javafx.gestures.zoom=true
197 eglfb.com.sun.javafx.gestures.rotate=true
198 eglfb.com.sun.javafx.gestures.scroll=true
199 fb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
200 fb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
201 fb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
202 fb.glass.platform=Lens
203 fb.glass.lens=fb
204 fb.prism.order=sw
205 fb.com.sun.javafx.isEmbedded=true
206 fb.glass.restrictWindowToScreen=true
207 fb.com.sun.javafx.scene.control.skin.FXVK.cache=true
208 fb.com.sun.javafx.gestures.zoom=true
209 fb.com.sun.javafx.gestures.rotate=true
210 fb.com.sun.javafx.gestures.scroll=true
211 monocle.glass.platform=Monocle
212 monocle.prism.order=es2,sw
213 monocle.prism.eglfb=true
214 monocle.prism.lcdtext=false
215 monocle.prism.maxvram=128m
216 monocle.prism.targetvram=112m
217 monocle.use.egl=true
218 monocle.use.gles2=true
219 monocle.embedded=monocle
220 monocle.com.sun.javafx.isEmbedded=true
221 monocle.doNativeComposite=true
222 monocle.com.sun.javafx.scene.control.skin.FXVK.cache=true
223 monocle.com.sun.javafx.gestures.zoom=true
224 monocle.com.sun.javafx.gestures.rotate=true
225 monocle.com.sun.javafx.gestures.scroll=true
226 monocle.prism.glDepthSize=0
227 eglx11.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
228 eglx11.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
229 eglx11.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
230 eglx11.glass.platform=Lens
231 eglx11.glass.lens=eglx11
232 eglx11.prism.order=es2
233 eglx11.prism.eglx11=true
234 eglx11.prism.lcdtext=false
235 eglx11.use.egl=true
236 eglx11.use.gles2=true
237 eglx11.embedded=eglx11
238 eglx11.com.sun.javafx.isEmbedded=true
239 eglx11.com.sun.javafx.scene.control.skin.FXVK.cache=true
240 eglx11.com.sun.javafx.gestures.zoom=true
241 eglx11.com.sun.javafx.gestures.rotate=true
242 eglx11.com.sun.javafx.gestures.scroll=true
243 gtk.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
244 gtk.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
245 gtk.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
246 gtk.glass.platform=gtk
247 gtk.prism.order=sw
248 gtk.com.sun.javafx.isEmbedded=true
249 gtk.com.sun.javafx.scene.control.skin.FXVK.cache=true
250 gtk.com.sun.javafx.gestures.zoom=true
251 gtk.com.sun.javafx.gestures.rotate=true
252 gtk.com.sun.javafx.gestures.scroll=true"""
253
254 def pangoCCFlags = ["-D_ENABLE_PANGO"];
255 def pangoLinkFlags = [];
256 setupTools("x86egl_pango_tools",
257 { propFile ->
258 ByteArrayOutputStream results = new ByteArrayOutputStream();
259 exec {
260 commandLine "$pkgconfig", "--cflags", "pangoft2"
261 standardOutput = results
262 }
283 ByteArrayOutputStream results = new ByteArrayOutputStream();
284 exec {
285 commandLine "pkg-config", "--cflags", "freetype2"
286 standardOutput = results
287 }
288 propFile << "cflags=" << results.toString().trim() << "\n";
289
290 results = new ByteArrayOutputStream();
291 exec {
292 commandLine "pkg-config", "--libs", "freetype2"
293 standardOutput = results
294 }
295 propFile << "libs=" << results.toString().trim();
296 },
297 { properties ->
298 freetypeCCFlags.addAll(properties.getProperty("cflags").split(" "))
299 freetypeLinkFlags.addAll(properties.getProperty("libs").split(" "))
300 }
301 )
302
303 def compiler = file("$compilerHome/bin/${compilerPrefix}gcc").getAbsolutePath()
304 def linker = file("$compilerHome/bin/${compilerPrefix}g++").getAbsolutePath()
305
306 X86EGL.glass = [:]
307 X86EGL.glass.variants = ["eglfb", "directfb", "fb", "gtk", "lensport", "monocle", "monocle_x11"]
308 X86EGL.glass.javahInclude = [
309 "com/sun/glass/events/**",
310 "com/sun/glass/ui/*",
311 "com/sun/glass/ui/lens/*",
312 "com/sun/glass/ui/monocle/*",
313 "com/sun/glass/ui/monocle/linux/*",
314 "com/sun/glass/ui/monocle/util/*",
315 "com/sun/glass/ui/monocle/x11/*",
316 "com/sun/glass/ui/gtk/*"]
317 X86EGL.glass.lib = "glass"
318
319 X86EGL.glass.monocle = [:]
320 X86EGL.glass.monocle.nativeSource = [
321 file("modules/graphics/src/main/native-glass/monocle"),
322 file("modules/graphics/src/main/native-glass/monocle/linux"),
323 file("modules/graphics/src/main/native-glass/monocle/util") ]
324 X86EGL.glass.monocle.compiler = compiler
325 X86EGL.glass.monocle.ccFlags = monocleCFlags
326 X86EGL.glass.monocle.linker = linker
327 X86EGL.glass.monocle.linkFlags = monocleLFlags
328 X86EGL.glass.monocle.lib = "glass_monocle"
329
330 X86EGL.glass.monocle_x11 = [:]
331 X86EGL.glass.monocle_x11.nativeSource = [
332 file("modules/graphics/src/main/native-glass/monocle/util"),
333 file("modules/graphics/src/main/native-glass/monocle/x11") ]
334 X86EGL.glass.monocle_x11.compiler = compiler
335 X86EGL.glass.monocle_x11.ccFlags = monocleCFlags
336 X86EGL.glass.monocle_x11.linker = linker
|
38 pkgconfig="${sdk}/bin/pkg-config"
39 } else {
40 jniPlatform="linux"
41 sdk=""
42 pkgconfig="pkg-config"
43 }
44
45 if (rootProject.hasProperty("X86EGL_COMPILER")) {
46 logger.quiet "Using alternate X86EGL_COMPILER $rootProject.X86EGL_COMPILER"
47 compilerHome=file(rootProject.X86EGL_COMPILER);
48 } else {
49 compilerHome=file("/usr");
50 }
51 if (rootProject.hasProperty("X86EGL_COMPILER_PREFIX")) {
52 logger.quiet "Using alternate X86EGL_COMPILER_PREFIX $rootProject.X86EGL_COMPILER_PREFIX"
53 compilerPrefix="${rootProject.X86EGL_COMPILER_PREFIX}"
54 } else {
55 compilerPrefix=""
56 }
57
58 def compiler = file("$compilerHome/bin/${compilerPrefix}gcc").getAbsolutePath()
59 def linker = file("$compilerHome/bin/${compilerPrefix}g++").getAbsolutePath()
60
61 // Declare whether this particular target file applies to the current system
62 X86EGL.canBuild = (IS_LINUX || IS_MAC) && compilerHome.exists()
63 if (!X86EGL.canBuild) {
64 return;
65 }
66
67 // Lambda for naming the generated libs
68 X86EGL.library = { name -> return "lib${name}.so" as String }
69
70 X86EGL.compileSwing = false;
71 X86EGL.compileSWT = false;
72 X86EGL.compileFXPackager = false;
73 X86EGL.compileDesignTime = false;
74 X86EGL.compileWebnodeNative = false;
75 X86EGL.compileMediaNative = false;
76
77 X86EGL.includeLens = true
78 X86EGL.includeMonocle = true
79 X86EGL.includeNull3d = true
80 X86EGL.includeEGL = true
81 X86EGL.includeSwing = false
82 X86EGL.includeSWT = false
83 X86EGL.includeGTK = true
84
85 X86EGL.javafxPlatformDefault="monocle"
86
87 // Libraries end up in the sdk/rt/lib/[i386|amd46] directory depending on machine arch
88 if (rootProject.hasProperty("X86EGL_ARCH")) {
89 X86EGL.arch = X86EGL_ARCH
90 X86EGL.libDest = "lib/${X86EGL_ARCH}"
91 } else {
92 X86EGL.arch = OS_ARCH
93 X86EGL.libDest = "lib/${OS_ARCH}"
94 }
95
96 def commonFlags = [
97 "-fno-strict-aliasing", "-fPIC", "-fno-omit-frame-pointer", // optimization flags
98 "-W", "-Wall", "-Wno-unused", "-Wno-parentheses", "-Werror=implicit-function-declaration"] // warning flags
99 // Specify the compilation parameters and link parameters
100 def ccFlags = [
101 commonFlags,
102 "-I$JDK_HOME/include", "-I$JDK_HOME/include/${jniPlatform}", "-c",
103 IS_DEBUG_NATIVE ? ["-ggdb", "-DVERBOSE"] : ["-O2", "-DNDEBUG"]].flatten()
104 //ccFlags.addAll(["-Wnon-virtual-dtor", "-Woverloaded-virtual", "-std=c++0x"])
105 def linkFlags = ["-shared", commonFlags].flatten()
106
156 commandLine("$pkgconfig", "--cflags", "gtk+-2.0",
157 "gthread-2.0", "xtst");
158 setStandardOutput(results);
159 }
160 propFile << "cflags=" << results.toString().trim() << "\n";
161
162 results = new ByteArrayOutputStream();
163 exec {
164 commandLine "$pkgconfig", "--libs", "gtk+-2.0",
165 "gthread-2.0", "xtst"
166 standardOutput = results
167 }
168 propFile << "libs=" << results.toString().trim();
169 },
170 { properties ->
171 gtkCFlags.addAll(properties.getProperty("cflags").split(" "))
172 gtkLFlags.addAll(properties.getProperty("libs").split(" "))
173 }
174 )
175
176 def monoclePlatformAdditions = """
177 monocle.glass.platform=Monocle
178 monocle.prism.order=es2,sw
179 monocle.prism.eglfb=true
180 monocle.prism.lcdtext=false
181 monocle.prism.maxvram=128m
182 monocle.prism.targetvram=112m
183 monocle.use.egl=true
184 monocle.use.gles2=true
185 monocle.embedded=monocle
186 monocle.com.sun.javafx.isEmbedded=true
187 monocle.doNativeComposite=true
188 monocle.com.sun.javafx.scene.control.skin.FXVK.cache=true
189 monocle.prism.glDepthSize=0
190 monocle.com.sun.javafx.gestures.zoom=true
191 monocle.com.sun.javafx.gestures.rotate=true
192 monocle.com.sun.javafx.gestures.scroll=true"""
193
194 def lensPlatformAdditions = """
195 directfb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
196 directfb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
197 directfb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
198 directfb.glass.platform=Lens
199 directfb.glass.lens=dfb
200 directfb.prism.order=sw
201 directfb.com.sun.javafx.isEmbedded=true
202 directfb.com.sun.javafx.scene.control.skin.FXVK.cache=true
203 directfb.com.sun.javafx.gestures.zoom=true
204 directfb.com.sun.javafx.gestures.rotate=true
205 directfb.com.sun.javafx.gestures.scroll=true
206 eglfb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
207 eglfb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
208 eglfb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
209 eglfb.glass.platform=Lens
210 eglfb.glass.lens=eglfb
211 eglfb.prism.order=es2
212 eglfb.prism.eglfb=true
213 eglfb.prism.lcdtext=false
214 eglfb.prism.maxvram=128m
215 eglfb.prism.targetvram=112m
216 eglfb.use.egl=true
217 eglfb.use.gles2=true
218 eglfb.embedded=eglfb
219 eglfb.com.sun.javafx.isEmbedded=true
220 eglfb.doNativeComposite=true
221 eglfb.com.sun.javafx.scene.control.skin.FXVK.cache=true
222 eglfb.prism.glDepthSize=0
223 eglfb.com.sun.javafx.gestures.zoom=true
224 eglfb.com.sun.javafx.gestures.rotate=true
225 eglfb.com.sun.javafx.gestures.scroll=true
226 fb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
227 fb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
228 fb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
229 fb.glass.platform=Lens
230 fb.glass.lens=fb
231 fb.prism.order=sw
232 fb.com.sun.javafx.isEmbedded=true
233 fb.glass.restrictWindowToScreen=true
234 fb.com.sun.javafx.scene.control.skin.FXVK.cache=true
235 fb.com.sun.javafx.gestures.zoom=true
236 fb.com.sun.javafx.gestures.rotate=true
237 fb.com.sun.javafx.gestures.scroll=true
238 eglx11.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
239 eglx11.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
240 eglx11.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
241 eglx11.glass.platform=Lens
242 eglx11.glass.lens=eglx11
243 eglx11.prism.order=es2
244 eglx11.prism.eglx11=true
245 eglx11.prism.lcdtext=false
246 eglx11.prism.maxvram=128m
247 eglx11.prism.targetvram=112m
248 eglx11.use.egl=true
249 eglx11.use.gles2=true
250 eglx11.embedded=eglx11
251 eglx11.com.sun.javafx.isEmbedded=true
252 eglx11.com.sun.javafx.scene.control.skin.FXVK.cache=true
253 eglx11.prism.glDepthSize=0
254 eglx11.com.sun.javafx.gestures.zoom=true
255 eglx11.com.sun.javafx.gestures.rotate=true
256 eglx11.com.sun.javafx.gestures.scroll=true"""
257
258 def gtkPlatformAdditions = """
259 gtk.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
260 gtk.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
261 gtk.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
262 gtk.glass.platform=gtk
263 gtk.prism.order=sw
264 gtk.com.sun.javafx.isEmbedded=true
265 gtk.com.sun.javafx.scene.control.skin.FXVK.cache=true
266 gtk.com.sun.javafx.gestures.zoom=true
267 gtk.com.sun.javafx.gestures.rotate=true
268 gtk.com.sun.javafx.gestures.scroll=true"""
269
270 def pangoCCFlags = ["-D_ENABLE_PANGO"];
271 def pangoLinkFlags = [];
272 setupTools("x86egl_pango_tools",
273 { propFile ->
274 ByteArrayOutputStream results = new ByteArrayOutputStream();
275 exec {
276 commandLine "$pkgconfig", "--cflags", "pangoft2"
277 standardOutput = results
278 }
299 ByteArrayOutputStream results = new ByteArrayOutputStream();
300 exec {
301 commandLine "pkg-config", "--cflags", "freetype2"
302 standardOutput = results
303 }
304 propFile << "cflags=" << results.toString().trim() << "\n";
305
306 results = new ByteArrayOutputStream();
307 exec {
308 commandLine "pkg-config", "--libs", "freetype2"
309 standardOutput = results
310 }
311 propFile << "libs=" << results.toString().trim();
312 },
313 { properties ->
314 freetypeCCFlags.addAll(properties.getProperty("cflags").split(" "))
315 freetypeLinkFlags.addAll(properties.getProperty("libs").split(" "))
316 }
317 )
318
319 X86EGL.javafxPlatformProperties = "javafx.platform=${X86EGL.javafxPlatformDefault}"
320
321 X86EGL.glass = [:]
322 X86EGL.glass.javahInclude = [
323 "com/sun/glass/events/**",
324 "com/sun/glass/ui/*"]
325 X86EGL.glass.variants = [ ]
326 if (X86EGL.includeLens) {
327 X86EGL.glass.variants.addAll("eglfb", "directfb", "fb", "lensport" );
328 X86EGL.glass.javahInclude.addAll("com/sun/glass/ui/lens/*");
329 X86EGL.javafxPlatformProperties = X86EGL.javafxPlatformProperties + lensPlatformAdditions
330 }
331 if (X86EGL.includeMonocle) {
332 X86EGL.glass.variants.addAll("monocle", "monocle_x11");
333 X86EGL.glass.javahInclude.addAll(
334 "com/sun/glass/ui/monocle/*",
335 "com/sun/glass/ui/monocle/dispman/*",
336 "com/sun/glass/ui/monocle/mx6/*",
337 "com/sun/glass/ui/monocle/linux/*",
338 "com/sun/glass/ui/monocle/util/*",
339 "com/sun/glass/ui/monocle/x11/*");
340 X86EGL.javafxPlatformProperties = X86EGL.javafxPlatformProperties + monoclePlatformAdditions
341 }
342 if (X86EGL.includeGTK) {
343 X86EGL.glass.variants.addAll("gtk");
344 X86EGL.glass.javahInclude.addAll("com/sun/glass/ui/gtk/*");
345 X86EGL.javafxPlatformProperties = X86EGL.javafxPlatformProperties + gtkPlatformAdditions
346 }
347
348 X86EGL.glass.lib = "glass"
349
350 X86EGL.glass.monocle = [:]
351 X86EGL.glass.monocle.nativeSource = [
352 file("modules/graphics/src/main/native-glass/monocle"),
353 file("modules/graphics/src/main/native-glass/monocle/linux"),
354 file("modules/graphics/src/main/native-glass/monocle/util") ]
355 X86EGL.glass.monocle.compiler = compiler
356 X86EGL.glass.monocle.ccFlags = monocleCFlags
357 X86EGL.glass.monocle.linker = linker
358 X86EGL.glass.monocle.linkFlags = monocleLFlags
359 X86EGL.glass.monocle.lib = "glass_monocle"
360
361 X86EGL.glass.monocle_x11 = [:]
362 X86EGL.glass.monocle_x11.nativeSource = [
363 file("modules/graphics/src/main/native-glass/monocle/util"),
364 file("modules/graphics/src/main/native-glass/monocle/x11") ]
365 X86EGL.glass.monocle_x11.compiler = compiler
366 X86EGL.glass.monocle_x11.ccFlags = monocleCFlags
367 X86EGL.glass.monocle_x11.linker = linker
|