diff options
Diffstat (limited to 'java/openjfx14/files/patch-buildSrc_bsd.gradle')
-rw-r--r-- | java/openjfx14/files/patch-buildSrc_bsd.gradle | 332 |
1 files changed, 332 insertions, 0 deletions
diff --git a/java/openjfx14/files/patch-buildSrc_bsd.gradle b/java/openjfx14/files/patch-buildSrc_bsd.gradle new file mode 100644 index 000000000000..126bac63c66d --- /dev/null +++ b/java/openjfx14/files/patch-buildSrc_bsd.gradle @@ -0,0 +1,332 @@ +--- buildSrc/bsd.gradle.orig 2020-07-21 10:33:26 UTC ++++ buildSrc/bsd.gradle +@@ -0,0 +1,329 @@ ++/* ++ * Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++ext.BSD = [:] ++ ++// Declare whether this particular target file applies to the current system ++BSD.canBuild = IS_BSD; ++if (!BSD.canBuild) return; ++ ++// All desktop related packages should be built ++BSD.compileSwing = true; ++BSD.compileSWT = true; ++ ++// Libraries end up in the lib/$OS_ARCH directory for Linux ++BSD.libDest = "lib" ++ ++// Lambda for naming the generated libs ++BSD.library = { name -> return (IS_STATIC_BUILD ? "lib${name}.a" : "lib${name}.so") as String } ++ ++// A set of common parameters to use for both compiling and linking ++def commonFlags = [ ++ "-fno-strict-aliasing", "-fPIC", "-fno-omit-frame-pointer", // optimization flags ++ "-fstack-protector", ++ "-Wextra", "-Wall", "-Wformat-security", "-Wno-unused", "-Wno-parentheses"] // warning flags ++ ++if (!IS_64) { ++ commonFlags += "-m32" ++} ++ ++if (IS_STATIC_BUILD) { ++ commonFlags += "-DSTATIC_BUILD" ++} ++ ++// Specify the compilation parameters and link parameters ++def ccFlags = [ ++ commonFlags, "-I$JDK_HOME/include", "-I$JDK_HOME/include/freebsd", "-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 dynamicLinkFlags = [ "-shared", commonFlags, ++ "-z", "relro", ++ "-Wl,--gc-sections"].flatten() ++ ++def staticLinkFlags = [].flatten() ++ ++def linkFlags = IS_STATIC_BUILD ? staticLinkFlags : dynamicLinkFlags; ++ ++if (IS_DEBUG_NATIVE) { ++ linkFlags += "-g" ++} ++ ++def toolchainDir ++if (hasProperty('toolchainDir')) { ++ toolchainDir = ext.toolchainDir + "/" ++} else { ++ toolchainDir = "" ++} ++ ++def gtk2CCFlags = [ ]; ++def gtk3CCFlags = [ "-Wno-deprecated-declarations" ]; ++def gtk2LinkFlags = [ ]; ++def gtk3LinkFlags = [ ]; ++ ++// Create $buildDir/freebsd_tools.properties file and load props from it ++setupTools("bsd_gtk2", ++ { propFile -> ++ ByteArrayOutputStream results1 = new ByteArrayOutputStream(); ++ exec { ++ commandLine("${toolchainDir}pkg-config", "--cflags", "gtk+-2.0", "gthread-2.0", "xtst") ++ setStandardOutput(results1); ++ } ++ propFile << "cflagsGTK2=" << results1.toString().trim() << "\n"; ++ ++ ByteArrayOutputStream results3 = new ByteArrayOutputStream(); ++ exec { ++ commandLine("${toolchainDir}pkg-config", "--libs", "gtk+-2.0", "gthread-2.0", "xtst") ++ setStandardOutput(results3); ++ } ++ propFile << "libsGTK2=" << results3.toString().trim() << "\n"; ++ }, ++ { properties -> ++ def cflagsGTK2 = properties.getProperty("cflagsGTK2") ++ def libsGTK2 = properties.getProperty("libsGTK2") ++ if (cflagsGTK2 && libsGTK2) { ++ gtk2CCFlags.addAll(cflagsGTK2.split(" ")) ++ gtk2LinkFlags.addAll(libsGTK2.split(" ")) ++ } else { ++ throw new IllegalStateException("GTK2 development packages not found. If GTK2 packages are installed, please remove the build directory and try again.") ++ } ++ } ++) ++ ++setupTools("bsd_gtk3", ++ { propFile -> ++ ByteArrayOutputStream results2 = new ByteArrayOutputStream(); ++ exec { ++ commandLine("${toolchainDir}pkg-config", "--cflags", "gtk+-3.0", "gthread-2.0", "xtst") ++ setStandardOutput(results2); ++ } ++ propFile << "cflagsGTK3=" << results2.toString().trim() << "\n"; ++ ++ ByteArrayOutputStream results4 = new ByteArrayOutputStream(); ++ exec { ++ commandLine("${toolchainDir}pkg-config", "--libs", "gtk+-3.0", "gthread-2.0", "xtst") ++ setStandardOutput(results4); ++ } ++ propFile << "libsGTK3=" << results4.toString().trim() << "\n"; ++ ++ }, ++ { properties -> ++ def cflagsGTK3 = properties.getProperty("cflagsGTK3") ++ def libsGTK3 = properties.getProperty("libsGTK3") ++ if (cflagsGTK3 && libsGTK3) { ++ gtk3CCFlags.addAll(cflagsGTK3.split(" ")) ++ gtk3LinkFlags.addAll(libsGTK3.split(" ")) ++ } else { ++ throw new IllegalStateException("GTK3 development packages not found. If GTK3 packages are installed, please remove the build directory and try again.") ++ } ++ } ++) ++ ++def pangoCCFlags = ["-D_ENABLE_PANGO"]; ++def pangoLinkFlags = []; ++setupTools("bsd_pango_tools", ++ { propFile -> ++ ByteArrayOutputStream results = new ByteArrayOutputStream(); ++ exec { ++ commandLine "${toolchainDir}pkg-config", "--cflags", "pangoft2" ++ standardOutput = results ++ } ++ propFile << "cflags=" << results.toString().trim() << "\n"; ++ ++ results = new ByteArrayOutputStream(); ++ exec { ++ commandLine "${toolchainDir}pkg-config", "--libs", "pangoft2" ++ standardOutput = results ++ } ++ propFile << "libs=" << results.toString().trim(); ++ }, ++ { properties -> ++ def cflags = properties.getProperty("cflags") ++ def libs = properties.getProperty("libs") ++ if (cflags && libs) { ++ pangoCCFlags.addAll(cflags.split(" ")) ++ pangoLinkFlags.addAll(libs.split(" ")) ++ } else { ++ throw new IllegalStateException("Linux pango packages not found.\nIf pango packages are installed, please remove the build directory and try again.") ++ } ++ } ++) ++ ++def freetypeCCFlags = [ext.IS_COMPILE_PANGO ? "-D_ENABLE_PANGO" : ++ ext.IS_COMPILE_HARFBUZZ ? "-D_ENABLE_HARFBUZZ" : ""] ++def freetypeLinkFlags = [] ++setupTools("bsd_freetype_tools", ++ { propFile -> ++ ByteArrayOutputStream results = new ByteArrayOutputStream(); ++ exec { ++ commandLine "${toolchainDir}pkg-config", "--cflags", "freetype2" ++ standardOutput = results ++ } ++ propFile << "cflags=" << results.toString().trim() << "\n"; ++ ++ results = new ByteArrayOutputStream(); ++ exec { ++ commandLine "${toolchainDir}pkg-config", "--libs", "freetype2" ++ standardOutput = results ++ } ++ propFile << "libs=" << results.toString().trim(); ++ }, ++ { properties -> ++ def cflags = properties.getProperty("cflags") ++ def libs = properties.getProperty("libs") ++ if (cflags && libs) { ++ freetypeCCFlags.addAll(cflags.split(" ")) ++ if (!IS_STATIC_BUILD) { ++ freetypeLinkFlags.addAll(libs.split(" ")) ++ } ++ } else { ++ throw new IllegalStateException("Linux freetype packages not found.\nIf freetype pacakges are installed, please remove the build directory and try again.") ++ } ++ } ++) ++ ++def compiler = IS_COMPILE_PARFAIT ? "parfait-gcc" : "${toolchainDir}gcc"; ++def linker = IS_STATIC_BUILD ? "ar" : IS_COMPILE_PARFAIT ? "parfait-g++" : "${toolchainDir}g++"; ++ ++BSD.glass = [:] ++BSD.glass.variants = ["glass", "glassgtk2", "glassgtk3"] ++ ++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") ++} ++ ++BSD.glass.glass = [:] ++BSD.glass.glass.nativeSource = ft_gtk_launcher.getFiles() ++BSD.glass.glass.compiler = compiler ++BSD.glass.glass.ccFlags = [ccFlags].flatten() ++BSD.glass.glass.linker = linker ++BSD.glass.glass.linkFlags = IS_STATIC_BUILD? linkFlags : [linkFlags, "-lX11", "-ldl"].flatten() ++BSD.glass.glass.lib = "glass" ++ ++BSD.glass.glassgtk2 = [:] ++BSD.glass.glassgtk2.nativeSource = ft_gtk.getFiles() ++BSD.glass.glassgtk2.compiler = compiler ++BSD.glass.glassgtk2.ccFlags = IS_STATIC_BUILD ? ++ ["-fno-threadsafe-statics", ccFlags, gtk2CCFlags].flatten() : ++ [ccFlags, gtk2CCFlags].flatten() ++BSD.glass.glassgtk2.linker = linker ++BSD.glass.glassgtk2.linkFlags = IS_STATIC_BUILD ? linkFlags : [linkFlags, gtk2LinkFlags].flatten() ++BSD.glass.glassgtk2.lib = "glassgtk2" ++ ++BSD.glass.glassgtk3 = [:] ++BSD.glass.glassgtk3.nativeSource = ft_gtk.getFiles() ++BSD.glass.glassgtk3.compiler = compiler ++BSD.glass.glassgtk3.ccFlags = IS_STATIC_BUILD ? ++ ["-fno-threadsafe-statics", ccFlags, gtk3CCFlags].flatten() : ++ [ccFlags, gtk3CCFlags].flatten() ++BSD.glass.glassgtk3.linker = linker ++BSD.glass.glassgtk3.linkFlags = IS_STATIC_BUILD ? linkFlags : [linkFlags, gtk3LinkFlags].flatten() ++BSD.glass.glassgtk3.lib = "glassgtk3" ++ ++BSD.decora = [:] ++BSD.decora.compiler = compiler ++BSD.decora.ccFlags = [ccFlags, "-ffast-math"].flatten() ++BSD.decora.linker = linker ++BSD.decora.linkFlags = [linkFlags].flatten() ++BSD.decora.lib = "decora_sse" ++ ++BSD.prism = [:] ++BSD.prism.nativeSource = file("${project(":graphics").projectDir}/src/main/native-prism") ++BSD.prism.compiler = compiler ++BSD.prism.ccFlags = [ccFlags, "-DINLINE=inline"].flatten() ++BSD.prism.linker = linker ++BSD.prism.linkFlags = [linkFlags].flatten() ++BSD.prism.lib = "prism_common" ++ ++BSD.prismSW = [:] ++BSD.prismSW.nativeSource = file("${project(":graphics").projectDir}/src/main/native-prism-sw") ++BSD.prismSW.compiler = compiler ++BSD.prismSW.ccFlags = [ccFlags, "-DINLINE=inline"].flatten() ++BSD.prismSW.linker = linker ++BSD.prismSW.linkFlags = [linkFlags].flatten() ++BSD.prismSW.lib = "prism_sw" ++ ++BSD.iio = [:] ++BSD.iio.nativeSource = [ ++ file("${project("graphics").projectDir}/src/main/native-iio"), ++ file("${project("graphics").projectDir}/src/main/native-iio/libjpeg")] ++BSD.iio.compiler = compiler ++BSD.iio.ccFlags = [ccFlags].flatten() ++BSD.iio.linker = linker ++BSD.iio.linkFlags = [linkFlags].flatten() ++BSD.iio.lib = "javafx_iio" ++ ++BSD.prismES2 = [:] ++BSD.prismES2.nativeSource = [ ++ file("${project("graphics").projectDir}/src/main/native-prism-es2"), ++ file("${project("graphics").projectDir}/src/main/native-prism-es2/GL"), ++ file("${project("graphics").projectDir}/src/main/native-prism-es2/x11") ++] ++BSD.prismES2.compiler = compiler ++BSD.prismES2.ccFlags = ["-DFREEBSD", ccFlags].flatten() ++BSD.prismES2.linker = linker ++BSD.prismES2.linkFlags =IS_STATIC_BUILD ? linkFlags : [linkFlags, "-lX11", "-lXxf86vm", "-lGL"].flatten() ++BSD.prismES2.lib = "prism_es2" ++ ++def closedDir = file("$projectDir/../rt-closed") ++BSD.font = [:] ++BSD.font.compiler = compiler ++BSD.font.nativeSource = [file("${project("graphics").projectDir}/src/main/native-font")] ++BSD.font.ccFlags = ["-DJFXFONT_PLUS", ccFlags].flatten() ++BSD.font.linker = linker ++BSD.font.linkFlags = [linkFlags].flatten() ++BSD.font.lib = "javafx_font" ++ ++BSD.fontFreetype = [:] ++BSD.fontFreetype.nativeSource = ["src/main/native-font/freetype.c"] ++BSD.fontFreetype.compiler = compiler ++BSD.fontFreetype.ccFlags = ["-DJFXFONT_PLUS", ccFlags, freetypeCCFlags].flatten() ++BSD.fontFreetype.linker = linker ++BSD.fontFreetype.linkFlags = IS_STATIC_BUILD ? linkFlags : [linkFlags, freetypeLinkFlags].flatten() ++BSD.fontFreetype.lib = "javafx_font_freetype" ++ ++BSD.fontPango = [:] ++BSD.fontPango.nativeSource = ["src/main/native-font/pango.c"] ++BSD.fontPango.compiler = compiler ++BSD.fontPango.ccFlags = ["-DJFXFONT_PLUS", ccFlags, pangoCCFlags].flatten() ++BSD.fontPango.linker = linker ++BSD.fontPango.linkFlags =IS_STATIC_BUILD ? linkFlags : [linkFlags, pangoLinkFlags].flatten() ++BSD.fontPango.lib = "javafx_font_pango" ++ ++BSD.media = [:] ++BSD.media.compiler = compiler ++BSD.media.linker = linker ++BSD.media.ar = "${toolchainDir}ar" ++ ++BSD.webkit = [:] ++BSD.webkit.compiler = compiler ++BSD.webkit.linker = linker ++BSD.webkit.ccFlags = commonFlags.flatten() ++BSD.webkit.linkFlags = linkFlags.flatten() |