ports/java/openjfx14/files/patch-build.gradle
Mikael Urankar 119b9927c5 java/openjfx14: add new port
OpenJFX is an open source, next generation client application platform for
desktop and embedded systems based on JavaSE. It is a collaborative effort by
many individuals and companies with the goal of producing a modern, efficient,
and fully featured toolkit for developing rich client applications.

PR:		248248
2020-10-28 17:15:33 +00:00

303 lines
18 KiB
Groovy

--- build.gradle.orig 2020-07-17 12:21:33 UTC
+++ build.gradle
@@ -295,6 +295,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")
+ext.IS_BSD = OS_NAME.contains("freebsd") || OS_NAME.contains("dragonfly")
ext.MAVEN_GROUP_ID = "org.openjfx"
@@ -302,7 +303,7 @@ ext.MAVEN_GROUP_ID = "org.openjfx"
// 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.
-if (!IS_MAC && !IS_WINDOWS && !IS_LINUX) fail("Unsupported build OS ${OS_NAME}")
+if (!IS_MAC && !IS_WINDOWS && !IS_LINUX && !IS_BSD) fail("Unsupported build OS ${OS_NAME}")
if (IS_WINDOWS && OS_ARCH != "x86" && OS_ARCH != "amd64") {
fail("Unknown and unsupported build architecture: $OS_ARCH")
} else if (IS_MAC && OS_ARCH != "x86_64") {
@@ -385,7 +386,7 @@ defineProperty("BUILD_WORKING_LIBAV", "false")
ext.IS_BUILD_WORKING_LIBAV = IS_LINUX ? Boolean.parseBoolean(BUILD_WORKING_LIBAV) : false
// COMPILE_PANGO specifies whether to build javafx_font_pango.
-defineProperty("COMPILE_PANGO", "${IS_LINUX}")
+defineProperty("COMPILE_PANGO", "${IS_LINUX || IS_BSD}")
ext.IS_COMPILE_PANGO = Boolean.parseBoolean(COMPILE_PANGO)
// COMPILE_HARFBUZZ specifies whether to use Harfbuzz.
@@ -413,7 +414,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.jar" : ""
// Specifies whether to run full tests (true) or smoke tests (false)
defineProperty("FULL_TEST", "false")
@@ -495,6 +497,12 @@ if (IS_MAC) {
defineProperty("NUM_COMPILE_THREADS", "${Runtime.runtime.availableProcessors()}")
}
+if (IS_BSD) {
+ ext.MAKE_CMD = "gmake"
+} else {
+ ext.MAKE_CMD = "make"
+}
+
//
// The next three sections of properties are used to generate the
// VersionInfo class, and the Windows DLL manifest.
@@ -558,7 +566,7 @@ defineProperty("MAVEN_VERSION", IS_MILESTONE_FCS ? "${
// 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
-project.ext.set("defaultHostTarget", IS_MAC ? "mac" : IS_WINDOWS ? "win" : IS_LINUX ? "linux" : "");
+project.ext.set("defaultHostTarget", IS_MAC ? "mac" : IS_WINDOWS ? "win" : IS_LINUX ? "linux" : IS_BSD ? "bsd" : "");
defineProperty("COMPILE_TARGETS", "$defaultHostTarget")
// Flag indicating whether to import cross compile tools
@@ -704,7 +712,7 @@ void fetchExternalTools(String configName, List packag
def File pkgdir = file("$destdir/$basename")
if (pkgname.endsWith(".tgz") || pkgname.endsWith("tar.gz")) {
- if (IS_LINUX || IS_MAC) {
+ if (IS_LINUX || IS_MAC || IS_BSD) {
// use native tar to support symlinks
pkgdir.mkdirs()
exec {
@@ -1180,7 +1188,7 @@ compileTargets { t ->
if (!targetProperties.containsKey('includeMonocle')) targetProperties.includeMonocle = false
if (!targetProperties.containsKey('includeEGL')) targetProperties.includeEGL = false
- if (!targetProperties.containsKey('includeGTK')) targetProperties.includeGTK = IS_LINUX
+ if (!targetProperties.containsKey('includeGTK')) targetProperties.includeGTK = IS_LINUX || IS_BSD
if (!targetProperties.containsKey('modLibDest')) targetProperties.modLibDest = targetProperties.libDest
@@ -2067,6 +2075,11 @@ project(":graphics") {
}
dependencies {
+ if (IS_BSD) {
+ compile files(SWT_FILE_NAME)
+ } else {
+ compile name: SWT_FILE_NAME
+ }
stubCompile group: "junit", name: "junit", version: "4.8.2"
antlr group: "org.antlr", name: "antlr4", version: "4.7.2", classifier: "complete"
@@ -2602,31 +2615,10 @@ project(":swt") {
commonModuleSetup(project, [ 'base', 'graphics' ])
dependencies {
- compile name: SWT_FILE_NAME
- }
-
- classes {
- doLast {
- // Copy all of the download libraries to libs directory for the sake of the IDEs
- File libsDir = rootProject.file("build/libs");
- File swtLib = new File(libsDir, "swt-debug.jar")
- libsDir.mkdirs();
-
- // Skip copy if file is present.
- if (swtLib.exists()) return;
-
- for (File f : configurations.compile.files) {
- // Have to rename the swt jar because it is some platform specific name but
- // for the sake of the IDEs we need to have a single stable name that works
- // on every platform
- copy {
- into libsDir
- from f.getParentFile()
- include "**/*swt*.jar"
- includeEmptyDirs = false
- rename ".*swt.*jar", "swt-debug\\.jar"
- }
- }
+ if (IS_BSD) {
+ compile files(SWT_FILE_NAME)
+ } else {
+ compile name: SWT_FILE_NAME
}
}
@@ -2809,7 +2801,7 @@ project(":media") {
doLast {
exec {
- commandLine ("make", "${makeJobsFlag}", "-C", "${nativeSrcDir}/jfxmedia/projects/${projectDir}")
+ commandLine (MAKE_CMD, "${makeJobsFlag}", "-C", "${nativeSrcDir}/jfxmedia/projects/${projectDir}")
args("JAVA_HOME=${JDK_HOME}", "GENERATED_HEADERS_DIR=${generatedHeadersDir}",
"OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}", "BASE_NAME=jfxmedia",
"COMPILE_PARFAIT=${compileParfait}",
@@ -2838,7 +2830,7 @@ project(":media") {
enabled = IS_COMPILE_MEDIA
doLast {
exec {
- commandLine ("make", "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/${projectDir}/gstreamer-lite")
+ commandLine (MAKE_CMD, "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/${projectDir}/gstreamer-lite")
args("OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}", "BASE_NAME=gstreamer-lite",
IS_64 ? "ARCH=x64" : "ARCH=x32", "CC=${mediaProperties.compiler}",
"AR=${mediaProperties.ar}", "LINKER=${mediaProperties.linker}")
@@ -2856,7 +2848,7 @@ project(":media") {
doLast {
exec {
- commandLine ("make", "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/${projectDir}/fxplugins")
+ commandLine (MAKE_CMD, "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/${projectDir}/fxplugins")
args("OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}", "BASE_NAME=fxplugins",
IS_64 ? "ARCH=x64" : "ARCH=x32",
"CC=${mediaProperties.compiler}", "AR=${mediaProperties.ar}", "LINKER=${mediaProperties.linker}")
@@ -2879,7 +2871,7 @@ project(":media") {
buildNative.dependsOn buildPlugins
- if (t.name == "linux") {
+ if (t.name == "linux" || t.name == "bsd") {
// Pre-defined command line arguments
def cfgCMDArgs = ["sh", "configure"]
def commonCfgArgs = ["--enable-shared", "--disable-debug", "--disable-static", "--disable-yasm", "--disable-doc", "--disable-programs", "--disable-everything"]
@@ -2984,7 +2976,7 @@ project(":media") {
}
exec {
workingDir("$libavDir")
- commandLine("make")
+ commandLine(MAKE_CMD)
}
}
}
@@ -3052,7 +3044,7 @@ project(":media") {
}
exec {
workingDir("$libavDir")
- commandLine("make")
+ commandLine(MAKE_CMD)
}
}
}
@@ -3138,7 +3130,7 @@ project(":media") {
}
exec {
workingDir("$libavDir")
- commandLine("make")
+ commandLine(MAKE_CMD)
}
}
}
@@ -3172,7 +3164,7 @@ project(":media") {
File dir = file(libavDir)
if (dir.exists()) {
exec {
- commandLine ("make", "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/linux/avplugin")
+ commandLine (MAKE_CMD, "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/linux/avplugin")
args("CC=${mediaProperties.compiler}", "LINKER=${mediaProperties.linker}",
"OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}",
"BASE_NAME=avplugin", "VERSION=${version}", "LIBAV_DIR=${libavDir}",
@@ -3186,7 +3178,7 @@ project(":media") {
File dir = file(libavDir)
if (dir.exists()) {
exec {
- commandLine ("make", "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/linux/avplugin")
+ commandLine (MAKE_CMD, "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/${t.name}/avplugin")
args("CC=${mediaProperties.compiler}", "LINKER=${mediaProperties.linker}",
"OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}",
"BASE_NAME=avplugin", "VERSION=${version}", "LIBAV_DIR=${libavDir}",
@@ -3200,7 +3192,7 @@ project(":media") {
File dir = file(libavDir)
if (dir.exists()) {
exec {
- commandLine ("make", "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/linux/avplugin")
+ commandLine (MAKE_CMD, "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/linux/avplugin")
args("CC=${mediaProperties.compiler}", "LINKER=${mediaProperties.linker}",
"OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}",
"BASE_NAME=avplugin", "VERSION=${version}", "LIBAV_DIR=${libavDir}",
@@ -3211,7 +3203,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")
args("CC=${mediaProperties.compiler}", "LINKER=${mediaProperties.linker}",
"OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}",
"BASE_NAME=avplugin", IS_64 ? "ARCH=x64" : "ARCH=x32")
@@ -3262,7 +3254,7 @@ project(":media") {
doLast {
exec {
environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT)
- 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",
IS_64 ? "ARCH=x64" : "ARCH=x32", "RESOURCE=${nativeOutputDir}/${buildType}/${WIN.media.glibRcFile}",
"CC=${mediaProperties.compiler}", "AR=${mediaProperties.ar}", "LINKER=${mediaProperties.linker}")
@@ -3282,7 +3274,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}", "LINKER=${mediaProperties.linker}")
}
@@ -3407,7 +3399,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}")
@@ -3436,13 +3428,16 @@ project(":web") {
environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT)
} else if (t.name == "mac") {
cmakeArgs = " $cmakeArgs -DCMAKE_OSX_DEPLOYMENT_TARGET=$MACOSX_MIN_VERSION -DCMAKE_OSX_SYSROOT=$MACOSX_SDK_PATH"
- } else if (t.name == "linux") {
- cmakeArgs = " $cmakeArgs -DCMAKE_SYSTEM_NAME=Linux"
- if (IS_64) {
- cmakeArgs = "$cmakeArgs -DCMAKE_SYSTEM_PROCESSOR=x86_64"
+ } else if (t.name == "linux" || t.name == "bsd") {
+ if (t.name == "linux") {
+ cmakeArgs = " $cmakeArgs -DCMAKE_SYSTEM_NAME=Linux"
} else {
- cmakeArgs = "$cmakeArgs -DCMAKE_SYSTEM_PROCESSOR=i586"
+ cmakeArgs = " $cmakeArgs -DCMAKE_SYSTEM_NAME=FreeBSD"
}
+ if ( OS_ARCH != "amd64" && OS_ARCH != "i386" ) {
+ cmakeArgs = "$cmakeArgs -DENABLE_JIT=OFF"
+ }
+ cmakeArgs = " $cmakeArgs -DCMAKE_SYSTEM_PROCESSOR=$OS_ARCH"
// TODO: Use cflags and ldflags from all platforms
def cFlags = webkitProperties.ccFlags?.join(' ') ?: ''
def lFlags = webkitProperties.linkFlags?.join(' ') ?: ''
@@ -3479,6 +3474,10 @@ project(":web") {
targetCpuBitDepthSwitch = "--32-bit"
}
cmakeArgs += " -DJAVAFX_RELEASE_VERSION=${jfxReleaseMajorVersion}"
+ 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,
"--no-experimental-features", "--cmakeargs=${cmakeArgs}")
@@ -4928,7 +4927,7 @@ compileTargets { t ->
// OSX media natives
[ "jfxmedia_qtkit", "jfxmedia_avf", "glib-lite" ].each { name ->
from ("${mediaProject.buildDir}/native/${t.name}/${mediaBuildType}/${library(name)}") }
- } else if (t.name == "linux") {
+ } else if (t.name == "linux" || t.name == "bsd") {
from("${mediaProject.buildDir}/native/${t.name}/${mediaBuildType}") { include "libavplugin*.so" }
} else from ("${mediaProject.buildDir}/native/${t.name}/${mediaBuildType}/${library("glib-lite")}")
} else {
@@ -4941,7 +4940,7 @@ compileTargets { t ->
// copy libjfxmedia_{avf,qtkit}.dylib if they exist
[ "jfxmedia_qtkit", "jfxmedia_avf", "glib-lite" ].each { name ->
from ("$MEDIA_STUB/${library(name)}") }
- } else if (t.name == "linux") {
+ } else if (t.name == "linux" || t.name == "bsd") {
from(MEDIA_STUB) { include "libavplugin*.so" }
}
else if (t.name != "android" && t.name != "dalvik" ) {