< prev index next >
buildSrc/linux.gradle
Print this page
@@ -52,35 +52,74 @@
// Specify the compilation parameters and link parameters
def ccFlags = [
commonFlags, "-I$JDK_HOME/include", "-I$JDK_HOME/include/linux", "-c",
"-ffunction-sections", "-fdata-sections",
IS_DEBUG_NATIVE ? ["-ggdb", "-DVERBOSE"] : ["-O2", "-DNDEBUG"]].flatten()
+def ccFlagsGTK3 = ccFlags
//ccFlags.addAll(["-Wnon-virtual-dtor", "-Woverloaded-virtual", "-std=c++0x"])
def linkFlags = ["-static-libgcc", "-static-libstdc++", "-shared", commonFlags,
"-Wl,--gc-sections"].flatten()
def defaultLinkFlags = linkFlags.flatten()
+def gtk2CCFlags = [ ];
+def gtk3CCFlags = [ "-Wno-deprecated-declarations" ];
+def gtk2LinkFlags = [ ];
+def gtk3LinkFlags = [ ];
+LINUX.buildGTK3 = true
+
// Create $buildDir/linux_tools.properties file and load props from it
-setupTools("linux_tools",
+setupTools("linux_gtk2",
{ propFile ->
- ByteArrayOutputStream results = new ByteArrayOutputStream();
+ ByteArrayOutputStream results1 = new ByteArrayOutputStream();
exec {
- commandLine("pkg-config", "--cflags", "gtk+-2.0", "gthread-2.0", "xtst");
- setStandardOutput(results);
+ commandLine("pkg-config", "--cflags", "gtk+-2.0", "gthread-2.0", "xtst")
+ setStandardOutput(results1);
}
- propFile << "cflags=" << results.toString().trim() << "\n";
+ propFile << "cflagsGTK2=" << results1.toString().trim() << "\n";
- results = new ByteArrayOutputStream();
+ ByteArrayOutputStream results3 = new ByteArrayOutputStream();
exec {
- commandLine "pkg-config", "--libs", "gtk+-2.0", "gthread-2.0", "xtst"
- standardOutput = results
+ commandLine("pkg-config", "--libs", "gtk+-2.0", "gthread-2.0", "xtst")
+ setStandardOutput(results3);
}
- propFile << "libs=" << results.toString().trim();
+ propFile << "libsGTK2=" << results3.toString().trim() << "\n";
+ },
+ { properties ->
+ gtk2CCFlags.addAll(properties.getProperty("cflagsGTK2").split(" "))
+ gtk2LinkFlags.addAll(properties.getProperty("libsGTK2").split(" "))
+ }
+)
+
+setupTools("linux_gtk3",
+ { propFile ->
+ ByteArrayOutputStream results2 = new ByteArrayOutputStream();
+ exec {
+ commandLine("pkg-config", "--cflags", "gtk+-3.0", "gthread-2.0", "xtst")
+ setStandardOutput(results2);
+ ignoreExitValue(true)
+ }
+ propFile << "cflagsGTK3=" << results2.toString().trim() << "\n";
+
+ ByteArrayOutputStream results4 = new ByteArrayOutputStream();
+ exec {
+ commandLine("pkg-config", "--libs", "gtk+-3.0", "gthread-2.0", "xtst")
+ setStandardOutput(results4);
+ ignoreExitValue(true)
+ }
+ propFile << "libsGTK3=" << results4.toString().trim() << "\n";
+
},
{ properties ->
- ccFlags.addAll(properties.getProperty("cflags").split(" "))
- linkFlags.addAll(properties.getProperty("libs").split(" "))
+ String ccflags = properties.getProperty("cflagsGTK3")
+ String ldflags = properties.getProperty("libsGTK3")
+ if (ccflags != null && ! ccflags.equals("")) {
+ gtk3CCFlags.addAll(properties.getProperty("cflagsGTK3").split(" "))
+ gtk3LinkFlags.addAll(properties.getProperty("libsGTK3").split(" "))
+ } else {
+ logger.info("Warning: GTK3 development packages not found, not building GTK3 support");
+ LINUX.buildGTK3 = false
+ }
}
)
def pangoCCFlags = ["-D_ENABLE_PANGO"];
def pangoLinkFlags = [];
@@ -133,20 +172,53 @@
def compiler = IS_COMPILE_PARFAIT ? "parfait-gcc" : "gcc";
def linker = IS_COMPILE_PARFAIT ? "parfait-g++" : "g++";
LINUX.glass = [:]
+LINUX.glass.variants = ["glass", "glassgtk2"]
+if (LINUX.buildGTK3) {
+ logger.info("Building libglassgtk3")
+ LINUX.glass.variants += "glassgtk3"
+} else {
+ logger.warn("NOT Building libglassgtk3")
+}
+
+FileTree ft_gtk_launcher = fileTree("${project(":graphics").projectDir}/src/main/native-glass/gtk/") {
+ include("**/launcher.c")
+}
+
+FileTree ft_gtk = fileTree("${project(":graphics").projectDir}/src/main/native-glass/gtk/") {
+ exclude("**/launcher.c")
+}
+
+LINUX.glass.glass = [:]
LINUX.glass.javahInclude = [
"com/sun/glass/events/**",
"com/sun/glass/ui/*",
"com/sun/glass/ui/gtk/*"]
-LINUX.glass.nativeSource = file("modules/graphics/src/main/native-glass/gtk")
-LINUX.glass.compiler = compiler
-LINUX.glass.ccFlags = [ccFlags, "-Werror"].flatten()
-LINUX.glass.linker = linker
-LINUX.glass.linkFlags = [linkFlags].flatten()
-LINUX.glass.lib = "glass"
+LINUX.glass.glass.nativeSource = ft_gtk_launcher.getFiles()
+LINUX.glass.glass.compiler = compiler
+LINUX.glass.glass.ccFlags = [ccFlags, gtk2CCFlags, "-Werror"].flatten()
+LINUX.glass.glass.linker = linker
+LINUX.glass.glass.linkFlags = [linkFlags, "-lX11", "-ldl" ].flatten()
+LINUX.glass.glass.lib = "glass"
+
+LINUX.glass.glassgtk2 = [:]
+LINUX.glass.glassgtk2.nativeSource = ft_gtk.getFiles()
+LINUX.glass.glassgtk2.compiler = compiler
+LINUX.glass.glassgtk2.ccFlags = [ccFlags, gtk2CCFlags, "-Werror"].flatten()
+LINUX.glass.glassgtk2.linker = linker
+LINUX.glass.glassgtk2.linkFlags = [linkFlags, gtk2LinkFlags ].flatten()
+LINUX.glass.glassgtk2.lib = "glassgtk2"
+
+LINUX.glass.glassgtk3 = [:]
+LINUX.glass.glassgtk3.nativeSource = ft_gtk.getFiles()
+LINUX.glass.glassgtk3.compiler = compiler
+LINUX.glass.glassgtk3.ccFlags = [ccFlags, gtk3CCFlags, "-Werror"].flatten()
+LINUX.glass.glassgtk3.linker = linker
+LINUX.glass.glassgtk3.linkFlags = [linkFlags, gtk3LinkFlags ].flatten()
+LINUX.glass.glassgtk3.lib = "glassgtk3"
LINUX.decora = [:]
LINUX.decora.compiler = compiler
LINUX.decora.ccFlags = [ccFlags, "-ffast-math"].flatten()
LINUX.decora.linker = linker
< prev index next >