aboutsummaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorTobias Kortkamp <tobik@FreeBSD.org>2019-07-23 05:34:21 +0000
committerTobias Kortkamp <tobik@FreeBSD.org>2019-07-23 05:34:21 +0000
commit0455f383ae2b2a352d45fb1f7256ee0cb9cc3027 (patch)
tree58737cc1ec13a905f0f91a64e6a0b12c8713bb93 /java
parent94cb2dcddad264910f67fb6927f72937fb9d44fd (diff)
downloadports-0455f383ae2b2a352d45fb1f7256ee0cb9cc3027.tar.gz
ports-0455f383ae2b2a352d45fb1f7256ee0cb9cc3027.zip
java/openjfx8-devel: Update to 8u202-b07
- Also update devel/gradle to the latest version on the 4.x branch. Gradle >=4.8<5 is required to build OpenJFX now. - GStreamer-lite is now based on GStreamer 1.0, so update the sndio backend accordingly. - Add a bunch of missing platform checks which will make it actually use system fonts as configured. OpenJFX 8 is unmaintained upstream and has been for a while [1]. Deprecate the port as noone seems to have stepped up to take over maintainership. No expiration date since this port has multiple consumers and there is no alternative. [1] https://mail.openjdk.java.net/pipermail/openjfx-dev/2018-December/023007.html PR: 237443
Notes
Notes: svn path=/head/; revision=507200
Diffstat (limited to 'java')
-rw-r--r--java/openjfx8-devel/Makefile48
-rw-r--r--java/openjfx8-devel/distinfo6
-rw-r--r--java/openjfx8-devel/files/bsd.gradle257
-rw-r--r--java/openjfx8-devel/files/gstsndio.c376
-rw-r--r--java/openjfx8-devel/files/gstsndio.h78
-rw-r--r--java/openjfx8-devel/files/patch-build.gradle276
-rw-r--r--java/openjfx8-devel/files/patch-modules_controls_src_main_java_com_sun_javafx_scene_control_behavior_TextInputControlBehavior.java20
-rw-r--r--java/openjfx8-devel/files/patch-modules_controls_src_main_java_com_sun_javafx_scene_control_behavior_TextInputControlBindings.java11
-rw-r--r--java/openjfx8-devel/files/patch-modules_fxpackager_src_main_native_library_common_PosixPlatform.cpp6
-rw-r--r--java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_javafx_font_LogicalFont.java11
-rw-r--r--java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_javafx_font_PrismFontFactory.java4
-rw-r--r--java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_javafx_tk_quantum_GlassSystemMenu.java35
-rw-r--r--java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_javafx_tk_quantum_WindowStage.java11
-rw-r--r--java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_prism_impl_PrismSettings.java11
-rw-r--r--java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_GlassApplication.cpp10
-rw-r--r--java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_glass__general.cpp10
-rw-r--r--java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_glass__window.h4
-rw-r--r--java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_launcher.c10
-rw-r--r--java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_wrapped.c10
-rw-r--r--java/openjfx8-devel/files/patch-modules_media_src_main_java_com_sun_media_jfxmediaimpl_HostUtils.java13
-rw-r--r--java/openjfx8-devel/files/patch-modules_media_src_main_java_com_sun_media_jfxmediaimpl_NativeMediaManager.java11
-rw-r--r--java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_gstreamer-lite_gstreamer_gst_gstregistry.c11
-rw-r--r--java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_gstreamer-lite_projects_build_linux_common_config.h18
-rw-r--r--java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_projects_bsd_avplugin_Makefile29
-rw-r--r--java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_projects_bsd_fxplugins_Makefile28
-rw-r--r--java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_projects_bsd_gstreamer-lite_Makefile54
-rw-r--r--java/openjfx8-devel/files/patch-modules_media_src_main_native_jfxmedia_projects_bsd_Makefile28
-rw-r--r--java/openjfx8-devel/files/patch-modules_swing_src_main_java_javafx_embed_swing_JFXPanel.java20
-rw-r--r--java/openjfx8-devel/files/patch-modules_swing_src_main_java_javafx_embed_swing_SwingNode.java11
-rw-r--r--java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_JavaScriptCore_PlatformJava.cmake8
-rw-r--r--java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WTF_wtf_CMakeLists.txt4
-rw-r--r--java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WTF_wtf_Optional.h4
-rw-r--r--java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WebCore_CMakeLists.txt10
-rw-r--r--java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WebCore_PlatformJava.cmake22
-rw-r--r--java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_cmake_OptionsJava.cmake38
-rw-r--r--java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_cmake_WebKitCompilerFlags.cmake13
-rw-r--r--java/openjfx8-devel/files/patch-modules_web_src_main_native_Tools_DumpRenderTree_TestRunner.cpp4
-rw-r--r--java/openjfx8-devel/files/patch-modules_web_src_main_native_Tools_DumpRenderTree_java_CMakeLists.txt13
-rw-r--r--java/openjfx8-devel/files/patch-modules_web_src_main_native_Tools_Scripts_webkitdirs.pm8
-rw-r--r--java/openjfx8-devel/files/sndiosink.c502
-rw-r--r--java/openjfx8-devel/files/sndiosink.h20
-rw-r--r--java/openjfx8-devel/pkg-plist2
42 files changed, 1039 insertions, 1026 deletions
diff --git a/java/openjfx8-devel/Makefile b/java/openjfx8-devel/Makefile
index 18f535a09ee1..5e6a2db083b2 100644
--- a/java/openjfx8-devel/Makefile
+++ b/java/openjfx8-devel/Makefile
@@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= openjfx8
-DISTVERSION= 8u172-b11
-PORTREVISION= 7
+DISTVERSION= 8u202-b07
PORTEPOCH= 1
CATEGORIES= java x11-toolkits devel
MASTER_SITES= https://github.com/t6/openjfx/releases/download/release/ \
@@ -16,23 +15,31 @@ COMMENT= JavaFX SDK overlay for OpenJDK 8
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/LICENSE
+DEPRECATED= No longer maintained upstream
ONLY_FOR_ARCHS= amd64 i386
BUILD_DEPENDS= apache-ant>0:devel/apache-ant \
antlr3>0:devel/antlr3 \
- gradle4>=4.0:devel/gradle4 \
+ gradle4>=4.8:devel/gradle4 \
${JAVALIBDIR}/junit.jar:java/junit
LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \
libfreetype.so:print/freetype2
-USES= gettext-runtime gl gnome jpeg pkgconfig sqlite
+USES= gettext-runtime gl gnome jpeg localbase:ldflags pkgconfig sqlite
USE_GL= gl
-USE_GNOME= atk cairo gdkpixbuf2 glib20 gtk20 pango
+USE_GNOME= atk cairo gdkpixbuf2 glib20 gtk20 gtk30 pango
USE_JAVA= yes
JAVA_VERSION= 1.8
USE_LDCONFIG= yes
USE_XORG= x11 xtst xxf86vm
+CFLAGS+= -Wno-unused-command-line-argument
+
+WRKSRC= ${WRKDIR}/rt-${DISTVERSION}
+
+PLIST_SUB= ARCH=${ARCH} \
+ JAVA_HOME=${JAVA_HOME}
+
OPTIONS_DEFINE= MEDIA SWT TEST WEBKIT
OPTIONS_DEFAULT= MEDIA WEBKIT
OPTIONS_SUB= yes
@@ -53,8 +60,8 @@ TEST_USES= display:test
TEST_VARS= AWT_TEST=true FULL_TEST=true
# Gradle calls CMake during the build
-WEBKIT_BUILD_DEPENDS= cmake:devel/cmake
WEBKIT_IMPLIES= MEDIA
+WEBKIT_BUILD_DEPENDS= cmake:devel/cmake
WEBKIT_LIB_DEPENDS= libicui18n.so:devel/icu
WEBKIT_USES= bison compiler:c++14-lang gmake gperf perl5 python:2.7,build
WEBKIT_USE= GNOME=libxslt,libxml2 \
@@ -64,13 +71,10 @@ WEBKIT_USE= GNOME=libxslt,libxml2 \
WEBKIT_VARS= RUBY_NO_RUN_DEPENDS=yes COMPILE_WEBKIT=true
# Move Gradle's home below ${WRKDIR} instead of using ${HOME}/.gradle
-GRADLE_ENV= GRADLE_USER_HOME=${WRKDIR}/gradle-home \
- CC=${CC} CXX=${CXX}
-GRADLE_RUN= ${SETENV} ${GRADLE_ENV} gradle4 --no-daemon
-
-PLIST_SUB= ARCH=${ARCH} \
- JAVA_HOME=${JAVA_HOME}
-WRKSRC= ${WRKDIR}/rt-${DISTVERSION}
+_GRADLE_ENV= CC=${WRKDIR}/bin/ccwrapper \
+ CXX=${WRKDIR}/bin/cxxwrapper \
+ GRADLE_USER_HOME=${WRKDIR}/gradle-home
+_GRADLE_RUN= ${SETENV} ${_GRADLE_ENV} gradle4 --no-daemon
# NOTE: This port won't build if ${JAVA_HOME}/jre/lib/ext/jfxrt.jar
# already exists on your system. This is not a problem in Poudriere
@@ -87,14 +91,21 @@ pre-patch:
${WRKSRC}/modules/media/src/main/native/gstreamer/projects/bsd
post-patch:
- @${CP} ${FILESDIR}/bsd.gradle ${WRKSRC}/buildSrc
+ @${MKDIR} ${WRKDIR}/bin
+ @${PRINTF} '#!/bin/sh\nexec ${CC} ${CFLAGS} ${LDFLAGS} "$$@"\n' > ${WRKDIR}/bin/ccwrapper
+ @${PRINTF} '#!/bin/sh\nexec ${CXX} ${CXXFLAGS} ${LDFLAGS} "$$@"\n' > ${WRKDIR}/bin/cxxwrapper
+ @${CHMOD} +x ${WRKDIR}/bin/ccwrapper ${WRKDIR}/bin/cxxwrapper
+ @${SED} -e 's@/linux@/freebsd@g' -e 's@-DLINUX@-DFREEBSD@g' -e 's@LINUX@BSD@g' \
+ -e 's@linux_@bsd_@g' -e 's@"-static-libgcc", "-static-libstdc++",@@g' \
+ -e 's@"gcc"@"${WRKDIR}/bin/ccwrapper"@g' -e 's@"g\+\+"@"${WRKDIR}/bin/cxxwrapper"@g' \
+ ${WRKSRC}/buildSrc/linux.gradle > ${WRKSRC}/buildSrc/bsd.gradle
# Add a *BSD native audio sink to GStreamer-lite instead of using the
# bundled ALSA sink. Currently we add an sndio sink, but this is an extension
# point for eventually adding an OSS backend (or others) as an option as well.
# If you add a new one make sure it registers itself as "bsdaudiosink" as defined
# in modules/media/src/main/native/jfxmedia/platform/gstreamer/GstPipelineFactory.cpp
@${MKDIR} ${WRKSRC}/modules/media/src/main/native/gstreamer/gstreamer-lite/gst-plugins-base/ext/bsdaudio
- @${CP} ${FILESDIR}/gstsndio.c ${FILESDIR}/sndiosink.c ${FILESDIR}/sndiosink.h \
+ @${CP} ${FILESDIR}/gstsndio.* ${FILESDIR}/sndiosink.* \
${WRKSRC}/modules/media/src/main/native/gstreamer/gstreamer-lite/gst-plugins-base/ext/bsdaudio
@cd ${WRKSRC}/modules/media/src/main/native/gstreamer/gstreamer-lite/gst-plugins-base/ext/bsdaudio && \
${LN} -s gstsndio.c gstbsdaudio.c && \
@@ -105,6 +116,9 @@ post-patch:
# Remove bundled libraries. We use the system's versions instead.
@cd ${WRKSRC}/modules/web/src/main/native/Source/ThirdParty && \
${RM} -r icu libxml libxslt sqlite
+ @${RM} -r ${WRKSRC}/modules/web/src/main/native/Source/WTF/icu
+ @cd ${WRKSRC}/modules/media/src/main/native/gstreamer/3rd_party && \
+ ${RM} -r glib libffi
post-patch-SWT-off:
@${RM} -r ${WRKSRC}/modules/graphics/src/main/java/com/sun/glass/ui/swt
@@ -118,7 +132,7 @@ do-configure:
@${ECHO_CMD} "BSD.compileSWT = ${COMPILE_SWT:Ufalse};" >> ${WRKSRC}/buildSrc/bsd.gradle
do-build:
- @cd ${WRKSRC} && ${GRADLE_RUN} zips
+ @cd ${WRKSRC} && ${_GRADLE_RUN} zips
do-install:
@${MKDIR} ${STAGEDIR}${JAVA_HOME}
@@ -127,6 +141,6 @@ do-install:
@${FIND} ${STAGEDIR}${JAVA_HOME}/jre -name '*.so' -exec ${STRIP_CMD} \{\} \;
do-test-TEST-on:
- @cd ${WRKSRC} && ${GRADLE_RUN} check test
+ @cd ${WRKSRC} && ${_GRADLE_RUN} check test
.include <bsd.port.mk>
diff --git a/java/openjfx8-devel/distinfo b/java/openjfx8-devel/distinfo
index 8e5744eec780..7f707e3ee585 100644
--- a/java/openjfx8-devel/distinfo
+++ b/java/openjfx8-devel/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1524062144
-SHA256 (openjfx8-8u172-b11.tar.gz) = 2e88966dadaa93d172a67b6bd6e9f32002ac41e5c4eabf625c143c53f4ed6391
-SIZE (openjfx8-8u172-b11.tar.gz) = 107629343
+TIMESTAMP = 1563779003
+SHA256 (openjfx8-8u202-b07.tar.gz) = ca98b6d0721a0e4b91d62672e81594c80a47cfb5ded241de50f10ade9884c400
+SIZE (openjfx8-8u202-b07.tar.gz) = 70669594
diff --git a/java/openjfx8-devel/files/bsd.gradle b/java/openjfx8-devel/files/bsd.gradle
deleted file mode 100644
index 4a77f9800493..000000000000
--- a/java/openjfx8-devel/files/bsd.gradle
+++ /dev/null
@@ -1,257 +0,0 @@
-/*
- * Copyright (c) 2013, 2015, 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.compileFXPackager = true;
-
-// Libraries end up in the sdk/rt/lib/$OS_ARCH directory for freebsd
-BSD.libDest = "lib/$OS_ARCH"
-
-// Lambda for naming the generated libs
-BSD.library = { name -> return "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
- "-W", "-Wall", "-Wno-unused", "-Wno-parentheses", "-Werror=implicit-function-declaration"] // warning flags
-
-if (!IS_64) {
- commonFlags += "-m32"
-}
-
-// Specify the compilation parameters and link parameters
-def ccFlags = [
- commonFlags, "-I$JDK_HOME/include", "-I$JDK_HOME/include/freebsd", "-c",
- IS_DEBUG_NATIVE ? ["-ggdb", "-DVERBOSE"] : ["-O2", "-DNDEBUG"]].flatten()
-//ccFlags.addAll(["-Wnon-virtual-dtor", "-Woverloaded-virtual", "-std=c++0x"])
-def linkFlags = ["-shared", commonFlags].flatten()
-
-// Create $buildDir/bsd_tools.properties file and load props from it
-setupTools("bsd_tools",
- { propFile ->
- ByteArrayOutputStream results = new ByteArrayOutputStream();
- exec {
- commandLine("pkg-config", "--cflags", "gtk+-2.0", "gthread-2.0", "xtst");
- setStandardOutput(results);
- }
- propFile << "cflags=" << results.toString().trim() << "\n";
-
- results = new ByteArrayOutputStream();
- exec {
- commandLine "pkg-config", "--libs", "gtk+-2.0", "gthread-2.0", "xtst"
- standardOutput = results
- }
- propFile << "libs=" << results.toString().trim();
- },
- { properties ->
- ccFlags.addAll(properties.getProperty("cflags").split(" "))
- linkFlags.addAll(properties.getProperty("libs").split(" "))
- }
-)
-
-def pangoCCFlags = ["-D_ENABLE_PANGO"];
-def pangoLinkFlags = [];
-setupTools("bsd_pango_tools",
- { propFile ->
- ByteArrayOutputStream results = new ByteArrayOutputStream();
- exec {
- commandLine "pkg-config", "--cflags", "pangoft2"
- standardOutput = results
- }
- propFile << "cflags=" << results.toString().trim() << "\n";
-
- results = new ByteArrayOutputStream();
- exec {
- commandLine "pkg-config", "--libs", "pangoft2"
- standardOutput = results
- }
- propFile << "libs=" << results.toString().trim();
- },
- { properties ->
- pangoCCFlags.addAll(properties.getProperty("cflags").split(" "))
- pangoLinkFlags.addAll(properties.getProperty("libs").split(" "))
- }
-)
-
-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 "pkg-config", "--cflags", "freetype2"
- standardOutput = results
- }
- propFile << "cflags=" << results.toString().trim() << "\n";
-
- results = new ByteArrayOutputStream();
- exec {
- commandLine "pkg-config", "--libs", "freetype2"
- standardOutput = results
- }
- propFile << "libs=" << results.toString().trim();
- },
- { properties ->
- freetypeCCFlags.addAll(properties.getProperty("cflags").split(" "))
- freetypeLinkFlags.addAll(properties.getProperty("libs").split(" "))
- }
-)
-
-def compiler = IS_COMPILE_PARFAIT ? "parfait-gcc" : "cc";
-def linker = IS_COMPILE_PARFAIT ? "parfait-g++" : "c++";
-
-BSD.glass = [:]
-BSD.glass.javahInclude = [
- "com/sun/glass/events/**",
- "com/sun/glass/ui/*",
- "com/sun/glass/ui/gtk/*"]
-BSD.glass.nativeSource = file("modules/graphics/src/main/native-glass/gtk")
-BSD.glass.compiler = compiler
-BSD.glass.ccFlags = [ccFlags, "-Werror"].flatten()
-BSD.glass.linker = linker
-BSD.glass.linkFlags = [linkFlags].flatten()
-BSD.glass.lib = "glass"
-
-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.javahInclude = ["com/sun/prism/impl/**/*", "com/sun/prism/PresentableState*"]
-BSD.prism.nativeSource = file("modules/graphics/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.javahInclude = ["com/sun/pisces/**/*"]
-BSD.prismSW.nativeSource = file("modules/graphics/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.launcher = [:]
-BSD.launcher.compiler = compiler
-BSD.launcher.ccFlags = ["-DJAVAARCH=\"$OS_ARCH\"", "-I$JDK_HOME/include", "-I$JDK_HOME/include/freebsd", "-c"]
-BSD.launcher.linker = linker
-BSD.launcher.linkFlags = ["-ldl"]
-if (!IS_64) {
- BSD.launcher.ccFlags += "-m32"
- BSD.launcher.linkFlags += "-m32"
-}
-
-BSD.launcherlibrary = [:]
-BSD.launcherlibrary.compiler = compiler
-BSD.launcherlibrary.ccFlags = ["-DJAVAARCH=\"$OS_ARCH\"", "-I$JDK_HOME/include", "-I$JDK_HOME/include/freebsd", "-c", "-fPIC"]
-BSD.launcherlibrary.linker = linker
-BSD.launcherlibrary.linkFlags = ["-ldl", "-lpthread", "-shared"]
-if (!IS_64) {
- BSD.launcherlibrary.ccFlags += "-m32"
- BSD.launcherlibrary.linkFlags += "-m32"
-}
-
-BSD.iio = [:]
-BSD.iio.javahInclude = ["com/sun/javafx/iio/**/*"]
-BSD.iio.nativeSource = [file("modules/graphics/src/main/native-iio")]
-BSD.iio.compiler = compiler
-BSD.iio.ccFlags = [ccFlags].flatten()
-BSD.iio.linker = linker
-BSD.iio.linkFlags = [linkFlags].flatten()
-BSD.iio.linkFlags += "-ljpeg"
-BSD.iio.lib = "javafx_iio"
-
-BSD.prismES2 = [:]
-BSD.prismES2.javahInclude = ["com/sun/prism/es2/**/*"]
-BSD.prismES2.nativeSource = [
- file("modules/graphics/src/main/native-prism-es2"),
- file("modules/graphics/src/main/native-prism-es2/GL"),
- file("modules/graphics/src/main/native-prism-es2/x11")
-]
-BSD.prismES2.compiler = compiler
-BSD.prismES2.ccFlags = ["-DFREEBSD", ccFlags].flatten()
-BSD.prismES2.linker = linker
-BSD.prismES2.linkFlags = [linkFlags, "-lX11", "-lXxf86vm", "-lGL"].flatten()
-BSD.prismES2.lib = "prism_es2"
-
-def closedDir = file("$projectDir/../rt-closed")
-BSD.font = [:]
-BSD.font.javahInclude = [
- "com/sun/javafx/font/**/*",
- "com/sun/javafx/text/**/*"]
-BSD.font.compiler = compiler
-BSD.font.nativeSource = [file("modules/graphics/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.fontT2K = [:]
-BSD.fontT2K.javahInclude = ["com/sun/javafx/font/t2k/**/*"]
-BSD.fontT2K.nativeSource = [
- file("$closedDir/javafx-font-t2k-native/src"),
- file("$closedDir/javafx-font-t2k-native/src/layout")]
-BSD.fontT2K.compiler = compiler
-BSD.fontT2K.ccFlags = ["-DJFXFONT_PLUS", "-DLE_STANDALONE", ccFlags].flatten()
-BSD.fontT2K.linker = linker
-BSD.fontT2K.linkFlags = [linkFlags].flatten()
-BSD.fontT2K.lib = "javafx_font_t2k"
-
-BSD.fontFreetype = [:]
-BSD.fontFreetype.javahInclude = ["com/sun/javafx/font/freetype/OSFreetype.class"]
-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 = [linkFlags, freetypeLinkFlags].flatten()
-BSD.fontFreetype.lib = "javafx_font_freetype"
-
-BSD.fontPango = [:]
-BSD.fontPango.javahInclude = ["com/sun/javafx/font/freetype/OSPango.class"]
-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 = [linkFlags, pangoLinkFlags].flatten()
-BSD.fontPango.lib = "javafx_font_pango"
-
-BSD.media = [:]
-BSD.media.compiler = compiler
-BSD.media.linker = linker
-BSD.media.lib = "ar"
diff --git a/java/openjfx8-devel/files/gstsndio.c b/java/openjfx8-devel/files/gstsndio.c
index 927ccef2f5af..4ef2cf1b5fdc 100644
--- a/java/openjfx8-devel/files/gstsndio.c
+++ b/java/openjfx8-devel/files/gstsndio.c
@@ -1,5 +1,6 @@
/*
- * Copyright (C) <2008> Jacob Meuser <jakemsr@sdf.lonestar.org>
+ * Copyright (C) 2008 Jacob Meuser <jakemsr@sdf.lonestar.org>
+ * Copyright (C) 2012 Alexandre Ratchov <alex@caoua.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -17,26 +18,379 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
-#include "sndiosink.h"
+
+#include <stdio.h>
+#include "gstsndio.h"
GST_DEBUG_CATEGORY (gst_sndio_debug);
+#define GST_CAT_DEFAULT gst_sndio_debug
+
+GType gst_sndiosink_get_type (void);
gboolean
plugin_init_alsa (GstPlugin * plugin)
{
- if (!gst_element_register (plugin, "bsdaudiosink", GST_RANK_PRIMARY,
- GST_TYPE_SNDIOSINK)) {
+ GST_DEBUG_CATEGORY_INIT (gst_sndio_debug, "sndio", 0, "sndio plugins");
+
+ /* prefer sndiosink over pulsesink (GST_RANK_PRIMARY + 10) */
+ if (!gst_element_register (plugin, "bsdaudiosink", GST_RANK_PRIMARY + 20,
+ gst_sndiosink_get_type()))
return FALSE;
+ return TRUE;
+}
+
+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
+ GST_VERSION_MINOR,
+ sndio,
+ "sndio plugin library",
+ plugin_init_alsa, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)
+
+/*
+ * common code to src and sink
+ */
+
+void
+gst_sndio_init (struct gstsndio *sio, GObject *obj)
+{
+ sio->obj = obj;
+ sio->hdl = NULL;
+ sio->device = g_strdup (SIO_DEVANY);
+}
+
+void
+gst_sndio_finalize (struct gstsndio *sio)
+{
+ gst_caps_replace (&sio->cur_caps, NULL);
+ g_free (sio->device);
+}
+
+GstCaps *
+gst_sndio_getcaps (struct gstsndio *sio, GstCaps * filter)
+{
+ if (sio->cur_caps == NULL) {
+ /* XXX */
+ GST_LOG_OBJECT (sio->obj, "getcaps called, returning template caps");
+ return NULL;
+ }
+
+ GST_LOG_OBJECT (sio->obj, "returning %" GST_PTR_FORMAT, sio->cur_caps);
+
+ if (filter) {
+ return gst_caps_intersect_full (filter,
+ sio->cur_caps, GST_CAPS_INTERSECT_FIRST);
+ } else {
+ return gst_caps_ref (sio->cur_caps);
+ }
+}
+
+static void
+gst_sndio_onvol (void *arg, unsigned int vol)
+{
+ struct gstsndio *sio = arg;
+ sio->volume = vol;
+ g_object_notify (G_OBJECT (sio->obj), "mute");
+ g_object_notify (G_OBJECT (sio->obj), "volume");
+}
+
+gboolean
+gst_sndio_open (struct gstsndio *sio, gint mode)
+{
+ GValue list = G_VALUE_INIT, item = G_VALUE_INIT;
+ GstStructure *s;
+ GstCaps *caps;
+ struct sio_enc *enc;
+ struct sio_cap cap;
+ char fmt[16];
+ int i, chan;
+
+ GST_DEBUG_OBJECT (sio->obj, "open");
+
+ sio->hdl = sio_open (sio->device, mode, 0);
+ if (sio->hdl == NULL) {
+ GST_ELEMENT_ERROR (sio->obj, RESOURCE, OPEN_READ_WRITE,
+ ("Couldn't open sndio device"), (NULL));
+ return FALSE;
+ }
+ sio->mode = mode;
+
+ if (!sio_getcap(sio->hdl, &cap)) {
+ GST_ELEMENT_ERROR (sio, RESOURCE, OPEN_WRITE,
+ ("Couldn't get device capabilities"), (NULL));
+ sio_close(sio->hdl);
+ sio->hdl = NULL;
+ return FALSE;
+ }
+ if (cap.nconf == 0) {
+ GST_ELEMENT_ERROR (sio, RESOURCE, OPEN_WRITE,
+ ("Device has empty capabilities"), (NULL));
+ sio_close(sio->hdl);
+ sio->hdl = NULL;
+ return FALSE;
+ }
+ sio_onvol (sio->hdl, gst_sndio_onvol, sio);
+
+ caps = gst_caps_new_empty ();
+ s = gst_structure_new ("audio/x-raw", (char *)NULL, (void *)NULL);
+
+ /*
+ * scan supported rates
+ */
+ g_value_init (&list, GST_TYPE_LIST);
+ g_value_init (&item, G_TYPE_INT);
+ for (i = 0; i < SIO_NRATE; i++) {
+ if ((cap.confs[0].rate & (1 << i)) == 0)
+ continue;
+ g_value_set_int(&item, cap.rate[i]);
+ gst_value_list_append_value (&list, &item);
+ }
+ gst_structure_set_value (s, "rate", &list);
+ g_value_unset (&item);
+ g_value_unset (&list);
+
+ /*
+ * scan supported channels
+ */
+ g_value_init (&list, GST_TYPE_LIST);
+ g_value_init (&item, G_TYPE_INT);
+ chan = (mode == SIO_PLAY) ? cap.confs[0].pchan : cap.confs[0].rchan;
+ for (i = 0; i < SIO_NCHAN; i++) {
+ if ((chan & (1 << i)) == 0)
+ continue;
+ g_value_set_int(&item, (mode == SIO_PLAY) ? cap.pchan[i] : cap.rchan[i]);
+ gst_value_list_append_value (&list, &item);
+ }
+ gst_structure_set_value (s, "channels", &list);
+ g_value_unset (&item);
+ g_value_unset (&list);
+
+ /*
+ * scan supported encodings
+ */
+ g_value_init (&list, GST_TYPE_LIST);
+ g_value_init (&item, G_TYPE_STRING);
+ for (i = 0; i < SIO_NENC; i++) {
+ if ((cap.confs[0].enc & (1 << i)) == 0)
+ continue;
+ enc = cap.enc + i;
+ if (enc->bits % 8 != 0)
+ continue;
+ if (enc->bits < enc->bps * 8 && enc->msb)
+ continue;
+ if (enc->bits == enc->bps * 8) {
+ snprintf(fmt, sizeof(fmt), "%s%u%s",
+ enc->sig ? "S" : "U",
+ enc->bits,
+ enc->bps > 1 ? (enc->le ? "LE" : "BE") : "");
+ } else {
+ snprintf(fmt, sizeof(fmt), "%s%u_%u%s",
+ enc->sig ? "S" : "U",
+ enc->bits,
+ enc->bps * 8,
+ enc->bps > 1 ? (enc->le ? "LE" : "BE") : "");
+ }
+ g_value_set_string(&item, fmt);
+ gst_value_list_append_value (&list, &item);
}
+ gst_structure_set_value (s, "format", &list);
+ g_value_unset (&item);
+ g_value_unset (&list);
- GST_DEBUG_CATEGORY_INIT (gst_sndio_debug, "sndio", 0, "sndio elements");
+ /*
+ * add the only supported layout: interleaved
+ */
+ g_value_init (&item, G_TYPE_STRING);
+ g_value_set_string(&item, "interleaved");
+ gst_structure_set_value (s, "layout", &item);
+ g_value_unset (&item);
-#ifdef ENABLE_NLS
- GST_DEBUG ("binding text domain %s to locale dir %s", GETTEXT_PACKAGE,
- LOCALEDIR);
- bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-#endif /* ENABLE_NLS */
+ gst_caps_append_structure (caps, s);
+ sio->cur_caps = caps;
+ GST_DEBUG ("caps are %s", gst_caps_to_string(caps));
+ return TRUE;
+}
+
+gboolean
+gst_sndio_close (struct gstsndio *sio)
+{
+ GST_DEBUG_OBJECT (sio->obj, "close");
+ gst_caps_replace (&sio->cur_caps, NULL);
+ sio_close (sio->hdl);
+ sio->hdl = NULL;
return TRUE;
}
+
+static void
+gst_sndio_cb (void *addr, int delta)
+{
+ struct gstsndio *sio = addr;
+
+ delta *= sio->bpf;
+ if (sio->mode == SIO_PLAY)
+ sio->delay -= delta;
+ else
+ sio->delay += delta;
+}
+
+gboolean
+gst_sndio_prepare (struct gstsndio *sio, GstAudioRingBufferSpec *spec)
+{
+ struct sio_par par, retpar;
+ unsigned nchannels;
+
+ GST_DEBUG_OBJECT (sio, "prepare");
+
+ if (spec->type != GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW) {
+ GST_ELEMENT_ERROR (sio, RESOURCE, OPEN_READ_WRITE,
+ ("Only raw buffer format supported by sndio"), (NULL));
+ return FALSE;
+ }
+ if (!GST_AUDIO_INFO_IS_INTEGER(&spec->info)) {
+ GST_ELEMENT_ERROR (sio, RESOURCE, OPEN_READ_WRITE,
+ ("Only integer format supported"), (NULL));
+ return FALSE;
+ }
+ if (GST_AUDIO_INFO_DEPTH(&spec->info) % 8) {
+ GST_ELEMENT_ERROR (sio, RESOURCE, OPEN_READ_WRITE,
+ ("Only depths multiple of 8 are supported"), (NULL));
+ return FALSE;
+ }
+
+ sio_initpar (&par);
+ switch (GST_AUDIO_INFO_FORMAT (&spec->info)) {
+ case GST_AUDIO_FORMAT_S8:
+ case GST_AUDIO_FORMAT_U8:
+ case GST_AUDIO_FORMAT_S16LE:
+ case GST_AUDIO_FORMAT_S16BE:
+ case GST_AUDIO_FORMAT_U16LE:
+ case GST_AUDIO_FORMAT_U16BE:
+ case GST_AUDIO_FORMAT_S32LE:
+ case GST_AUDIO_FORMAT_S32BE:
+ case GST_AUDIO_FORMAT_U32LE:
+ case GST_AUDIO_FORMAT_U32BE:
+ case GST_AUDIO_FORMAT_S24_32LE:
+ case GST_AUDIO_FORMAT_S24_32BE:
+ case GST_AUDIO_FORMAT_U24_32LE:
+ case GST_AUDIO_FORMAT_U24_32BE:
+ case GST_AUDIO_FORMAT_S24LE:
+ case GST_AUDIO_FORMAT_S24BE:
+ case GST_AUDIO_FORMAT_U24LE:
+ case GST_AUDIO_FORMAT_U24BE:
+ break;
+ default:
+ GST_ELEMENT_ERROR (sio, RESOURCE, OPEN_READ_WRITE,
+ ("Unsupported audio format"),
+ ("format = %d", GST_AUDIO_INFO_FORMAT (&spec->info)));
+ return FALSE;
+ }
+ par.sig = GST_AUDIO_INFO_IS_SIGNED(&spec->info);
+ par.bits = GST_AUDIO_INFO_WIDTH(&spec->info);
+ par.bps = GST_AUDIO_INFO_DEPTH(&spec->info) / 8;
+ if (par.bps > 1)
+ par.le = GST_AUDIO_INFO_IS_LITTLE_ENDIAN(&spec->info);
+ if (par.bits < par.bps * 8)
+ par.msb = 0;
+ par.rate = GST_AUDIO_INFO_RATE(&spec->info);
+ if (sio->mode == SIO_PLAY)
+ par.pchan = GST_AUDIO_INFO_CHANNELS(&spec->info);
+ else
+ par.rchan = GST_AUDIO_INFO_CHANNELS(&spec->info);
+ par.round = par.rate / 1000000. * spec->latency_time;
+ par.appbufsz = par.rate / 1000000. * spec->buffer_time;
+
+ if (!sio_setpar (sio->hdl, &par)) {
+ GST_ELEMENT_ERROR (sio, RESOURCE, OPEN_WRITE,
+ ("Unsupported audio encoding"), (NULL));
+ return FALSE;
+ }
+ if (!sio_getpar (sio->hdl, &retpar)) {
+ GST_ELEMENT_ERROR (sio, RESOURCE, OPEN_WRITE,
+ ("Couldn't get audio device parameters"), (NULL));
+ return FALSE;
+ }
+#if 0
+ GST_DEBUG ("format = %s, "
+ "requested: sig = %d, bits = %d, bps = %d, le = %d, msb = %d, "
+ "rate = %d, pchan = %d, round = %d, appbufsz = %d; "
+ "returned: sig = %d, bits = %d, bps = %d, le = %d, msb = %d, "
+ "rate = %d, pchan = %d, round = %d, appbufsz = %d, bufsz = %d",
+ GST_AUDIO_INFO_NAME(&spec->info),
+ par.sig, par.bits, par.bps, par.le, par.msb,
+ par.rate, par.pchan, par.round, par.appbufsz,
+ retpar.sig, retpar.bits, retpar.bps, retpar.le, retpar.msb,
+ retpar.rate, retpar.pchan, retpar.round, retpar.appbufsz, retpar.bufsz);
+#endif
+ if (par.bits != retpar.bits ||
+ par.bps != retpar.bps ||
+ par.rate != retpar.rate ||
+ (sio->mode == SIO_PLAY && par.pchan != retpar.pchan) ||
+ (sio->mode == SIO_REC && par.rchan != retpar.rchan) ||
+ (par.bps > 1 && par.le != retpar.le) ||
+ (par.bits < par.bps * 8 && par.msb != retpar.msb)) {
+ GST_ELEMENT_ERROR (sio, RESOURCE, OPEN_WRITE,
+ ("Audio device refused requested parameters"), (NULL));
+ return FALSE;
+ }
+
+ nchannels = (sio->mode == SIO_PLAY) ? retpar.pchan : retpar.rchan;
+ spec->segsize = retpar.round * retpar.bps * nchannels;
+ spec->segtotal = retpar.bufsz / retpar.round;
+ sio->bpf = retpar.bps * nchannels;
+ sio->delay = 0;
+ sio_onmove (sio->hdl, gst_sndio_cb, sio);
+
+ if (!sio_start (sio->hdl)) {
+ GST_ELEMENT_ERROR (sio->obj, RESOURCE, OPEN_READ_WRITE,
+ ("Could not start sndio"), (NULL));
+ return FALSE;
+ }
+ return TRUE;
+}
+
+gboolean
+gst_sndio_unprepare (struct gstsndio *sio)
+{
+ if (sio->hdl)
+ sio_stop (sio->hdl);
+ return TRUE;
+}
+
+void
+gst_sndio_set_property (struct gstsndio *sio, guint prop_id,
+ const GValue * value, GParamSpec * pspec)
+{
+ switch (prop_id) {
+ case PROP_DEVICE:
+ g_free (sio->device);
+ sio->device = g_value_dup_string (value);
+ break;
+ case PROP_VOLUME:
+ sio_setvol (sio->hdl, g_value_get_double (value) * SIO_MAXVOL);
+ break;
+ case PROP_MUTE:
+ if (g_value_get_boolean (value))
+ sio_setvol (sio->hdl, 0);
+ break;
+ default:
+ break;
+ }
+}
+
+void
+gst_sndio_get_property (struct gstsndio *sio, guint prop_id,
+ GValue * value, GParamSpec * pspec)
+{
+ switch (prop_id) {
+ case PROP_DEVICE:
+ g_value_set_string (value, sio->device);
+ break;
+ case PROP_VOLUME:
+ g_value_set_double (value, (gdouble)sio->volume / SIO_MAXVOL);
+ break;
+ case PROP_MUTE:
+ g_value_set_boolean (value, (sio->volume == 0));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (sio->obj, prop_id, pspec);
+ }
+}
diff --git a/java/openjfx8-devel/files/gstsndio.h b/java/openjfx8-devel/files/gstsndio.h
new file mode 100644
index 000000000000..77ec4e6f86a5
--- /dev/null
+++ b/java/openjfx8-devel/files/gstsndio.h
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2012 Alexandre Ratchov <alex@caoua.org>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+#ifndef __GST_SNDIO_H__
+#define __GST_SNDIO_H__
+
+#include <sndio.h>
+#include <gst/gst.h>
+#include <gst/audio/gstaudiosink.h>
+#include <gst/audio/gstaudiosrc.h>
+#include <gst/audio/streamvolume.h>
+
+enum
+{
+ PROP_0,
+ PROP_DEVICE,
+ PROP_VOLUME,
+ PROP_MUTE
+};
+
+#define GST_SNDIO_CAPS_STRING \
+ "audio/x-raw, " \
+ "format = (string) { " \
+ "S8, U8, " \
+ "S16LE, S16BE, U16LE, U16BE, " \
+ "S32LE, S32BE, U32LE, U32BE, " \
+ "S24_32LE, S24_32BE, U24_32LE, " \
+ "U24_32BE, S24LE, S24BE, U24LE, U24BE " \
+ "}, " \
+ "layout = (string) interleaved, " \
+ "rate = (int) [ 8000, 192000 ], " \
+ "channels = (int) [1, 16]"
+
+/*
+ * data common to src and sink
+ */
+struct gstsndio {
+ struct sio_hdl *hdl;
+ gchar *device;
+ gint mode;
+ gint bpf; /* bytes per frame */
+ gint delay; /* bytes stored in the audio fifo */
+ guint volume; /* volume level */
+ GstCaps *cur_caps; /* saved capabilities of opened device */
+ GObject *obj; /* for logging */
+};
+
+#define GST_SNDIO_DELAY(s) ((s)->delay / (s)->bpf)
+
+void gst_sndio_init (struct gstsndio *sio, GObject *obj);
+void gst_sndio_finalize (struct gstsndio *sio);
+GstCaps *gst_sndio_getcaps (struct gstsndio *sio, GstCaps * filter);
+gboolean gst_sndio_open (struct gstsndio *sio, gint mode);
+gboolean gst_sndio_close (struct gstsndio *sio);
+gboolean gst_sndio_prepare (struct gstsndio *sio, GstAudioRingBufferSpec *spec);
+gboolean gst_sndio_unprepare (struct gstsndio *sio);
+void gst_sndio_set_property (struct gstsndio *sio, guint prop_id,
+ const GValue * value, GParamSpec * pspec);
+void gst_sndio_get_property (struct gstsndio *sio, guint prop_id,
+ GValue * value, GParamSpec * pspec);
+
+int gst_sndio_setpar(gpointer sio, GstAudioRingBufferSpec * spec,
+ int mode, struct sio_hdl *hdl);
+GstCaps *gst_sndio_caps (gpointer sio, int mode, struct sio_hdl *hdl);
+
+#endif
diff --git a/java/openjfx8-devel/files/patch-build.gradle b/java/openjfx8-devel/files/patch-build.gradle
index cf1fd4e50a79..60783880255f 100644
--- a/java/openjfx8-devel/files/patch-build.gradle
+++ b/java/openjfx8-devel/files/patch-build.gradle
@@ -1,6 +1,6 @@
---- build.gradle.orig 2018-01-16 01:40:56 UTC
+--- build.gradle.orig 2018-12-10 16:30:22 UTC
+++ build.gradle
-@@ -251,6 +251,7 @@ ext.IS_64 = OS_ARCH.toLowerCase().contains("64")
+@@ -253,6 +253,7 @@ ext.IS_64 = OS_ARCH.toLowerCase().contains("64")
ext.IS_MAC = OS_NAME.contains("mac") || OS_NAME.contains("darwin")
ext.IS_WINDOWS = OS_NAME.contains("windows")
ext.IS_LINUX = OS_NAME.contains("linux")
@@ -8,7 +8,7 @@
// Get the JDK_HOME automatically based on the version of Java used to execute gradle. Or, if specified,
// use a user supplied JDK_HOME, STUB_RUNTIME, JAVAC, and/or JAVAH, all of which may be specified
-@@ -311,7 +312,7 @@ defineProperty("COMPILE_MEDIA", "false")
+@@ -313,7 +314,7 @@ defineProperty("COMPILE_MEDIA", "false")
ext.IS_COMPILE_MEDIA = Boolean.parseBoolean(COMPILE_MEDIA)
// COMPILE_PANGO specifies whether to build javafx_font_pango.
@@ -17,17 +17,17 @@
ext.IS_COMPILE_PANGO = Boolean.parseBoolean(COMPILE_PANGO)
// COMPILE_HARFBUZZ specifies whether to use Harfbuzz.
-@@ -342,7 +343,8 @@ ext.SWT_FILE_NAME = IS_MAC ? "org.eclipse.swt.cocoa.ma
- IS_WINDOWS && IS_64 ? "org.eclipse.swt.win32.win32.x86_64_3.7.2.v3740f" :
- IS_WINDOWS && !IS_64 ? "org.eclipse.swt.win32.win32.x86_3.7.2.v3740f" :
- IS_LINUX && IS_64 ? "org.eclipse.swt.gtk.linux.x86_64_3.7.2.v3740f" :
-- IS_LINUX && !IS_64 ? "org.eclipse.swt.gtk.linux.x86_3.7.2.v3740f" : ""
-+ IS_LINUX && !IS_64 ? "org.eclipse.swt.gtk.linux.x86_3.7.2.v3740f" :
+@@ -344,7 +345,8 @@ ext.SWT_FILE_NAME = IS_MAC ? "org.eclipse.swt.cocoa.ma
+ IS_WINDOWS && IS_64 ? "org.eclipse.swt.win32.win32.x86_64_3.105.3.v20170228-0512" :
+ IS_WINDOWS && !IS_64 ? "org.eclipse.swt.win32.win32.x86_3.105.3.v20170228-0512" :
+ IS_LINUX && IS_64 ? "org.eclipse.swt.gtk.linux.x86_64_3.105.3.v20170228-0512" :
+- IS_LINUX && !IS_64 ? "org.eclipse.swt.gtk.linux.x86_3.105.3.v20170228-0512" : ""
++ IS_LINUX && !IS_64 ? "org.eclipse.swt.gtk.linux.x86_3.105.3.v20170228-0512" :
+ IS_BSD ? "/usr/local/share/java/classes/swt-devel.jar" : ""
// Build javadocs only if BUILD_JAVADOC=true
defineProperty("BUILD_JAVADOC", "false")
-@@ -402,6 +404,12 @@ if (IS_MAC) {
+@@ -404,6 +406,12 @@ if (IS_MAC) {
defineProperty("NUM_COMPILE_THREADS", "${Runtime.runtime.availableProcessors()}")
}
@@ -40,7 +40,7 @@
//
// The next three sections of properties are used to generate the
// VersionInfo class, and the Windows DLL manifest.
-@@ -442,7 +450,7 @@ defineProperty("RELEASE_MILESTONE", jfxReleaseMileston
+@@ -444,7 +452,7 @@ defineProperty("RELEASE_MILESTONE", jfxReleaseMileston
// Check whether the COMPILE_TARGETS property has been specified (if so, it was done by
// the user and not by this script). If it has not been defined then default
// to building the normal desktop build for this machine
@@ -49,7 +49,7 @@
defineProperty("COMPILE_TARGETS", "$defaultHostTarget")
// Flag indicating whether to import cross compile tools
-@@ -549,7 +557,7 @@ void fetchExternalTools(String configName, List packag
+@@ -551,7 +559,7 @@ void fetchExternalTools(String configName, List packag
def File pkgdir = file("$destdir/$basename")
if (pkgname.endsWith(".tgz")) {
@@ -58,7 +58,7 @@
// use native tar to support symlinks
pkgdir.mkdirs()
exec {
-@@ -674,7 +682,7 @@ compileTargets { t ->
+@@ -676,7 +684,7 @@ compileTargets { t ->
if (!targetProperties.containsKey('includeMonocle')) targetProperties.includeMonocle = false
if (!targetProperties.containsKey('includeEGL')) targetProperties.includeEGL = false
@@ -67,7 +67,7 @@
// This value is used to under ./build/${sdkDirName} to allow for
// a common name for the hosted build (for use when building apps)
-@@ -706,7 +714,7 @@ compileTargets { t ->
+@@ -708,7 +716,7 @@ compileTargets { t ->
// at present building on PI is not supported, but we would only need to make
// some changes on assumptions on what should be built (like SWT / Swing) and
// such and we could probably make it work.
@@ -76,7 +76,7 @@
if (IS_WINDOWS && OS_ARCH != "x86" && OS_ARCH != "amd64") {
throw new Exception("Unknown and unsupported build architecture: $OS_ARCH")
} else if (IS_MAC && OS_ARCH != "x86_64") {
-@@ -1169,7 +1177,8 @@ allprojects {
+@@ -1165,7 +1173,8 @@ allprojects {
// By default all of our projects require junit for testing so we can just
// setup this dependency here.
dependencies {
@@ -86,7 +86,7 @@
if (BUILD_CLOSED && DO_JCOV) {
testCompile name: "jcov"
}
-@@ -1307,12 +1316,15 @@ project(":graphics") {
+@@ -1303,12 +1312,15 @@ project(":graphics") {
dependencies {
compile project(":base"), BUILD_SRC
@@ -107,47 +107,17 @@
}
// Create a single "native" task which will depend on all the individual native tasks for graphics
-@@ -1461,7 +1473,7 @@ project(":graphics") {
- workingDir = "modules/graphics"
- main = settings.generator
- classpath = configurations.compile + configurations.antlr3
-- classpath += files("$buildDir/classes/main")
-+ classpath += files("$buildDir/classes/java/main")
- classpath += files("$buildDir/classes/jsl-compilers/decora")
- args = ["-i", sourceDir, "-o", destinationDir, "-t", "-pkg", "com/sun/scenario/effect", "$settings.outputs", "$settings.fileName"]
- jvmArgs "-Djava.ext.dirs="
-@@ -1472,9 +1484,9 @@ project(":graphics") {
- task generateDecoraNativeHeaders(type: JavaHeaderTask, dependsOn: compileDecoraJavaShaders) {
- description = "Generates JNI Headers for Decora SSE Natives"
- source file("$buildDir/classes/jsl-decora")
-- source file("$buildDir/classes/main")
-+ source file("$buildDir/classes/java/main")
- include("com/sun/scenario/effect/impl/sw/sse/*");
-- classpath = files("$buildDir/classes/main", "$buildDir/classes/jsl-decora")
-+ classpath = files("$buildDir/classes/java/main", "$buildDir/classes/jsl-decora")
- output = file("$buildDir/generated-src/headers/jsl-decora")
- }
-
-@@ -1602,9 +1614,7 @@ project(":graphics") {
- copy {
- into libsDir
- from f.getParentFile()
-- include "**/antlr-3.1.3.jar"
-- include "**/stringtemplate-3.2.jar"
-- include "**/antlr-runtime-3.1.3.jar"
-+ include "**/antlr-3.5.2-complete.jar"
- includeEmptyDirs = false
- }
- // Have to rename the swt jar because it is some platform specific name but
-@@ -1651,7 +1661,7 @@ project(":controls") {
- javaexec {
- executable = JAVA
- workingDir = "modules/controls"
-- classpath files("$buildDir/classes/main",
-+ classpath files("$buildDir/classes/java/main",
- project(":graphics").sourceSets.main.output,
- project(":base").sourceSets.main.output)
- main = "com.sun.javafx.css.parser.Css2Bin"
+@@ -1599,9 +1611,7 @@ project(":graphics") {
+ copy {
+ into libsDir
+ from f.getParentFile()
+- include "**/antlr-3.1.3.jar"
+- include "**/stringtemplate-3.2.jar"
+- include "**/antlr-runtime-3.1.3.jar"
++ include "**/antlr-3.5.2-complete.jar"
+ includeEmptyDirs = false
+ }
+ // Have to rename the swt jar because it is some platform specific name but
@@ -1688,7 +1698,11 @@ project(":swt") {
}
dependencies {
@@ -161,7 +131,7 @@
}
}
-@@ -1787,7 +1801,7 @@ project(":fxpackager") {
+@@ -1794,7 +1808,7 @@ project(":fxpackager") {
}
dependencies {
@@ -170,30 +140,23 @@
}
// When producing the jar, we need to relocate a few class files
-@@ -2038,7 +2052,7 @@ project(":fxpackager") {
- description = "Creates the packager.jar"
- archiveName = "packager.jar";
- includeEmptyDirs = false
-- from("$buildDir/classes/main");
-+ from("$buildDir/classes/java/main");
- from("$buildDir/resources/main");
- include('jdk/packager/**')
-
-@@ -2048,21 +2062,6 @@ project(":fxpackager") {
+@@ -2055,23 +2069,6 @@ project(":fxpackager") {
jar.dependsOn buildJavaPackager
jar.dependsOn packagerJar
-- classes << {
-- // Copy all of the download libraries to libs directory for the sake of the IDEs
-- File libsDir = rootProject.file("build/libs");
-- File antLib = new File(libsDir, "ant-1.8.2.jar")
-- libsDir.mkdirs();
-- for (File f : configurations.compile.files) {
-- copy {
-- into libsDir
-- from f.getParentFile()
-- include "**/ant-1.8.2.jar"
-- includeEmptyDirs = false
+- classes {
+- doLast {
+- // Copy all of the download libraries to libs directory for the sake of the IDEs
+- File libsDir = rootProject.file("build/libs");
+- File antLib = new File(libsDir, "ant-1.8.2.jar")
+- libsDir.mkdirs();
+- for (File f : configurations.compile.files) {
+- copy {
+- into libsDir
+- from f.getParentFile()
+- include "**/ant-1.8.2.jar"
+- includeEmptyDirs = false
+- }
- }
- }
- }
@@ -201,7 +164,7 @@
task packagerFakeJar(type: Jar) {
dependsOn compileTestJava
from compileTestJava.destinationDir
-@@ -2241,7 +2240,7 @@ project(":media") {
+@@ -2250,7 +2247,7 @@ project(":media") {
doLast {
exec {
@@ -210,7 +173,7 @@
args("JAVA_HOME=${JDK_HOME}", "GENERATED_HEADERS_DIR=${generatedHeadersDir}",
"OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}", "BASE_NAME=jfxmedia",
"COMPILE_PARFAIT=${compileParfait}")
-@@ -2251,7 +2250,7 @@ project(":media") {
+@@ -2260,7 +2257,7 @@ project(":media") {
args(IS_64 ? "ARCH=x64" : "ARCH=x32", "RESOURCE=${nativeOutputDir}/${buildType}/${WIN.media.jfxmediaRcFile}")
} else {
args ("CC=${mediaProperties.compiler}", "LINK=${mediaProperties.linker}", "LIB=${mediaProperties.lib}")
@@ -219,7 +182,7 @@
args(IS_64 ? "ARCH=x64" : "ARCH=x32")
}
-@@ -2273,7 +2272,7 @@ project(":media") {
+@@ -2282,7 +2279,7 @@ project(":media") {
enabled = IS_COMPILE_MEDIA
doLast {
exec {
@@ -228,7 +191,7 @@
args("OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}", "BASE_NAME=gstreamer-lite")
if (t.name == "win") {
-@@ -2281,7 +2280,7 @@ project(":media") {
+@@ -2290,7 +2287,7 @@ project(":media") {
args(IS_64 ? "ARCH=x64" : "ARCH=x32", "RESOURCE=${nativeOutputDir}/${buildType}/${WIN.media.gstreamerRcFile}")
} else {
args ("CC=${mediaProperties.compiler}", "LINK=${mediaProperties.linker}", "LIB=${mediaProperties.lib}")
@@ -237,7 +200,7 @@
args(IS_64 ? "ARCH=x64" : "ARCH=x32")
}
}
-@@ -2302,7 +2301,7 @@ project(":media") {
+@@ -2311,7 +2308,7 @@ project(":media") {
doLast {
exec {
@@ -246,7 +209,7 @@
args("OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}", "BASE_NAME=fxplugins",
"ON2_SRCDIR=${project.ext.ON2_SRCDIR}", "ON2_LIB=${project.ext.ON2_LIB}")
-@@ -2319,7 +2318,7 @@ project(":media") {
+@@ -2328,7 +2325,7 @@ project(":media") {
args(IS_64 ? "ARCH=x64" : "ARCH=x32", "RESOURCE=${nativeOutputDir}/${buildType}/${WIN.media.fxpluginsRcFile}")
} else {
args ("CC=${mediaProperties.compiler}", "LINK=${mediaProperties.linker}", "LIB=${mediaProperties.lib}")
@@ -255,7 +218,7 @@
args(IS_64 ? "ARCH=x64" : "ARCH=x32")
}
}
-@@ -2329,7 +2328,7 @@ project(":media") {
+@@ -2338,7 +2335,7 @@ project(":media") {
buildNative.dependsOn buildPlugins
@@ -264,7 +227,7 @@
def buildAVPlugin = task( "buildAVPlugin", dependsOn: [buildPlugins]) {
enabled = IS_COMPILE_MEDIA
-@@ -2340,7 +2339,7 @@ project(":media") {
+@@ -2349,7 +2346,7 @@ project(":media") {
File dir = file(libavDir)
if (dir.exists()) {
exec {
@@ -273,7 +236,7 @@
args("CC=${mediaProperties.compiler}", "OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}",
"BASE_NAME=avplugin", "VERSION=${version}", "LIBAV_DIR=${libavDir}",
"SUFFIX=", IS_64 ? "ARCH=x64" : "ARCH=x32")
-@@ -2353,7 +2352,7 @@ project(":media") {
+@@ -2362,7 +2359,7 @@ project(":media") {
File dir = file(libavDir)
if (dir.exists()) {
exec {
@@ -282,16 +245,16 @@
args("CC=${mediaProperties.compiler}", "LINKER=${mediaProperties.linker}",
"OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}",
"BASE_NAME=avplugin", "VERSION=${version}", "LIBAV_DIR=${libavDir}",
-@@ -2364,7 +2363,7 @@ project(":media") {
+@@ -2373,7 +2370,7 @@ project(":media") {
} else {
// Building fxavcodec plugin (libav plugin)
exec {
- commandLine ("make", "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/linux/avplugin")
-+ commandLine (MAKE_CMD, "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/linux/avplugin")
++ commandLine (MAKE_CMD, "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/${t.name}/avplugin")
args("CC=${mediaProperties.compiler}", "OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}",
"BASE_NAME=avplugin", IS_64 ? "ARCH=x64" : "ARCH=x32")
}
-@@ -2412,7 +2411,7 @@ project(":media") {
+@@ -2423,7 +2420,7 @@ project(":media") {
doLast {
exec {
environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT)
@@ -300,130 +263,53 @@
args("OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}", "BASE_NAME=glib-lite",
IS_64 ? "ARCH=x64" : "ARCH=x32", "RESOURCE=${nativeOutputDir}/${buildType}/${WIN.media.glibRcFile}")
}
-@@ -2425,7 +2424,7 @@ project(":media") {
- enabled = IS_COMPILE_MEDIA
- doLast {
+@@ -2442,7 +2439,7 @@ project(":media") {
+ }
+
exec {
- commandLine ("make", "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/${projectDir}/glib-lite")
+ commandLine (MAKE_CMD, "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/${projectDir}/glib-lite")
args("OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}", "BASE_NAME=glib-lite")
args ("CC=${mediaProperties.compiler}", "LINK=${mediaProperties.linker}", "LIB=${mediaProperties.lib}")
}
-@@ -2478,7 +2477,7 @@ project(":web") {
-
- task generateHeaders(dependsOn: compileJava) {
- doLast {
-- def classpath = files("$buildDir/classes/main",
-+ def classpath = files("$buildDir/classes/java/main",
- project(":graphics").sourceSets.main.output.classesDir)
- def dest = file("$buildDir/generated-src/headers");
- mkdir dest;
-@@ -2525,7 +2524,7 @@ project(":web") {
-
+@@ -2562,7 +2559,7 @@ project(":web") {
compileTargets { t ->
def targetProperties = project.rootProject.ext[t.upper]
+ def webkitProperties = targetProperties.webkit
- def classifier = (t.name != "linux" && t.name != "win") ? t.name :
+ def classifier = (t.name != "linux" && t.name != "bsd" && t.name != "win") ? t.name :
IS_64 ? "${t.name}-amd64" : "${t.name}-i586"
def webkitOutputDir = cygpath("$buildDir/${t.name}")
-@@ -2592,6 +2591,9 @@ project(":web") {
- targetCpuBitDepthSwitch = "--32-bit"
- }
-
-+ cmakeArgs += " -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON"
-+ cmakeArgs += " -DCMAKE_C_COMPILER:STRING=${System.getenv("CC")}"
-+ cmakeArgs += " -DCMAKE_CXX_COMPILER:STRING=${System.getenv("CXX")}"
- commandLine("perl", "$projectDir/src/main/native/Tools/Scripts/build-webkit",
- "--java", "--icu-unicode", targetCpuBitDepthSwitch,
- "--cmakeargs=${cmakeArgs}")
-@@ -2634,7 +2636,7 @@ project(":web") {
- task drtJar(type: Jar, dependsOn: compileJava) {
- archiveName = "drt.jar"
- destinationDir = file("$buildDir/test")
-- from "$buildDir/classes/main"
-+ from "$buildDir/classes/java/main"
- include drtClasses
- }
- if (IS_COMPILE_WEBKIT) {
-@@ -2886,22 +2888,22 @@ compileTargets { t ->
- description = "Creates the jfxrt.jar for the $t.name target"
- archiveName = "build/${sdkDirName}/rt/lib/ext/jfxrt.jar";
- includeEmptyDirs = false
-- from("modules/base/build/classes/main",
-+ from("modules/base/build/classes/java/main",
- "modules/base/build/resources/main",
-- "modules/builders/build/classes/main",
-- "modules/graphics/build/classes/main",
-+ "modules/builders/build/classes/java/main",
-+ "modules/graphics/build/classes/java/main",
- "modules/graphics/build/resources/main",
-- "modules/controls/build/classes/main",
-+ "modules/controls/build/classes/java/main",
- "modules/controls/build/resources/main",
-- "modules/fxml/build/classes/main",
-+ "modules/fxml/build/classes/java/main",
- "modules/fxml/build/resources/main",
- "modules/graphics/build/classes/jsl-decora",
- "modules/graphics/build/resources/jsl-decora",
- "modules/graphics/build/classes/jsl-prism",
- "modules/graphics/build/resources/jsl-prism",
-- "modules/media/build/classes/main",
-+ "modules/media/build/classes/java/main",
- "modules/media/build/resources/main")
-- if (COMPILE_SWING) from ("modules/swing/build/classes/main", "modules/swing/build/resources/main")
-+ if (COMPILE_SWING) from ("modules/swing/build/classes/java/main", "modules/swing/build/resources/main")
-
- if (!IS_MAC) {
- exclude ("modules/media/build/classes/main/com/sun/media/jfxmediaimpl/platform/osx/**",
-@@ -2966,7 +2968,7 @@ compileTargets { t ->
- "modules/web/build/resources/ios",
- "modules/extensions/build/classes/ios")
- } else {
-- from ("modules/web/build/classes/main", "modules/web/build/resources/main")
-+ from ("modules/web/build/classes/java/main", "modules/web/build/resources/main")
- }
-
- exclude("**/javafx/embed/swt/**")
-@@ -3007,8 +3009,8 @@ compileTargets { t ->
- description = "Creates the jfxswt.jar for the $t.name target"
- archiveName = "build/${sdkDirName}/rt/lib/jfxswt.jar";
- includeEmptyDirs = false
-- from("modules/swt/build/classes/main");
-- from("modules/builders/build/classes/main");
-+ from("modules/swt/build/classes/java/main");
-+ from("modules/builders/build/classes/java/main");
- include("**/javafx/embed/swt/**")
- exclude("**/*.java"); // Builder java files are in build/classes and should be excluded
+@@ -2638,6 +2635,9 @@ project(":web") {
+ }
-@@ -3029,7 +3031,7 @@ compileTargets { t ->
- description = "Creates the javafx-mx.jar"
- archiveName = "build/${sdkDirName}/lib/javafx-mx.jar";
- includeEmptyDirs = false
-- from "modules/jmx/build/classes/main"
-+ from "modules/jmx/build/classes/java/main"
- from "modules/jmx/build/resources/main"
- dependsOn project(":jmx").assemble
- }
-@@ -3084,7 +3086,7 @@ compileTargets { t ->
+ cmakeArgs += " -DJAVAFX_RELEASE_VERSION=8.0"
++ cmakeArgs += " -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON"
++ cmakeArgs += " -DCMAKE_C_COMPILER:STRING=${System.getenv("CC")}"
++ cmakeArgs += " -DCMAKE_CXX_COMPILER:STRING=${System.getenv("CXX")}"
+ commandLine("perl", "$projectDir/src/main/native/Tools/Scripts/build-webkit",
+ "--java", "--icu-unicode", targetCpuBitDepthSwitch,
+ "--cmakeargs=${cmakeArgs}")
+@@ -3132,7 +3132,7 @@ compileTargets { t ->
// OSX media natives
- [ "jfxmedia_qtkit", "jfxmedia_avf", "glib-lite" ].each { name ->
+ [ "jfxmedia_qtkit", "jfxmedia_avf" ].each { name ->
from ("modules/media/build/native/${t.name}/${mediaBuildType}/${library(name)}") }
- } else if (t.name == "linux") {
+ } else if (t.name == "linux" || t.name == "bsd") {
from("modules/media/build/native/${t.name}/${mediaBuildType}") { include "libavplugin*.so" }
- } else from ("modules/media/build/native/${t.name}/${mediaBuildType}/${library("glib-lite")}")
+ }
} else {
-@@ -3097,7 +3099,7 @@ compileTargets { t ->
+@@ -3145,7 +3145,7 @@ compileTargets { t ->
// copy libjfxmedia_{avf,qtkit}.dylib if they exist
- [ "jfxmedia_qtkit", "jfxmedia_avf", "glib-lite" ].each { name ->
+ [ "jfxmedia_qtkit", "jfxmedia_avf" ].each { name ->
from ("$LIBRARY_STUB/${library(name)}") }
- } else if (t.name == "linux") {
+ } else if (t.name == "linux" || t.name == "bsd") {
from(LIBRARY_STUB) { include "libavplugin*.so" }
}
- else if (t.name != "android" && t.name != "dalvik" ) {
-@@ -3162,7 +3164,7 @@ compileTargets { t ->
+ }
+@@ -3207,7 +3207,7 @@ compileTargets { t ->
}
// Copy over the javapackager executable
@@ -432,21 +318,15 @@
copy {
from "modules/fxpackager/build/javapackager"
into "build/${sdkDirName}/bin"
-@@ -3215,10 +3217,11 @@ ext.JFXRT_CP =
- project(":fxml").sourceSets.main.output.classesDir,
- project(":swing").sourceSets.main.output.classesDir, //NOTE - used by 3Dviewer
- project(":builders").sourceSets.main.output.classesDir,
-- "modules/media/build/classes/main",
-- "modules/web/build/classes/main",
-+ "modules/media/build/classes/java/main",
-+ "modules/web/build/classes/java/main",
+@@ -3264,6 +3264,7 @@ ext.JFXRT_CP =
+ "modules/web/build/classes/java/main",
)
+/*
project(":apps") {
// The apps build is Ant based, and gradle lets us "import" ant build.xml
// into our configuration.
-@@ -3295,7 +3298,7 @@ project(":apps") {
+@@ -3341,7 +3342,7 @@ project(":apps") {
}
rootProject.clean.dependsOn(appsClean)
}
diff --git a/java/openjfx8-devel/files/patch-modules_controls_src_main_java_com_sun_javafx_scene_control_behavior_TextInputControlBehavior.java b/java/openjfx8-devel/files/patch-modules_controls_src_main_java_com_sun_javafx_scene_control_behavior_TextInputControlBehavior.java
new file mode 100644
index 000000000000..2ec15ad0ea0e
--- /dev/null
+++ b/java/openjfx8-devel/files/patch-modules_controls_src_main_java_com_sun_javafx_scene_control_behavior_TextInputControlBehavior.java
@@ -0,0 +1,20 @@
+--- modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TextInputControlBehavior.java.orig 2019-07-22 19:05:36 UTC
++++ modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TextInputControlBehavior.java
+@@ -362,7 +362,7 @@ public abstract class TextInputControlBehavior<T exten
+
+ protected void selectNextWord() {
+ TextInputControl textInputControl = getControl();
+- if (isMac() || isLinux()) {
++ if (isMac() || isLinux() || isFreeBSD()) {
+ textInputControl.selectEndOfNextWord();
+ } else {
+ textInputControl.selectNextWord();
+@@ -401,7 +401,7 @@ public abstract class TextInputControlBehavior<T exten
+
+ protected void nextWord() {
+ TextInputControl textInputControl = getControl();
+- if (isMac() || isLinux()) {
++ if (isMac() || isLinux() || isFreeBSD()) {
+ textInputControl.endOfNextWord();
+ } else {
+ textInputControl.nextWord();
diff --git a/java/openjfx8-devel/files/patch-modules_controls_src_main_java_com_sun_javafx_scene_control_behavior_TextInputControlBindings.java b/java/openjfx8-devel/files/patch-modules_controls_src_main_java_com_sun_javafx_scene_control_behavior_TextInputControlBindings.java
new file mode 100644
index 000000000000..58a16694bb8d
--- /dev/null
+++ b/java/openjfx8-devel/files/patch-modules_controls_src_main_java_com_sun_javafx_scene_control_behavior_TextInputControlBindings.java
@@ -0,0 +1,11 @@
+--- modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TextInputControlBindings.java.orig 2019-07-22 19:06:01 UTC
++++ modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TextInputControlBindings.java
+@@ -134,7 +134,7 @@ public class TextInputControlBindings {
+ BINDINGS.add(new KeyBinding(KP_RIGHT, KEY_PRESSED, "SelectRightWord").ctrl().shift());
+ BINDINGS.add(new KeyBinding(A, KEY_PRESSED, "SelectAll").ctrl());
+ BINDINGS.add(new KeyBinding(BACK_SLASH, KEY_PRESSED, "Unselect").ctrl());
+- if (PlatformUtil.isLinux()) {
++ if (PlatformUtil.isLinux() || PlatformUtil.isFreeBSD()) {
+ BINDINGS.add(new KeyBinding(Z, KEY_PRESSED, "Undo").ctrl());
+ BINDINGS.add(new KeyBinding(Z, KEY_PRESSED, "Redo").ctrl().shift());
+ } else { // Windows
diff --git a/java/openjfx8-devel/files/patch-modules_fxpackager_src_main_native_library_common_PosixPlatform.cpp b/java/openjfx8-devel/files/patch-modules_fxpackager_src_main_native_library_common_PosixPlatform.cpp
index 8b9e9d1e6ddd..1d65dd73face 100644
--- a/java/openjfx8-devel/files/patch-modules_fxpackager_src_main_native_library_common_PosixPlatform.cpp
+++ b/java/openjfx8-devel/files/patch-modules_fxpackager_src_main_native_library_common_PosixPlatform.cpp
@@ -1,14 +1,14 @@
http://pkgs.fedoraproject.org/cgit/rpms/openjfx.git/tree/0001-Fix-wait-call-in-PosixPlatform.patch
---- modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp.orig 2017-09-08 16:56:55 UTC
+--- modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp.orig 2018-12-10 16:30:22 UTC
+++ modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp
-@@ -230,13 +230,7 @@ bool PosixProcess::Wait() {
+@@ -231,13 +231,7 @@ bool PosixProcess::Wait() {
int status = 0;
pid_t wpid = 0;
- //TODO Use waitpid instead of wait
-#ifdef LINUX
-- wait();
+- wait(&status);
-#endif
-#ifdef MAC
wpid = wait(&status);
diff --git a/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_javafx_font_LogicalFont.java b/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_javafx_font_LogicalFont.java
new file mode 100644
index 000000000000..68225ceebc98
--- /dev/null
+++ b/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_javafx_font_LogicalFont.java
@@ -0,0 +1,11 @@
+--- modules/graphics/src/main/java/com/sun/javafx/font/LogicalFont.java.orig 2019-07-22 19:00:13 UTC
++++ modules/graphics/src/main/java/com/sun/javafx/font/LogicalFont.java
+@@ -175,7 +175,7 @@ public class LogicalFont implements CompositeFontResou
+ styleName = STYLE_BOLD_ITALIC;
+ }
+ fullName = familyName + " " + styleName;
+- if (PrismFontFactory.isLinux) {
++ if (PrismFontFactory.isLinux || PrismFontFactory.isFreeBSD) {
+ FontConfigManager.FcCompFont fcCompFont =
+ FontConfigManager.getFontConfigFont(family, bold, italic);
+ physicalFullName = fcCompFont.firstFont.fullName;
diff --git a/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_javafx_font_PrismFontFactory.java b/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_javafx_font_PrismFontFactory.java
index 2f0f581766ce..17c1be9d10f0 100644
--- a/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_javafx_font_PrismFontFactory.java
+++ b/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_javafx_font_PrismFontFactory.java
@@ -1,4 +1,4 @@
---- modules/graphics/src/main/java/com/sun/javafx/font/PrismFontFactory.java.orig 2017-09-08 16:56:55 UTC
+--- modules/graphics/src/main/java/com/sun/javafx/font/PrismFontFactory.java.orig 2018-12-10 16:30:22 UTC
+++ modules/graphics/src/main/java/com/sun/javafx/font/PrismFontFactory.java
@@ -51,6 +51,7 @@ public abstract class PrismFontFactory implements Font
public static final boolean debugFonts;
@@ -39,7 +39,7 @@
}
}
- if (fontResource == null && isLinux) {
-+ if (fontResource == null && isLinux && isFreeBSD) {
++ if (fontResource == null && (isLinux || isFreeBSD)) {
String path = FontConfigManager.getDefaultFontPath();
if (path != null) {
fontResource = createFontResource(jreDefaultFontLC,
diff --git a/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_javafx_tk_quantum_GlassSystemMenu.java b/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_javafx_tk_quantum_GlassSystemMenu.java
new file mode 100644
index 000000000000..5d5c29f0eafc
--- /dev/null
+++ b/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_javafx_tk_quantum_GlassSystemMenu.java
@@ -0,0 +1,35 @@
+--- modules/graphics/src/main/java/com/sun/javafx/tk/quantum/GlassSystemMenu.java.orig 2019-07-22 19:03:56 UTC
++++ modules/graphics/src/main/java/com/sun/javafx/tk/quantum/GlassSystemMenu.java
+@@ -317,13 +317,13 @@ class GlassSystemMenu implements TKSystemMenu {
+ } else if (accelerator instanceof KeyCodeCombination) {
+ KeyCodeCombination kcc = (KeyCodeCombination)accelerator;
+ KeyCode code = kcc.getCode();
+- assert PlatformUtil.isMac() || PlatformUtil.isLinux();
++ assert PlatformUtil.isMac() || PlatformUtil.isLinux() || PlatformUtil.isFreeBSD();
+ int modifier = glassModifiers(kcc);
+ if (PlatformUtil.isMac()) {
+ int finalCode = code.isLetterKey() ? code.impl_getChar().toUpperCase().charAt(0)
+ : code.impl_getCode();
+ glassSubMenuItem.setShortcut(finalCode, modifier);
+- } else if (PlatformUtil.isLinux()) {
++ } else if (PlatformUtil.isLinux() || PlatformUtil.isFreeBSD()) {
+ String lower = code.impl_getChar().toLowerCase();
+ if ((modifier & KeyEvent.MODIFIER_CONTROL) != 0) {
+ glassSubMenuItem.setShortcut(lower.charAt(0), modifier);
+@@ -352,14 +352,14 @@ class GlassSystemMenu implements TKSystemMenu {
+ ret += KeyEvent.MODIFIER_ALT;
+ }
+ if (kcc.getShortcut() == KeyCombination.ModifierValue.DOWN) {
+- if (PlatformUtil.isLinux()) {
++ if (PlatformUtil.isLinux() || PlatformUtil.isFreeBSD()) {
+ ret += KeyEvent.MODIFIER_CONTROL;
+ } else if (PlatformUtil.isMac()) {
+ ret += KeyEvent.MODIFIER_COMMAND;
+ }
+ }
+ if (kcc.getMeta() == KeyCombination.ModifierValue.DOWN) {
+- if (PlatformUtil.isLinux()) {
++ if (PlatformUtil.isLinux() || PlatformUtil.isFreeBSD()) {
+ ret += KeyEvent.MODIFIER_WINDOWS; // RT-19326 - Linux shortcut support
+ } else if (PlatformUtil.isMac()) {
+ ret += KeyEvent.MODIFIER_COMMAND;
diff --git a/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_javafx_tk_quantum_WindowStage.java b/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_javafx_tk_quantum_WindowStage.java
new file mode 100644
index 000000000000..0f723724e2fc
--- /dev/null
+++ b/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_javafx_tk_quantum_WindowStage.java
@@ -0,0 +1,11 @@
+--- modules/graphics/src/main/java/com/sun/javafx/tk/quantum/WindowStage.java.orig 2019-07-22 19:05:13 UTC
++++ modules/graphics/src/main/java/com/sun/javafx/tk/quantum/WindowStage.java
+@@ -432,7 +432,7 @@ class WindowStage extends GlassStage {
+ } else if (PlatformUtil.isWindows()) { //Windows Sized Icons
+ SMALL_ICON_HEIGHT = 32;
+ SMALL_ICON_WIDTH = 32;
+- } else if (PlatformUtil.isLinux()) { //Linux icons
++ } else if (PlatformUtil.isLinux() || PlatformUtil.isFreeBSD()) { //Linux icons
+ SMALL_ICON_HEIGHT = 128;
+ SMALL_ICON_WIDTH = 128;
+ }
diff --git a/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_prism_impl_PrismSettings.java b/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_prism_impl_PrismSettings.java
index ee3c466944e2..95344b078542 100644
--- a/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_prism_impl_PrismSettings.java
+++ b/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_prism_impl_PrismSettings.java
@@ -1,4 +1,4 @@
---- modules/graphics/src/main/java/com/sun/prism/impl/PrismSettings.java.orig 2017-09-08 16:56:55 UTC
+--- modules/graphics/src/main/java/com/sun/prism/impl/PrismSettings.java.orig 2018-12-10 16:30:22 UTC
+++ modules/graphics/src/main/java/com/sun/prism/impl/PrismSettings.java
@@ -212,6 +212,8 @@ public final class PrismSettings {
tryOrderArr = new String[] { "es2" };
@@ -9,3 +9,12 @@
} else {
tryOrderArr = new String[] { "sw" };
}
+@@ -221,7 +223,7 @@ public final class PrismSettings {
+
+ String npprop = systemProperties.getProperty("prism.nativepisces");
+ if (npprop == null) {
+- doNativePisces = PlatformUtil.isEmbedded() || !PlatformUtil.isLinux();
++ doNativePisces = PlatformUtil.isEmbedded() || !PlatformUtil.isLinux() || !PlatformUtil.isFreeBSD();
+ } else {
+ doNativePisces = Boolean.parseBoolean(npprop);
+ }
diff --git a/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_GlassApplication.cpp b/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_GlassApplication.cpp
new file mode 100644
index 000000000000..d8d0e0446185
--- /dev/null
+++ b/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_GlassApplication.cpp
@@ -0,0 +1,10 @@
+--- modules/graphics/src/main/native-glass/gtk/GlassApplication.cpp.orig 2019-07-22 07:18:58 UTC
++++ modules/graphics/src/main/native-glass/gtk/GlassApplication.cpp
+@@ -101,6 +101,7 @@ JNIEXPORT jint JNICALL Java_com_sun_glass_ui_gtk_GtkAp
+
+ gdk_threads_enter();
+ gtk_init(NULL, NULL);
++ gdk_threads_leave();
+
+ return JNI_TRUE;
+ }
diff --git a/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_glass__general.cpp b/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_glass__general.cpp
deleted file mode 100644
index b7ee01c502cb..000000000000
--- a/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_glass__general.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
---- modules/graphics/src/main/native-glass/gtk/glass_general.cpp.orig 2017-09-08 16:56:55 UTC
-+++ modules/graphics/src/main/native-glass/gtk/glass_general.cpp
-@@ -372,6 +372,7 @@ JNI_OnLoad(JavaVM *jvm, void *reserved)
-
- gdk_threads_enter();
- gtk_init(NULL, NULL);
-+ gdk_threads_leave();
-
- return JNI_VERSION_1_6;
- }
diff --git a/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_glass__window.h b/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_glass__window.h
index f57060221460..ad05d792416a 100644
--- a/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_glass__window.h
+++ b/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_glass__window.h
@@ -1,4 +1,4 @@
---- modules/graphics/src/main/native-glass/gtk/glass_window.h.orig 2017-09-08 16:56:55 UTC
+--- modules/graphics/src/main/native-glass/gtk/glass_window.h.orig 2018-12-10 16:30:22 UTC
+++ modules/graphics/src/main/native-glass/gtk/glass_window.h
@@ -365,7 +365,7 @@ class WindowContextChild: public WindowContextBase { (
class WindowContextTop: public WindowContextBase {
@@ -7,8 +7,8 @@
- struct WindowContext *owner;
+ WindowContext *owner;
WindowGeometry geometry;
- int stale_config_notifications;
struct _Resizable{// we can't use set/get gtk_window_resizable function
+ _Resizable(): request(REQUEST_NONE), value(true), prev(false),
@@ -455,4 +455,3 @@ class EventsCounterHelper { (public)
};
diff --git a/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_launcher.c b/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_launcher.c
new file mode 100644
index 000000000000..7e9ef50a07ba
--- /dev/null
+++ b/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_launcher.c
@@ -0,0 +1,10 @@
+--- modules/graphics/src/main/native-glass/gtk/launcher.c.orig 2019-07-22 07:33:51 UTC
++++ modules/graphics/src/main/native-glass/gtk/launcher.c
+@@ -25,7 +25,6 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <linux/fb.h>
+ #include <fcntl.h>
+ #ifndef __USE_GNU // required for dladdr() & Dl_info
+ #define __USE_GNU
diff --git a/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_wrapped.c b/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_wrapped.c
new file mode 100644
index 000000000000..fff612e73e08
--- /dev/null
+++ b/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_wrapped.c
@@ -0,0 +1,10 @@
+--- modules/graphics/src/main/native-glass/gtk/wrapped.c.orig 2019-07-22 07:33:14 UTC
++++ modules/graphics/src/main/native-glass/gtk/wrapped.c
+@@ -24,7 +24,6 @@
+ */
+
+ #include <stdio.h>
+-#include <linux/fb.h>
+ #include <fcntl.h>
+ #ifndef __USE_GNU // required for dladdr() & Dl_info
+ #define __USE_GNU
diff --git a/java/openjfx8-devel/files/patch-modules_media_src_main_java_com_sun_media_jfxmediaimpl_HostUtils.java b/java/openjfx8-devel/files/patch-modules_media_src_main_java_com_sun_media_jfxmediaimpl_HostUtils.java
new file mode 100644
index 000000000000..7df72a648511
--- /dev/null
+++ b/java/openjfx8-devel/files/patch-modules_media_src_main_java_com_sun_media_jfxmediaimpl_HostUtils.java
@@ -0,0 +1,13 @@
+--- modules/media/src/main/java/com/sun/media/jfxmediaimpl/HostUtils.java.orig 2019-07-22 19:01:46 UTC
++++ modules/media/src/main/java/com/sun/media/jfxmediaimpl/HostUtils.java
+@@ -66,6 +66,10 @@ public class HostUtils {
+ return osName.startsWith("linux");
+ }
+
++ public static boolean isFreeBSD() {
++ return osName.startsWith("freebsd");
++ }
++
+ public static boolean isIOS() {
+ return osName.startsWith("ios");
+ }
diff --git a/java/openjfx8-devel/files/patch-modules_media_src_main_java_com_sun_media_jfxmediaimpl_NativeMediaManager.java b/java/openjfx8-devel/files/patch-modules_media_src_main_java_com_sun_media_jfxmediaimpl_NativeMediaManager.java
new file mode 100644
index 000000000000..79401c1b9000
--- /dev/null
+++ b/java/openjfx8-devel/files/patch-modules_media_src_main_java_com_sun_media_jfxmediaimpl_NativeMediaManager.java
@@ -0,0 +1,11 @@
+--- modules/media/src/main/java/com/sun/media/jfxmediaimpl/NativeMediaManager.java.orig 2019-07-22 19:02:57 UTC
++++ modules/media/src/main/java/com/sun/media/jfxmediaimpl/NativeMediaManager.java
+@@ -108,7 +108,7 @@ public class NativeMediaManager {
+ NativeLibLoader.loadLibrary("glib-lite");
+ }
+
+- if (!HostUtils.isLinux() && !HostUtils.isIOS()) {
++ if (!HostUtils.isFreeBSD() && !HostUtils.isLinux() && !HostUtils.isIOS()) {
+ NativeLibLoader.loadLibrary("gstreamer-lite");
+ }
+
diff --git a/java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_gstreamer-lite_gstreamer_gst_gstregistry.c b/java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_gstreamer-lite_gstreamer_gst_gstregistry.c
new file mode 100644
index 000000000000..073b3f7bfd41
--- /dev/null
+++ b/java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_gstreamer-lite_gstreamer_gst_gstregistry.c
@@ -0,0 +1,11 @@
+--- modules/media/src/main/native/gstreamer/gstreamer-lite/gstreamer/gst/gstregistry.c.orig 2019-07-23 04:09:55 UTC
++++ modules/media/src/main/native/gstreamer/gstreamer-lite/gstreamer/gst/gstregistry.c
+@@ -143,7 +143,7 @@ static const int AVCODEC_LIBAV_EXPLICIT_VERSIONS[] = {
+ // For ffmpeg (libavcodec-ffmpeg.so)
+ static const int AVCODEC_FFMPEG_EXPLICIT_VERSIONS[] = { 56 };
+ // For libav or ffmpeg (libavcodec.so)
+-static const int AVCODEC_EXPLICIT_VERSIONS[] = { 57 };
++static const int AVCODEC_EXPLICIT_VERSIONS[] = { 58, 57 };
+
+ /*
+ * Callback passed to dl_iterate_phdr(): finds the path of
diff --git a/java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_gstreamer-lite_projects_build_linux_common_config.h b/java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_gstreamer-lite_projects_build_linux_common_config.h
new file mode 100644
index 000000000000..47b03d595243
--- /dev/null
+++ b/java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_gstreamer-lite_projects_build_linux_common_config.h
@@ -0,0 +1,18 @@
+--- modules/media/src/main/native/gstreamer/gstreamer-lite/projects/build/linux/common/config.h.orig 2019-07-22 15:39:06 UTC
++++ modules/media/src/main/native/gstreamer/gstreamer-lite/projects/build/linux/common/config.h
+@@ -264,7 +264,7 @@
+ #define HAVE_SYS_POLL_H 1
+
+ /* Define to 1 if you have the <sys/prctl.h> header file. */
+-#define HAVE_SYS_PRCTL_H 1
++#undef HAVE_SYS_PRCTL_H
+
+ /* Define to 1 if you have the <sys/socket.h> header file. */
+ #define HAVE_SYS_SOCKET_H 1
+@@ -430,4 +430,4 @@
+ /* Define to `unsigned int' if <sys/types.h> does not define. */
+ /* #undef size_t */
+
+-#define DISABLE_ORC
+\ No newline at end of file
++#define DISABLE_ORC
diff --git a/java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_projects_bsd_avplugin_Makefile b/java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_projects_bsd_avplugin_Makefile
new file mode 100644
index 000000000000..a635fa4cb392
--- /dev/null
+++ b/java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_projects_bsd_avplugin_Makefile
@@ -0,0 +1,29 @@
+--- modules/media/src/main/native/gstreamer/projects/bsd/avplugin/Makefile.orig 2019-07-22 15:50:27 UTC
++++ modules/media/src/main/native/gstreamer/projects/bsd/avplugin/Makefile
+@@ -43,19 +43,23 @@ else
+ CFLAGS += -g -Wall
+ endif
+
++PACKAGES_INCLUDES := $(shell pkg-config --cflags glib-2.0 gio-2.0 gobject-2.0 gthread-2.0)
++PACKAGES_LIBS := $(shell pkg-config --libs glib-2.0 gio-2.0 gobject-2.0 gthread-2.0)
++
+ INCLUDES= -I../../../plugins \
+ -I../../../plugins/av \
+ -I../../../gstreamer-lite/gstreamer \
+ -I../../../gstreamer-lite/gstreamer/libs \
+ -I$(GLIB_DIR) \
+ -I$(GLIB_DIR)/glib \
+- -I$(GLIB_DIR)/gmodule
++ -I$(GLIB_DIR)/gmodule \
++ $(PACKAGES_INCLUDES)
+
+ LDFLAGS = -L$(BUILD_DIR) \
+ -z relro \
+ -lgstreamer-lite \
+- -lglib-lite \
+- -static-libgcc -static-libstdc++ -Wl,--gc-sections
++ $(PACKAGES_LIBS) \
++ -Wl,--gc-sections
+
+ ifneq ($(strip $(LIBAV_DIR)),)
+ INCLUDES += -I$(LIBAV_DIR)/include
diff --git a/java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_projects_bsd_fxplugins_Makefile b/java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_projects_bsd_fxplugins_Makefile
new file mode 100644
index 000000000000..476af3b93c8e
--- /dev/null
+++ b/java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_projects_bsd_fxplugins_Makefile
@@ -0,0 +1,28 @@
+--- modules/media/src/main/native/gstreamer/projects/bsd/fxplugins/Makefile.orig 2019-07-22 15:43:47 UTC
++++ modules/media/src/main/native/gstreamer/projects/bsd/fxplugins/Makefile
+@@ -45,17 +45,21 @@ else
+ endif
+
+
++PACKAGES_INCLUDES := $(shell pkg-config --cflags glib-2.0 gio-2.0 gobject-2.0 gthread-2.0)
++PACKAGES_LIBS := $(shell pkg-config --libs glib-2.0 gio-2.0 gobject-2.0 gthread-2.0)
++
+ INCLUDES = -I$(SRCBASE_DIR) \
+ $(addprefix -I$(SRCBASE_DIR)/,$(DIRLIST)) \
+ -I../../../gstreamer-lite/gstreamer \
+ -I../../../gstreamer-lite/gstreamer/libs \
+ -I$(GLIB_DIR) \
+ -I$(GLIB_DIR)/glib \
+- -I$(GLIB_DIR)/gmodule
++ -I$(GLIB_DIR)/gmodule \
++ $(PACKAGES_INCLUDES)
+
+-LDFLAGS = -L$(BUILD_DIR) -lgstreamer-lite -lglib-lite \
+- -z relro \
+- -static-libgcc -static-libstdc++ -Wl,--gc-sections
++LDFLAGS = -L$(BUILD_DIR) -lgstreamer-lite \
++ -z relro -Wl,--gc-sections \
++ $(PACKAGES_LIBS)
+
+ ifeq ($(ARCH), x32)
+ CFLAGS += -m32
diff --git a/java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_projects_bsd_gstreamer-lite_Makefile b/java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_projects_bsd_gstreamer-lite_Makefile
index cc61d4f26f4d..364c7a6557ac 100644
--- a/java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_projects_bsd_gstreamer-lite_Makefile
+++ b/java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_projects_bsd_gstreamer-lite_Makefile
@@ -1,6 +1,6 @@
---- modules/media/src/main/native/gstreamer/projects/bsd/gstreamer-lite/Makefile.orig 2017-10-03 19:30:23 UTC
+--- modules/media/src/main/native/gstreamer/projects/bsd/gstreamer-lite/Makefile.orig 2019-07-22 07:19:58 UTC
+++ modules/media/src/main/native/gstreamer/projects/bsd/gstreamer-lite/Makefile
-@@ -27,7 +27,7 @@ DIRLIST = gstreamer/gst \
+@@ -31,7 +31,7 @@ DIRLIST = gstreamer/gst \
gst-plugins-base/gst/volume \
gst-plugins-good/gst/audioparsers \
gst-plugins-good/gst/isomp4 \
@@ -9,30 +9,34 @@
gst-plugins-good/gst/audiofx \
gst-plugins-good/gst/equalizer \
gst-plugins-good/gst/spectrum \
-@@ -67,10 +67,10 @@ INCLUDES = -I$(BASE_DIR)/plugins
- -I$(SRCBASE_DIR)/gst-plugins-good/gst/isomp4 \
- -I$(SRCBASE_DIR)/gst-plugins-bad/gst-libs
+@@ -80,13 +80,11 @@ INCLUDES = -I$(BASE_DIR)/plugins
+ -I$(GLIB_DIR)/glib \
+ -I$(GLIB_DIR)/gmodule
--PACKAGES_INCLUDES := $(shell pkg-config --cflags alsa glib-2.0)
--PACKAGES_LIBS := $(shell pkg-config --libs alsa glib-2.0 gobject-2.0 gmodule-2.0 gthread-2.0)
-+PACKAGES_INCLUDES := $(shell pkg-config --cflags glib-2.0)
-+PACKAGES_LIBS := $(shell pkg-config --libs glib-2.0 gobject-2.0 gmodule-2.0 gthread-2.0)
-
--LDFLAGS = -L$(BUILD_DIR) -lm $(PACKAGES_LIBS)
-+LDFLAGS = -L$(BUILD_DIR) -lm $(PACKAGES_LIBS) -lsndio
+-PACKAGES_INCLUDES := $(shell pkg-config --cflags alsa)
+-PACKAGES_LIBS := $(shell pkg-config --libs alsa)
++PACKAGES_INCLUDES := $(shell pkg-config --cflags glib-2.0 gio-2.0 gobject-2.0 gthread-2.0)
++PACKAGES_LIBS := $(shell pkg-config --libs glib-2.0 gio-2.0 gobject-2.0 gthread-2.0)
++
++LDFLAGS = -L$(BUILD_DIR) -lm $(PACKAGES_LIBS) -l sndio -z relro
+-LDFLAGS = -L$(BUILD_DIR) -lm -lglib-lite $(PACKAGES_LIBS) \
+- -z relro \
+- -static-libgcc -static-libstdc++ -Wl,--gc-sections
+-
ifeq ($(ARCH), x32)
CFLAGS += -m32
-@@ -227,10 +227,8 @@ SOURCES = \
- gst-plugins-good/gst/isomp4/qtdemux_dump.c \
- gst-plugins-good/gst/isomp4/qtdemux_types.c \
- gst-plugins-good/gst/isomp4/qtdemux.c \
-- gst-plugins-base/ext/alsa/gstalsaplugin.c \
-- gst-plugins-base/ext/alsa/gstalsa.c \
-- gst-plugins-base/ext/alsa/gstalsadeviceprobe.c \
-- gst-plugins-base/ext/alsa/gstalsasink.c \
-+ gst-plugins-base/ext/bsdaudio/gstbsdaudio.c \
-+ gst-plugins-base/ext/bsdaudio/bsdaudiosink.c \
- gst-plugins-good/gst/audiofx/audiofx.c \
- gst-plugins-good/gst/audiofx/audiopanorama.c \
- gst-plugins-good/gst/equalizer/gstiirequalizer.c \
+ LDFLAGS += -m32
+@@ -264,10 +262,8 @@ SOURCES = \
+ gstreamer/plugins/elements/gsttypefindelement.c \
+ gst-plugins-base/gst/volume/gstvolume.c \
+ gst-plugins-base/gst/volume/gstvolumeorc-dist.c \
+- gst-plugins-base/ext/alsa/gstalsaplugin.c \
+- gst-plugins-base/ext/alsa/gstalsa.c \
+- gst-plugins-base/ext/alsa/gstalsadeviceprobe.c \
+- gst-plugins-base/ext/alsa/gstalsasink.c \
++ gst-plugins-base/ext/bsdaudio/gstbsdaudio.c \
++ gst-plugins-base/ext/bsdaudio/bsdaudiosink.c \
+ projects/plugins/gstplugins-lite.c
+
+ OBJ_DIRS = $(addprefix $(OBJBASE_DIR)/,$(DIRLIST))
diff --git a/java/openjfx8-devel/files/patch-modules_media_src_main_native_jfxmedia_projects_bsd_Makefile b/java/openjfx8-devel/files/patch-modules_media_src_main_native_jfxmedia_projects_bsd_Makefile
index 2b1eae925e67..031dd1ba9c6a 100644
--- a/java/openjfx8-devel/files/patch-modules_media_src_main_native_jfxmedia_projects_bsd_Makefile
+++ b/java/openjfx8-devel/files/patch-modules_media_src_main_native_jfxmedia_projects_bsd_Makefile
@@ -1,4 +1,4 @@
---- modules/media/src/main/native/jfxmedia/projects/bsd/Makefile.orig 2017-10-03 19:30:23 UTC
+--- modules/media/src/main/native/jfxmedia/projects/bsd/Makefile.orig 2019-07-22 15:35:34 UTC
+++ modules/media/src/main/native/jfxmedia/projects/bsd/Makefile
@@ -1,5 +1,5 @@
#
@@ -15,7 +15,17 @@
-D_GNU_SOURCE \
-DGST_REMOVE_DEPRECATED \
-DGST_DISABLE_GST_DEBUG \
-@@ -46,7 +47,7 @@ ifdef HOST_COMPILE
+@@ -34,6 +35,9 @@ CPPFLAGS = -fno-rtti -ffunction-sections -fdata-sectio
+ BASE_INCLUDES = -I$(SRCBASE_DIR) \
+ -I$(GENERATED_HEADERS_DIR)
+
++PACKAGES_INCLUDES := $(shell pkg-config --cflags glib-2.0 gio-2.0 gobject-2.0 gthread-2.0)
++PACKAGES_LIBS := $(shell pkg-config --libs glib-2.0 gio-2.0 gobject-2.0 gthread-2.0)
++
+ ifdef HOST_COMPILE
+ GSTREAMER_LITE_DIR = ../../../gstreamer/gstreamer-lite
+ GLIB_LITE_DIR = ../../../gstreamer/3rd_party/glib/glib-2.56.1
+@@ -49,17 +53,17 @@ ifdef HOST_COMPILE
INCLUDES = $(BASE_INCLUDES) \
-I$(JAVA_HOME)/include \
@@ -24,3 +34,17 @@
-I$(GSTREAMER_LITE_DIR)/gstreamer \
-I$(GSTREAMER_LITE_DIR)/gst-plugins-base/gst-libs \
-I$(GSTREAMER_LITE_DIR)/gstreamer/libs \
+ -I$(GLIB_LITE_DIR)/ \
+ -I$(GLIB_LITE_DIR)/glib \
+- -I$(GLIB_LITE_DIR)/gmodule
++ -I$(GLIB_LITE_DIR)/gmodule \
++ $(PACKAGES_INCLUDES)
+
+- LDFLAGS = -Wl,-rpath,\$$ORIGIN -L$(BUILD_DIR) -lgstreamer-lite -lglib-lite \
+- -z relro \
+- -static-libgcc -static-libstdc++ -Wl,--gc-sections
++ LDFLAGS = -Wl,-rpath,\$$ORIGIN -L$(BUILD_DIR) -lgstreamer-lite \
++ -z relro $(PACKAGES_LIBS) -Wl,--gc-sections
+ else
+ CFLAGS += $(EXTRA_CFLAGS)
+ INCLUDES = $(BASE_INCLUDES)
diff --git a/java/openjfx8-devel/files/patch-modules_swing_src_main_java_javafx_embed_swing_JFXPanel.java b/java/openjfx8-devel/files/patch-modules_swing_src_main_java_javafx_embed_swing_JFXPanel.java
new file mode 100644
index 000000000000..edaf8a97af43
--- /dev/null
+++ b/java/openjfx8-devel/files/patch-modules_swing_src_main_java_javafx_embed_swing_JFXPanel.java
@@ -0,0 +1,20 @@
+--- modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java.orig 2019-07-22 18:59:20 UTC
++++ modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java
+@@ -995,7 +995,7 @@ public class JFXPanel extends JComponent {
+ public boolean grabFocus() {
+ // On X11 grab is limited to a single XDisplay connection,
+ // so we can't delegate it to another GUI toolkit.
+- if (PlatformUtil.isLinux()) return true;
++ if (PlatformUtil.isLinux() || PlatformUtil.isFreeBSD()) return true;
+
+ invokeOnClientEDT(() -> {
+ Window window = SwingUtilities.getWindowAncestor(JFXPanel.this);
+@@ -1013,7 +1013,7 @@ public class JFXPanel extends JComponent {
+ public void ungrabFocus() {
+ // On X11 grab is limited to a single XDisplay connection,
+ // so we can't delegate it to another GUI toolkit.
+- if (PlatformUtil.isLinux()) return;
++ if (PlatformUtil.isLinux() || PlatformUtil.isFreeBSD()) return;
+
+ invokeOnClientEDT(() -> {
+ Window window = SwingUtilities.getWindowAncestor(JFXPanel.this);
diff --git a/java/openjfx8-devel/files/patch-modules_swing_src_main_java_javafx_embed_swing_SwingNode.java b/java/openjfx8-devel/files/patch-modules_swing_src_main_java_javafx_embed_swing_SwingNode.java
new file mode 100644
index 000000000000..3108ce911230
--- /dev/null
+++ b/java/openjfx8-devel/files/patch-modules_swing_src_main_java_javafx_embed_swing_SwingNode.java
@@ -0,0 +1,11 @@
+--- modules/swing/src/main/java/javafx/embed/swing/SwingNode.java.orig 2019-07-22 18:58:46 UTC
++++ modules/swing/src/main/java/javafx/embed/swing/SwingNode.java
+@@ -860,7 +860,7 @@ public class SwingNode extends Node {
+ SwingFXUtils.runOnFxThread(() -> {
+ // On X11 grab is limited to a single XDisplay connection,
+ // so we can't delegate it to another GUI toolkit.
+- if (PlatformUtil.isLinux()) return;
++ if (PlatformUtil.isLinux() || PlatformUtil.isFreeBSD()) return;
+
+ SwingNode swingNode = swingNodeRef.get();
+ if (swingNode != null) {
diff --git a/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_JavaScriptCore_PlatformJava.cmake b/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_JavaScriptCore_PlatformJava.cmake
deleted file mode 100644
index 2599b506351f..000000000000
--- a/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_JavaScriptCore_PlatformJava.cmake
+++ /dev/null
@@ -1,8 +0,0 @@
---- modules/web/src/main/native/Source/JavaScriptCore/PlatformJava.cmake.orig 2017-09-08 16:56:55 UTC
-+++ modules/web/src/main/native/Source/JavaScriptCore/PlatformJava.cmake
-@@ -46,4 +46,4 @@ list(APPEND JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES
- ${JDK_INCLUDE_DIRS}
- )
-
--add_dependencies(WTF icudatagen)
-+#add_dependencies(WTF icudatagen)
diff --git a/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WTF_wtf_CMakeLists.txt b/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WTF_wtf_CMakeLists.txt
index 6c7aa8dc0086..17ced47ed03e 100644
--- a/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WTF_wtf_CMakeLists.txt
+++ b/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WTF_wtf_CMakeLists.txt
@@ -1,6 +1,6 @@
---- modules/web/src/main/native/Source/WTF/wtf/CMakeLists.txt.orig 2018-01-16 01:40:56 UTC
+--- modules/web/src/main/native/Source/WTF/wtf/CMakeLists.txt.orig 2018-07-27 01:38:45 UTC
+++ modules/web/src/main/native/Source/WTF/wtf/CMakeLists.txt
-@@ -343,6 +343,7 @@ list(APPEND WTF_SOURCES
+@@ -464,6 +464,7 @@ list(APPEND WTF_SOURCES
)
set(WTF_SYSTEM_INCLUDE_DIRECTORIES
${ICU_INCLUDE_DIRS}
diff --git a/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WTF_wtf_Optional.h b/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WTF_wtf_Optional.h
index e5b6835d430b..43b6422f2d5d 100644
--- a/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WTF_wtf_Optional.h
+++ b/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WTF_wtf_Optional.h
@@ -1,6 +1,6 @@
---- modules/web/src/main/native/Source/WTF/wtf/Optional.h.orig 2018-03-23 23:53:57 UTC
+--- modules/web/src/main/native/Source/WTF/wtf/Optional.h.orig 2018-12-10 16:30:22 UTC
+++ modules/web/src/main/native/Source/WTF/wtf/Optional.h
-@@ -295,12 +295,14 @@ struct nullopt_t
+@@ -291,12 +291,14 @@ struct nullopt_t
constexpr nullopt_t nullopt{nullopt_t::init()};
diff --git a/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WebCore_CMakeLists.txt b/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WebCore_CMakeLists.txt
deleted file mode 100644
index 7ac24870f680..000000000000
--- a/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WebCore_CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
---- modules/web/src/main/native/Source/WebCore/CMakeLists.txt.orig 2018-03-23 23:53:57 UTC
-+++ modules/web/src/main/native/Source/WebCore/CMakeLists.txt
-@@ -131,6 +131,7 @@ set(WebCore_INCLUDE_DIRECTORIES
-
- set(WebCore_SYSTEM_INCLUDE_DIRECTORIES
- ${ICU_INCLUDE_DIRS}
-+ ${CMAKE_INSTALL_PREFIX}/include/libxml2
- )
-
- set(WebCore_IDL_INCLUDES
diff --git a/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WebCore_PlatformJava.cmake b/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WebCore_PlatformJava.cmake
deleted file mode 100644
index d90aedd16d90..000000000000
--- a/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WebCore_PlatformJava.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
---- modules/web/src/main/native/Source/WebCore/PlatformJava.cmake.orig 2018-03-23 23:53:57 UTC
-+++ modules/web/src/main/native/Source/WebCore/PlatformJava.cmake
-@@ -188,8 +188,8 @@ elseif (APPLE)
- endif ()
-
- list(APPEND WebCore_LIBRARIES
-- XMLJava
-- XSLTJava
-+ ${CMAKE_INSTALL_PREFIX}/lib/libxml2.so
-+ ${CMAKE_INSTALL_PREFIX}/lib/libxslt.so
- )
-
- list(APPEND WebCore_USER_AGENT_STYLE_SHEETS
-@@ -225,7 +225,7 @@ set(WebCore_FORWARDING_HEADERS_FILES
- set(WebCore_USER_AGENT_SCRIPTS_DEPENDENCIES ${WEBCORE_DIR}/platform/java/RenderThemeJava.cpp)
-
- list(APPEND WebCore_LIBRARIES
-- SqliteJava
-+ ${CMAKE_INSTALL_PREFIX}/lib/libsqlite3.so
- ${ICU_I18N_LIBRARIES}
- ${ICU_LIBRARIES}
- )
diff --git a/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_cmake_OptionsJava.cmake b/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_cmake_OptionsJava.cmake
index 76727ffc1778..9c44785b7b68 100644
--- a/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_cmake_OptionsJava.cmake
+++ b/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_cmake_OptionsJava.cmake
@@ -1,29 +1,21 @@
---- modules/web/src/main/native/Source/cmake/OptionsJava.cmake.orig 2018-03-23 23:53:57 UTC
+--- modules/web/src/main/native/Source/cmake/OptionsJava.cmake.orig 2018-12-10 16:30:22 UTC
+++ modules/web/src/main/native/Source/cmake/OptionsJava.cmake
-@@ -49,9 +49,9 @@ elseif (APPLE)
- set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
- elseif (UNIX)
- #### ICU ####
-- set(ICU_JAVA_COMMON_LIB icuuc)
-- set(ICU_I18N_LIBRARIES icui18n)
-- set(ICU_JAVA_DATA_LIB ${CMAKE_BINARY_DIR}/lib/libicudata.a)
-+ set(ICU_JAVA_COMMON_LIB ${CMAKE_INSTALL_PREFIX}/lib/libicuuc.so)
-+ set(ICU_I18N_LIBRARIES ${CMAKE_INSTALL_PREFIX}/lib/libicui18n.so)
-+ set(ICU_JAVA_DATA_LIB ${CMAKE_INSTALL_PREFIX}/lib/libicudata.so)
- #### ICU-END ####
+@@ -26,14 +26,10 @@ endif ()
+ set(LIB_INSTALL_DIR "${CMAKE_INSTALL_FULL_LIBDIR}" CACHE PATH "Absolute path to library installation directory")
+ set(EXEC_INSTALL_DIR "${CMAKE_INSTALL_FULL_BINDIR}" CACHE PATH "Absolute path to executable installation directory")
- set(CMAKE_SKIP_RPATH TRUE)
-@@ -60,11 +60,12 @@ else ()
- endif ()
-
- set(ICU_INCLUDE_DIRS
-+ "${CMAKE_INSTALL_PREFIX}/include"
- "${THIRDPARTY_DIR}/icu/source/common"
- "${THIRDPARTY_DIR}/icu/source/i18n"
- )
- set(ICU_LIBRARIES ${ICU_JAVA_COMMON_LIB} ${ICU_JAVA_DATA_LIB})
+-set(SQLITE_LIBRARIES SqliteJava)
+-set(LIBXML2_LIBRARIES XMLJava)
+-set(LIBXSLT_LIBRARIES XSLTJava)
+-
+-set(ICU_LIBRARIES icuuc icudata)
+-set(ICU_I18N_LIBRARIES icui18n icuuc icudata)
+-set(ICU_DATA_LIBRARIES icudata)
-
-+set(ICU_LIBRARIES ${ICU_JAVA_COMMON_LIB} ${ICU_JAVA_DATA_LIB})
++find_package(LibXml2 2.8.0 REQUIRED)
++find_package(LibXslt REQUIRED)
++find_package(Sqlite REQUIRED)
++find_package(ICU REQUIRED)
find_package(JNI REQUIRED)
find_package(Threads REQUIRED)
diff --git a/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_cmake_WebKitCompilerFlags.cmake b/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_cmake_WebKitCompilerFlags.cmake
new file mode 100644
index 000000000000..3d9c6bc1b652
--- /dev/null
+++ b/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_cmake_WebKitCompilerFlags.cmake
@@ -0,0 +1,13 @@
+--- modules/web/src/main/native/Source/cmake/WebKitCompilerFlags.cmake.orig 2019-07-22 23:29:21 UTC
++++ modules/web/src/main/native/Source/cmake/WebKitCompilerFlags.cmake
+@@ -176,10 +176,6 @@ if (NOT MSVC)
+ string(REGEX MATCHALL "-fsanitize=[^ ]*" ENABLED_COMPILER_SANITIZERS ${CMAKE_CXX_FLAGS})
+ endif ()
+
+-if (UNIX AND NOT APPLE AND NOT ENABLED_COMPILER_SANITIZERS)
+- set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined ${CMAKE_SHARED_LINKER_FLAGS}")
+-endif ()
+-
+
+ # CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS only matters with GCC >= 4.7.0. Since this
+ # version, -P does not output empty lines, which currently breaks make_names.pl in
diff --git a/java/openjfx8-devel/files/patch-modules_web_src_main_native_Tools_DumpRenderTree_TestRunner.cpp b/java/openjfx8-devel/files/patch-modules_web_src_main_native_Tools_DumpRenderTree_TestRunner.cpp
index 5bdfca88819f..51ce7bac8d53 100644
--- a/java/openjfx8-devel/files/patch-modules_web_src_main_native_Tools_DumpRenderTree_TestRunner.cpp
+++ b/java/openjfx8-devel/files/patch-modules_web_src_main_native_Tools_DumpRenderTree_TestRunner.cpp
@@ -1,6 +1,6 @@
---- modules/web/src/main/native/Tools/DumpRenderTree/TestRunner.cpp.orig 2018-01-16 01:40:56 UTC
+--- modules/web/src/main/native/Tools/DumpRenderTree/TestRunner.cpp.orig 2018-12-10 16:30:22 UTC
+++ modules/web/src/main/native/Tools/DumpRenderTree/TestRunner.cpp
-@@ -2400,7 +2400,7 @@ void TestRunner::runUIScript(JSContextRef context, JSS
+@@ -2415,7 +2415,7 @@ void TestRunner::runUIScript(JSContextRef context, JSS
if (!m_UIScriptContext)
m_UIScriptContext = std::make_unique<WTR::UIScriptContext>(*this);
diff --git a/java/openjfx8-devel/files/patch-modules_web_src_main_native_Tools_DumpRenderTree_java_CMakeLists.txt b/java/openjfx8-devel/files/patch-modules_web_src_main_native_Tools_DumpRenderTree_java_CMakeLists.txt
index 9c522dbe29d2..7a390db949ff 100644
--- a/java/openjfx8-devel/files/patch-modules_web_src_main_native_Tools_DumpRenderTree_java_CMakeLists.txt
+++ b/java/openjfx8-devel/files/patch-modules_web_src_main_native_Tools_DumpRenderTree_java_CMakeLists.txt
@@ -1,13 +1,12 @@
---- modules/web/src/main/native/Tools/DumpRenderTree/java/CMakeLists.txt.orig 2018-01-16 01:40:56 UTC
+--- modules/web/src/main/native/Tools/DumpRenderTree/java/CMakeLists.txt.orig 2019-07-22 18:32:25 UTC
+++ modules/web/src/main/native/Tools/DumpRenderTree/java/CMakeLists.txt
-@@ -90,9 +90,7 @@ add_library(DumpRenderTreeJava SHARED ${DumpRenderTree
+@@ -72,9 +72,5 @@ add_library(DumpRenderTreeJava SHARED ${DumpRenderTree
add_definitions(-DWEBCORE_EXPORT=WTF_IMPORT -DWEBCORE_TESTSUPPORT_EXPORT=WTF_IMPORT)
add_dependencies(DumpRenderTreeJava DumpRenderTreeBindings)
-if (UNIX AND NOT APPLE)
- set_target_properties(DumpRenderTreeJava PROPERTIES LINK_FLAGS "-Wl,--no-undefined")
--elseif (WIN32)
-+if (WIN32)
- # Workaround for MSBuild. It always creates Release|Debug folder
- # according to the build type on each target.
- install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/DumpRenderTreeJava.dll DESTINATION ${CMAKE_BINARY_DIR}/lib OPTIONAL)
+-endif ()
+-
+ set_target_properties(DumpRenderTreeJava PROPERTIES OUTPUT_NAME "DumpRenderTreeJava")
+ target_link_libraries(DumpRenderTreeJava ${DumpRenderTree_LIBRARIES})
diff --git a/java/openjfx8-devel/files/patch-modules_web_src_main_native_Tools_Scripts_webkitdirs.pm b/java/openjfx8-devel/files/patch-modules_web_src_main_native_Tools_Scripts_webkitdirs.pm
index aefc2e8f1871..5d1abb8af296 100644
--- a/java/openjfx8-devel/files/patch-modules_web_src_main_native_Tools_Scripts_webkitdirs.pm
+++ b/java/openjfx8-devel/files/patch-modules_web_src_main_native_Tools_Scripts_webkitdirs.pm
@@ -1,11 +1,11 @@
---- modules/web/src/main/native/Tools/Scripts/webkitdirs.pm.orig 2018-01-16 01:40:56 UTC
+--- modules/web/src/main/native/Tools/Scripts/webkitdirs.pm.orig 2018-07-27 01:38:45 UTC
+++ modules/web/src/main/native/Tools/Scripts/webkitdirs.pm
-@@ -2061,7 +2061,7 @@ sub generateBuildSystemFromCMakeProject
+@@ -2148,7 +2148,7 @@ sub generateBuildSystemFromCMakeProject
chdir($buildPath) or die;
# We try to be smart about when to rerun cmake, so that we can have faster incremental builds.
-- my $willUseNinja = canUseNinja() && canUseNinjaGenerator();
-+ my $willUseNinja = 0; # canUseNinja() && canUseNinjaGenerator();
+- my $willUseNinja = canUseNinja();
++ my $willUseNinja = 0; # canUseNinja();
if (-e cmakeCachePath() && -e cmakeGeneratedBuildfile($willUseNinja)) {
return 0;
}
diff --git a/java/openjfx8-devel/files/sndiosink.c b/java/openjfx8-devel/files/sndiosink.c
index eda86ee726f2..cc68bd29d807 100644
--- a/java/openjfx8-devel/files/sndiosink.c
+++ b/java/openjfx8-devel/files/sndiosink.c
@@ -1,5 +1,6 @@
/*
- * Copyright (C) <2008> Jacob Meuser <jakemsr@sdf.lonestar.org>
+ * Copyright (C) 2008 Jacob Meuser <jakemsr@sdf.lonestar.org>
+ * Copyright (C) 2012 Alexandre Ratchov <alex@caoua.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -34,491 +35,192 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
-
#include "sndiosink.h"
-#include <unistd.h>
-#include <errno.h>
-
-#define _(x) x
GST_DEBUG_CATEGORY_EXTERN (gst_sndio_debug);
#define GST_CAT_DEFAULT gst_sndio_debug
-enum
-{
- PROP_0,
- PROP_HOST
-};
+#define gst_sndiosink_parent_class parent_class
-static GstStaticPadTemplate sndio_sink_factory =
+static GstStaticPadTemplate sndiosink_factory =
GST_STATIC_PAD_TEMPLATE ("sink",
- GST_PAD_SINK,
- GST_PAD_ALWAYS,
- GST_STATIC_CAPS ("audio/x-raw-int, "
- "endianness = (int) { 1234, 4321 }, "
- "signed = (boolean) { TRUE, FALSE }, "
- "width = (int) { 8, 16, 24, 32 }, "
- "depth = (int) { 8, 16, 24, 32 }, "
- "rate = (int) [ 8000, 192000 ], "
- "channels = (int) [ 1, 16 ] ")
+ GST_PAD_SINK,
+ GST_PAD_ALWAYS,
+ GST_STATIC_CAPS (GST_SNDIO_CAPS_STRING)
);
-static void gst_sndiosink_finalize (GObject * object);
-
-static GstCaps *gst_sndiosink_getcaps (GstBaseSink * bsink);
+G_DEFINE_TYPE_WITH_CODE (GstSndioSink, gst_sndiosink, GST_TYPE_AUDIO_SINK,
+ G_IMPLEMENT_INTERFACE (GST_TYPE_STREAM_VOLUME, NULL));
+static void gst_sndiosink_finalize (GObject * object);
+static GstCaps *gst_sndiosink_getcaps (GstBaseSink * bsink,
+ GstCaps * filter);
static gboolean gst_sndiosink_open (GstAudioSink * asink);
static gboolean gst_sndiosink_close (GstAudioSink * asink);
static gboolean gst_sndiosink_prepare (GstAudioSink * asink,
- GstRingBufferSpec * spec);
+ GstAudioRingBufferSpec * spec);
static gboolean gst_sndiosink_unprepare (GstAudioSink * asink);
-static guint gst_sndiosink_write (GstAudioSink * asink, gpointer data,
+static gint gst_sndiosink_write (GstAudioSink * asink, gpointer data,
guint length);
static guint gst_sndiosink_delay (GstAudioSink * asink);
static void gst_sndiosink_reset (GstAudioSink * asink);
-
static void gst_sndiosink_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec);
static void gst_sndiosink_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec);
-static void gst_sndiosink_cb(void * addr, int delta);
-
-GST_BOILERPLATE (GstSndioSink, gst_sndiosink, GstAudioSink, GST_TYPE_AUDIO_SINK);
-
-static void
-gst_sndiosink_base_init (gpointer g_class)
-{
- GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
-
- gst_element_class_set_details_simple (element_class,
- "Sndio audio sink", "Sink/Audio", "Plays audio through sndio",
- "Jacob Meuser <jakemsr@sdf.lonestar.org>");
-
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&sndio_sink_factory));
-}
-
-static void
-gst_sndiosink_class_init (GstSndioSinkClass * klass)
-{
- GObjectClass *gobject_class;
- GstBaseSinkClass *gstbasesink_class;
- GstBaseAudioSinkClass *gstbaseaudiosink_class;
- GstAudioSinkClass *gstaudiosink_class;
-
- gobject_class = (GObjectClass *) klass;
- gstbasesink_class = (GstBaseSinkClass *) klass;
- gstbaseaudiosink_class = (GstBaseAudioSinkClass *) klass;
- gstaudiosink_class = (GstAudioSinkClass *) klass;
-
- parent_class = g_type_class_peek_parent (klass);
-
- gobject_class->finalize = gst_sndiosink_finalize;
-
- gstbasesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_sndiosink_getcaps);
-
- gstaudiosink_class->open = GST_DEBUG_FUNCPTR (gst_sndiosink_open);
- gstaudiosink_class->close = GST_DEBUG_FUNCPTR (gst_sndiosink_close);
- gstaudiosink_class->prepare = GST_DEBUG_FUNCPTR (gst_sndiosink_prepare);
- gstaudiosink_class->unprepare = GST_DEBUG_FUNCPTR (gst_sndiosink_unprepare);
- gstaudiosink_class->write = GST_DEBUG_FUNCPTR (gst_sndiosink_write);
- gstaudiosink_class->delay = GST_DEBUG_FUNCPTR (gst_sndiosink_delay);
- gstaudiosink_class->reset = GST_DEBUG_FUNCPTR (gst_sndiosink_reset);
-
- gobject_class->set_property = gst_sndiosink_set_property;
- gobject_class->get_property = gst_sndiosink_get_property;
-
- /* default value is filled in the _init method */
- g_object_class_install_property (gobject_class, PROP_HOST,
- g_param_spec_string ("host", "Host",
- "Device or socket sndio will access", NULL, G_PARAM_READWRITE));
-}
static void
-gst_sndiosink_init (GstSndioSink * sndiosink, GstSndioSinkClass * klass)
+gst_sndiosink_init (GstSndioSink * sink)
{
- sndiosink->hdl = NULL;
- sndiosink->host = g_strdup (g_getenv ("AUDIODEVICE"));
+ gst_sndio_init (&sink->sndio, G_OBJECT(sink));
}
static void
gst_sndiosink_finalize (GObject * object)
{
- GstSndioSink *sndiosink = GST_SNDIOSINK (object);
-
- gst_caps_replace (&sndiosink->cur_caps, NULL);
- g_free (sndiosink->host);
+ GstSndioSink *sink = GST_SNDIOSINK (object);
+ gst_sndio_finalize (&sink->sndio);
G_OBJECT_CLASS (parent_class)->finalize (object);
}
static GstCaps *
-gst_sndiosink_getcaps (GstBaseSink * bsink)
+gst_sndiosink_getcaps (GstBaseSink * bsink, GstCaps * filter)
{
- GstSndioSink *sndiosink;
-
- sndiosink = GST_SNDIOSINK (bsink);
-
- /* no hdl, we're done with the template caps */
- if (sndiosink->cur_caps == NULL) {
- GST_LOG_OBJECT (sndiosink, "getcaps called, returning template caps");
- return NULL;
- }
-
- GST_LOG_OBJECT (sndiosink, "returning %" GST_PTR_FORMAT, sndiosink->cur_caps);
+ GstSndioSink *sink = GST_SNDIOSINK (bsink);
- return gst_caps_ref (sndiosink->cur_caps);
+ return gst_sndio_getcaps (&sink->sndio, filter);
}
static gboolean
gst_sndiosink_open (GstAudioSink * asink)
{
- GstPadTemplate *pad_template;
- GstSndioSink *sndiosink;
- struct sio_par par;
- struct sio_cap cap;
- GArray *rates, *chans;
- GValue rates_v = { 0 };
- GValue chans_v = { 0 };
- GValue value = { 0 };
- struct sio_enc enc;
- struct sio_conf conf;
- int confs[SIO_NCONF];
- int rate, chan;
- int i, j, k;
- int nconfs;
-
- sndiosink = GST_SNDIOSINK (asink);
-
- GST_DEBUG_OBJECT (sndiosink, "open");
-
- /* conect */
- sndiosink->hdl = sio_open (sndiosink->host, SIO_PLAY, 0);
-
- if (sndiosink->hdl == NULL)
- goto couldnt_connect;
-
- /* Use sndio defaults as the only encodings, but get the supported
- * sample rates and number of channels.
- */
-
- if (!sio_getpar(sndiosink->hdl, &par))
- goto no_server_info;
-
- if (!sio_getcap(sndiosink->hdl, &cap))
- goto no_server_info;
-
- rates = g_array_new(FALSE, FALSE, sizeof(int));
- chans = g_array_new(FALSE, FALSE, sizeof(int));
-
- /* find confs that have the default encoding */
- nconfs = 0;
- for (i = 0; i < cap.nconf; i++) {
- for (j = 0; j < SIO_NENC; j++) {
- if (cap.confs[i].enc & (1 << j)) {
- enc = cap.enc[j];
- if (enc.bits == par.bits && enc.sig == par.sig && enc.le == par.le) {
- confs[nconfs] = i;
- nconfs++;
- break;
- }
- }
- }
- }
-
- /* find the rates and channels of the confs that have the default encoding */
- for (i = 0; i < nconfs; i++) {
- conf = cap.confs[confs[i]];
- /* rates */
- for (j = 0; j < SIO_NRATE; j++) {
- if (conf.rate & (1 << j)) {
- rate = cap.rate[j];
- for (k = 0; k < rates->len && rate; k++) {
- if (rate == g_array_index(rates, int, k))
- rate = 0;
- }
- /* add in ascending order */
- if (rate) {
- for (k = 0; k < rates->len; k++) {
- if (rate < g_array_index(rates, int, k)) {
- g_array_insert_val(rates, k, rate);
- break;
- }
- }
- if (k == rates->len)
- g_array_append_val(rates, rate);
- }
- }
- }
- /* channels */
- for (j = 0; j < SIO_NCHAN; j++) {
- if (conf.pchan & (1 << j)) {
- chan = cap.pchan[j];
- for (k = 0; k < chans->len && chan; k++) {
- if (chan == g_array_index(chans, int, k))
- chan = 0;
- }
- /* add in ascending order */
- if (chan) {
- for (k = 0; k < chans->len; k++) {
- if (chan < g_array_index(chans, int, k)) {
- g_array_insert_val(chans, k, chan);
- break;
- }
- }
- if (k == chans->len)
- g_array_append_val(chans, chan);
- }
- }
- }
- }
- /* not sure how this can happen, but it might */
- if (cap.nconf == 0) {
- g_array_append_val(rates, par.rate);
- g_array_append_val(chans, par.pchan);
- }
+ GstSndioSink *sink = GST_SNDIOSINK (asink);
- g_value_init(&rates_v, GST_TYPE_LIST);
- g_value_init(&chans_v, GST_TYPE_LIST);
- g_value_init(&value, G_TYPE_INT);
-
- for (i = 0; i < rates->len; i++) {
- g_value_set_int(&value, g_array_index(rates, int, i));
- gst_value_list_append_value(&rates_v, &value);
- }
- for (i = 0; i < chans->len; i++) {
- g_value_set_int(&value, g_array_index(chans, int, i));
- gst_value_list_append_value(&chans_v, &value);
- }
-
- g_array_free(rates, TRUE);
- g_array_free(chans, TRUE);
-
- pad_template = gst_static_pad_template_get (&sndio_sink_factory);
- sndiosink->cur_caps = gst_caps_copy (gst_pad_template_get_caps (pad_template));
- gst_object_unref (pad_template);
-
- for (i = 0; i < sndiosink->cur_caps->structs->len; i++) {
- GstStructure *s;
-
- s = gst_caps_get_structure (sndiosink->cur_caps, i);
- gst_structure_set (s, "endianness", G_TYPE_INT, par.le ? 1234 : 4321, NULL);
- gst_structure_set (s, "signed", G_TYPE_BOOLEAN, par.sig ? TRUE : FALSE, NULL);
- gst_structure_set (s, "width", G_TYPE_INT, par.bits, NULL);
- // gst_structure_set (s, "depth", G_TYPE_INT, par.bps * 8, NULL); /* XXX */
- gst_structure_set_value (s, "rate", &rates_v);
- gst_structure_set_value (s, "channels", &chans_v);
- }
-
- return TRUE;
-
- /* ERRORS */
-couldnt_connect:
- {
- GST_ELEMENT_ERROR (sndiosink, RESOURCE, OPEN_WRITE,
- (_("Could not establish connection to sndio")),
- ("can't open connection to sndio"));
- return FALSE;
- }
-no_server_info:
- {
- GST_ELEMENT_ERROR (sndiosink, RESOURCE, OPEN_WRITE,
- (_("Failed to query sndio capabilities")),
- ("couldn't get sndio info!"));
- return FALSE;
- }
+ return gst_sndio_open (&sink->sndio, SIO_PLAY);
}
static gboolean
gst_sndiosink_close (GstAudioSink * asink)
{
- GstSndioSink *sndiosink = GST_SNDIOSINK (asink);
-
- GST_DEBUG_OBJECT (sndiosink, "close");
-
- gst_caps_replace (&sndiosink->cur_caps, NULL);
- sio_close (sndiosink->hdl);
- sndiosink->hdl = NULL;
-
- return TRUE;
-}
-
-static void
-gst_sndiosink_cb(void *addr, int delta)
-{
- GstSndioSink *sndiosink = GST_SNDIOSINK ((GstAudioSink *)addr);
-
- sndiosink->realpos += delta;
+ GstSndioSink *sink = GST_SNDIOSINK (asink);
- if (sndiosink->realpos >= sndiosink->playpos)
- sndiosink->latency = 0;
- else
- sndiosink->latency = sndiosink->playpos - sndiosink->realpos;
+ return gst_sndio_close (&sink->sndio);
}
static gboolean
-gst_sndiosink_prepare (GstAudioSink * asink, GstRingBufferSpec * spec)
+gst_sndiosink_prepare (GstAudioSink * asink, GstAudioRingBufferSpec * spec)
{
- GstSndioSink *sndiosink = GST_SNDIOSINK (asink);
- struct sio_par par;
- int spec_bpf;
-
- GST_DEBUG_OBJECT (sndiosink, "prepare");
-
- sndiosink->playpos = sndiosink->realpos = sndiosink->latency = 0;
-
- sio_initpar(&par);
- par.sig = spec->sign;
- par.le = !spec->bigend;
- par.bits = spec->width;
- // par.bps = spec->depth / 8; /* XXX */
- par.rate = spec->rate;
- par.pchan = spec->channels;
-
- spec_bpf = ((spec->width / 8) * spec->channels);
-
- par.appbufsz = (spec->segsize * spec->segtotal) / spec_bpf;
-
- if (!sio_setpar(sndiosink->hdl, &par))
- goto cannot_configure;
-
- sio_getpar(sndiosink->hdl, &par);
-
- spec->sign = par.sig;
- spec->bigend = !par.le;
- spec->width = par.bits;
- // spec->depth = par.bps * 8; /* XXX */
- spec->rate = par.rate;
- spec->channels = par.pchan;
-
- sndiosink->bpf = par.bps * par.pchan;
-
- spec->segsize = par.round * par.pchan * par.bps;
- spec->segtotal = par.bufsz / par.round;
-
- /* FIXME: this is wrong for signed ints (and the
- * audioringbuffers should do it for us anyway) */
- spec->silence_sample[0] = 0;
- spec->silence_sample[1] = 0;
- spec->silence_sample[2] = 0;
- spec->silence_sample[3] = 0;
-
- sio_onmove(sndiosink->hdl, gst_sndiosink_cb, sndiosink);
-
- if (!sio_start(sndiosink->hdl))
- goto cannot_start;
-
- GST_INFO_OBJECT (sndiosink, "successfully opened connection to sndio");
-
- return TRUE;
+ GstSndioSink *sink = GST_SNDIOSINK (asink);
- /* ERRORS */
-cannot_configure:
- {
- GST_ELEMENT_ERROR (sndiosink, RESOURCE, OPEN_WRITE,
- (_("Could not configure sndio")),
- ("can't configure sndio"));
- return FALSE;
- }
-cannot_start:
- {
- GST_ELEMENT_ERROR (sndiosink, RESOURCE, OPEN_WRITE,
- (_("Could not start sndio")),
- ("can't start sndio"));
- return FALSE;
- }
+ return gst_sndio_prepare (&sink->sndio, spec);
}
static gboolean
gst_sndiosink_unprepare (GstAudioSink * asink)
{
- GstSndioSink *sndiosink = GST_SNDIOSINK (asink);
-
- if (sndiosink->hdl == NULL)
- return TRUE;
+ GstSndioSink *sink = GST_SNDIOSINK (asink);
- sio_stop(sndiosink->hdl);
-
- return TRUE;
+ return gst_sndio_unprepare (&sink->sndio);
}
-static guint
+static gint
gst_sndiosink_write (GstAudioSink * asink, gpointer data, guint length)
{
- GstSndioSink *sndiosink = GST_SNDIOSINK (asink);
+ GstSndioSink *sink = GST_SNDIOSINK (asink);
guint done;
- done = sio_write (sndiosink->hdl, data, length);
-
- if (done == 0)
- goto write_error;
-
- sndiosink->playpos += (done / sndiosink->bpf);
-
- data = (char *) data + done;
-
- return done;
-
- /* ERRORS */
-write_error:
- {
- GST_ELEMENT_ERROR (sndiosink, RESOURCE, WRITE,
- ("Failed to write data to sndio"), GST_ERROR_SYSTEM);
+ if (length == 0)
return 0;
+ done = sio_write (sink->sndio.hdl, data, length);
+ if (done == 0) {
+ GST_ELEMENT_ERROR (sink, RESOURCE, WRITE,
+ ("Failed to write data to sndio"), (NULL));
+ return 0;
}
+ sink->sndio.delay += done;
+ return done;
}
static guint
gst_sndiosink_delay (GstAudioSink * asink)
{
- GstSndioSink *sndiosink = GST_SNDIOSINK (asink);
-
- if (sndiosink->latency == (guint) - 1) {
- GST_WARNING_OBJECT (asink, "couldn't get latency");
- return 0;
- }
+ GstSndioSink *sink = GST_SNDIOSINK (asink);
- GST_DEBUG_OBJECT (asink, "got latency: %u", sndiosink->latency);
-
- return sndiosink->latency;
+ return GST_SNDIO_DELAY(&sink->sndio);
}
static void
gst_sndiosink_reset (GstAudioSink * asink)
{
- /* no way to flush the buffers with sndio ? */
-
- GST_DEBUG_OBJECT (asink, "reset called");
}
static void
-gst_sndiosink_set_property (GObject * object, guint prop_id, const GValue * value,
- GParamSpec * pspec)
+gst_sndiosink_set_property (GObject * object, guint prop_id,
+ const GValue * value, GParamSpec * pspec)
{
- GstSndioSink *sndiosink = GST_SNDIOSINK (object);
-
- switch (prop_id) {
- case PROP_HOST:
- g_free (sndiosink->host);
- sndiosink->host = g_value_dup_string (value);
- break;
- default:
- break;
- }
+ GstSndioSink *sink = GST_SNDIOSINK (object);
+
+ gst_sndio_set_property (&sink->sndio, prop_id, value, pspec);
}
static void
gst_sndiosink_get_property (GObject * object, guint prop_id, GValue * value,
GParamSpec * pspec)
{
- GstSndioSink *sndiosink = GST_SNDIOSINK (object);
-
- switch (prop_id) {
- case PROP_HOST:
- g_value_set_string (value, sndiosink->host);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
+ GstSndioSink *sink = GST_SNDIOSINK (object);
+
+ gst_sndio_get_property (&sink->sndio, prop_id, value, pspec);
+}
+
+static void
+gst_sndiosink_class_init (GstSndioSinkClass * klass)
+{
+ GObjectClass *gobject_class;
+ GstElementClass *gstelement_class;
+ GstBaseSinkClass *gstbasesink_class;
+ GstAudioBaseSinkClass *gstbaseaudiosink_class;
+ GstAudioSinkClass *gstaudiosink_class;
+
+ gobject_class = (GObjectClass *) klass;
+ gstelement_class = (GstElementClass *) klass;
+ gstbasesink_class = (GstBaseSinkClass *) klass;
+ gstbaseaudiosink_class = (GstAudioBaseSinkClass *) klass;
+ gstaudiosink_class = (GstAudioSinkClass *) klass;
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ gobject_class->finalize = gst_sndiosink_finalize;
+ gobject_class->get_property = gst_sndiosink_get_property;
+ gobject_class->set_property = gst_sndiosink_set_property;
+
+ gst_element_class_set_static_metadata (gstelement_class,
+ "Audio sink (sndio)", "Sink/Audio",
+ "Output to a sound card via sndio",
+ "Jacob Meuser <jakemsr@sdf.lonestar.org>");
+
+ gst_element_class_add_pad_template (gstelement_class,
+ gst_static_pad_template_get (&sndiosink_factory));
+
+ gstbasesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_sndiosink_getcaps);
+ gstaudiosink_class->open = GST_DEBUG_FUNCPTR (gst_sndiosink_open);
+ gstaudiosink_class->prepare = GST_DEBUG_FUNCPTR (gst_sndiosink_prepare);
+ gstaudiosink_class->unprepare = GST_DEBUG_FUNCPTR (gst_sndiosink_unprepare);
+ gstaudiosink_class->close = GST_DEBUG_FUNCPTR (gst_sndiosink_close);
+ gstaudiosink_class->write = GST_DEBUG_FUNCPTR (gst_sndiosink_write);
+ gstaudiosink_class->delay = GST_DEBUG_FUNCPTR (gst_sndiosink_delay);
+ gstaudiosink_class->reset = GST_DEBUG_FUNCPTR (gst_sndiosink_reset);
+
+ g_object_class_install_property (gobject_class, PROP_DEVICE,
+ g_param_spec_string ("device", "Device",
+ "sndio device as defined in sndio(7)",
+ SIO_DEVANY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_class, PROP_VOLUME,
+ g_param_spec_double ("volume", "Volume",
+ "Linear volume of this stream, 1.0=100%", 0.0, 1.0,
+ 1.0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_class, PROP_MUTE,
+ g_param_spec_boolean ("mute", "Mute",
+ "Mute state of this stream", FALSE,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
}
diff --git a/java/openjfx8-devel/files/sndiosink.h b/java/openjfx8-devel/files/sndiosink.h
index 25bb8799bd4d..314e62210c54 100644
--- a/java/openjfx8-devel/files/sndiosink.h
+++ b/java/openjfx8-devel/files/sndiosink.h
@@ -1,5 +1,6 @@
/*
- * Copyright (C) <2008> Jacob Meuser <jakemsr@sdf.lonestar.org>
+ * Copyright (C) 2008 Jacob Meuser <jakemsr@sdf.lonestar.org>
+ * Copyright (C) 2012 Alexandre Ratchov <alex@caoua.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -22,6 +23,7 @@
#include <gst/gst.h>
#include <gst/audio/gstaudiosink.h>
+#include "gstsndio.h"
G_BEGIN_DECLS
@@ -40,20 +42,8 @@ typedef struct _GstSndioSink GstSndioSink;
typedef struct _GstSndioSinkClass GstSndioSinkClass;
struct _GstSndioSink {
- GstAudioSink sink;
-
- struct sio_hdl *hdl;
- gchar *host;
-
- /* bytes per frame */
- int bpf;
-
- /* frames counts */
- volatile long long realpos;
- volatile long long playpos;
- volatile guint latency;
-
- GstCaps *cur_caps;
+ GstAudioSink sink;
+ struct gstsndio sndio;
};
struct _GstSndioSinkClass {
diff --git a/java/openjfx8-devel/pkg-plist b/java/openjfx8-devel/pkg-plist
index 4365ce044bd9..4ee0836a4d38 100644
--- a/java/openjfx8-devel/pkg-plist
+++ b/java/openjfx8-devel/pkg-plist
@@ -4,6 +4,8 @@
%%JAVA_HOME%%/jre/lib/%%ARCH%%/libdecora_sse.so
%%MEDIA%%%%JAVA_HOME%%/jre/lib/%%ARCH%%/libfxplugins.so
%%JAVA_HOME%%/jre/lib/%%ARCH%%/libglass.so
+%%JAVA_HOME%%/jre/lib/%%ARCH%%/libglassgtk2.so
+%%JAVA_HOME%%/jre/lib/%%ARCH%%/libglassgtk3.so
%%MEDIA%%%%JAVA_HOME%%/jre/lib/%%ARCH%%/libgstreamer-lite.so
%%JAVA_HOME%%/jre/lib/%%ARCH%%/libjavafx_font.so
%%JAVA_HOME%%/jre/lib/%%ARCH%%/libjavafx_font_freetype.so