< prev index next >
./build.gradle
Print this page
rev 10320 : 8172237: buildModule task shouldn't take significant time during no-op build
Reviewed-by:
*** 397,410 ****
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" : ""
- // Build javadocs only if BUILD_JAVADOC=true
- defineProperty("BUILD_JAVADOC", "false")
- ext.IS_BUILD_JAVADOC = Boolean.parseBoolean(BUILD_JAVADOC)
-
// Specifies whether to build the javafx-exports bundle
defineProperty("BUILD_MODULE_ZIP", "true")
ext.IS_BUILD_MODULE_ZIP = Boolean.parseBoolean(BUILD_MODULE_ZIP)
// Specifies whether to run full tests (true) or smoke tests (false)
--- 397,406 ----
*** 2309,2365 ****
output(file("$buildDir/native/WinLauncher"));
source(file("src/main/native/launcher/win"));
compiler = WIN.launcher.compiler
exe = true;
linkerOptions.addAll(WIN.launcher.linkFlags);
! doLast {
! copy {
from "$buildDir/native/WinLauncher/WinLauncher.exe"
from "$MSVCR"
from "$MSVCP"
into "${buildClassesDir}/com/oracle/tools/packager/windows"
}
! }
! }
task compileWinLibrary(type: CCTask, group: "Build") {
description = "Compiles native sources for the application co-bundle launcher library";
matches = ".*\\.cpp"
source(file("src/main/native/library/common"));
params.addAll(WIN.launcherlibrary.ccFlags)
output(file("$buildDir/native/WinLauncher/obj"));
compiler = WIN.launcherlibrary.compiler
}
task linkWinLibrary(type: LinkTask, group: "Build", dependsOn: compileWinLibrary) {
description = "Links native sources for the application co-bundle launcher library";
objectDir = file("$buildDir/native/WinLauncher/obj")
linkParams.addAll(WIN.launcherlibrary.linkFlags);
lib = file("$buildDir/native/WinLauncher/packager.dll")
linker = WIN.launcherlibrary.linker
! doLast {
! copy {
from "$buildDir/native/WinLauncher/packager.dll"
into "${buildClassesDir}/com/oracle/tools/packager/windows"
}
! }
! }
task buildWinLauncherSvc(type: CCTask, group: "Build") {
description = "Compiles native sources for the application co-bundle launcher";
matches = "WinLauncherSvc\\.cpp";
params.addAll(WIN.launcher.ccFlags);
output(file("$buildDir/native/WinLauncherSvc"));
source(file("src/main/native/service/win"));
compiler = WIN.launcher.compiler
exe = true;
linkerOptions.addAll(WIN.launcher.linkFlags);
! doLast {
! copy {
from "$buildDir/native/WinLauncherSvc/WinLauncherSvc.exe"
into "${buildClassesDir}/com/oracle/tools/packager/windows"
}
! }
! }
! task compileLauncher(dependsOn: [buildWinLauncher, linkWinLibrary, buildWinLauncherSvc])
} else if (IS_MAC && COMPILE_FXPACKAGER) {
task buildMacLauncher(type: CCTask, group: "Build") {
description = "Compiles native sources for the application co-bundle launcher"
matches = ".*\\.m"
source file("src/main/native/launcher/mac")
--- 2305,2362 ----
output(file("$buildDir/native/WinLauncher"));
source(file("src/main/native/launcher/win"));
compiler = WIN.launcher.compiler
exe = true;
linkerOptions.addAll(WIN.launcher.linkFlags);
! }
!
! task copyWinLauncher(type: Copy, group: "Build", dependsOn: buildWinLauncher) {
from "$buildDir/native/WinLauncher/WinLauncher.exe"
from "$MSVCR"
from "$MSVCP"
into "${buildClassesDir}/com/oracle/tools/packager/windows"
}
!
task compileWinLibrary(type: CCTask, group: "Build") {
description = "Compiles native sources for the application co-bundle launcher library";
matches = ".*\\.cpp"
source(file("src/main/native/library/common"));
params.addAll(WIN.launcherlibrary.ccFlags)
output(file("$buildDir/native/WinLauncher/obj"));
compiler = WIN.launcherlibrary.compiler
}
+
task linkWinLibrary(type: LinkTask, group: "Build", dependsOn: compileWinLibrary) {
description = "Links native sources for the application co-bundle launcher library";
objectDir = file("$buildDir/native/WinLauncher/obj")
linkParams.addAll(WIN.launcherlibrary.linkFlags);
lib = file("$buildDir/native/WinLauncher/packager.dll")
linker = WIN.launcherlibrary.linker
! }
!
! task copyWinLibrary(type: Copy, group: "Build", dependsOn: linkWinLibrary) {
from "$buildDir/native/WinLauncher/packager.dll"
into "${buildClassesDir}/com/oracle/tools/packager/windows"
}
!
task buildWinLauncherSvc(type: CCTask, group: "Build") {
description = "Compiles native sources for the application co-bundle launcher";
matches = "WinLauncherSvc\\.cpp";
params.addAll(WIN.launcher.ccFlags);
output(file("$buildDir/native/WinLauncherSvc"));
source(file("src/main/native/service/win"));
compiler = WIN.launcher.compiler
exe = true;
linkerOptions.addAll(WIN.launcher.linkFlags);
! }
!
! task copyWinLauncherSvc(type: Copy, group: "Build", dependsOn: buildWinLauncherSvc) {
from "$buildDir/native/WinLauncherSvc/WinLauncherSvc.exe"
into "${buildClassesDir}/com/oracle/tools/packager/windows"
}
!
! task compileLauncher(dependsOn: [copyWinLauncher, copyWinLibrary, copyWinLauncherSvc])
} else if (IS_MAC && COMPILE_FXPACKAGER) {
task buildMacLauncher(type: CCTask, group: "Build") {
description = "Compiles native sources for the application co-bundle launcher"
matches = ".*\\.m"
source file("src/main/native/launcher/mac")
*** 2423,2450 ****
// Builds the javapackager executable. For everything other than windows,
// this is simply moving the existing shell script and ensuring it has proper
// permissions. For Windows, this includes compiling the native executable
if (IS_WINDOWS && COMPILE_FXPACKAGER){
! task compileJavaPackager(type: CCTask, group: "Build") {
! description = "Compiles native sources for javapackager.exe"
! matches = ".*\\.cpp"
! params.addAll(WIN.fxpackager.ccFlags)
! compiler = WIN.fxpackager.compiler
! output(file("$buildDir/native/javapackager/obj"))
! source WIN.fxpackager.nativeSource
! doFirst {
! copy {
mkdir "$buildDir/native"
mkdir "$buildDir/native/javapackager"
from file("src/main/native/javapackager/win/javapackager.manifest")
into file("$buildDir/native/javapackager")
filter { line->
line = line.replace("FXVERSION", RELEASE_VERSION_PADDED)
}
}
! }
doLast {
mkdir "$buildDir/native"
exec {
environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT)
commandLine(WIN.fxpackager.rcCompiler)
--- 2420,2446 ----
// Builds the javapackager executable. For everything other than windows,
// this is simply moving the existing shell script and ensuring it has proper
// permissions. For Windows, this includes compiling the native executable
if (IS_WINDOWS && COMPILE_FXPACKAGER){
! task setupCompileJavaPackager(type: Copy, group: "Build") {
mkdir "$buildDir/native"
mkdir "$buildDir/native/javapackager"
from file("src/main/native/javapackager/win/javapackager.manifest")
into file("$buildDir/native/javapackager")
filter { line->
line = line.replace("FXVERSION", RELEASE_VERSION_PADDED)
}
}
!
! task compileJavaPackager(type: CCTask, group: "Build", dependsOn: setupCompileJavaPackager) {
! description = "Compiles native sources for javapackager.exe"
! matches = ".*\\.cpp"
! params.addAll(WIN.fxpackager.ccFlags)
! compiler = WIN.fxpackager.compiler
! output(file("$buildDir/native/javapackager/obj"))
! source WIN.fxpackager.nativeSource
doLast {
mkdir "$buildDir/native"
exec {
environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT)
commandLine(WIN.fxpackager.rcCompiler)
*** 2452,2461 ****
--- 2448,2458 ----
args("/fo$buildDir/native/javapackager/javapackager.res")
args(WIN.fxpackager.rcSource)
}
}
}
+
task linkJavaPackager(type: LinkTask, dependsOn: compileJavaPackager, group: "Build") {
description = "Links javapackager.exe"
objectDir = file("$buildDir/native/javapackager/obj")
linkParams.addAll(WIN.fxpackager.linkFlags);
lib = file("$buildDir/native/javapackager/javapackager.exe")
*** 2465,2493 ****
commandLine("$MC", "-manifest",
"$buildDir/native/javapackager/javapackager.manifest",
"-outputresource:$buildDir/native/javapackager/javapackager.exe")
environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT)
})
- copy {
- from file("$buildDir/native/javapackager/javapackager.exe")
- into file("$buildDir/javapackager")
}
}
}
! task buildJavaPackager(dependsOn: [compileJavaPackager, linkJavaPackager])
} else {
! task buildJavaPackager(group: "Build") {
enabled = COMPILE_FXPACKAGER
- doLast {
- copy {
from "src/main/native/javapackager/shell"
into "$buildDir/javapackager"
fileMode = 0755
}
}
- }
- }
assemble.dependsOn compileLauncher;
assemble.dependsOn buildJavaPackager
classes << {
--- 2462,2488 ----
commandLine("$MC", "-manifest",
"$buildDir/native/javapackager/javapackager.manifest",
"-outputresource:$buildDir/native/javapackager/javapackager.exe")
environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT)
})
}
}
+
+ task copyJavaPackager(type: Copy, group: "Build", dependsOn: linkJavaPackager) {
+ from file("$buildDir/native/javapackager/javapackager.exe")
+ into file("$buildDir/javapackager")
}
!
! task buildJavaPackager(dependsOn: [copyJavaPackager])
} else {
! task buildJavaPackager(type: Copy, group: "Build") {
enabled = COMPILE_FXPACKAGER
from "src/main/native/javapackager/shell"
into "$buildDir/javapackager"
fileMode = 0755
}
}
assemble.dependsOn compileLauncher;
assemble.dependsOn buildJavaPackager
classes << {
*** 2507,2548 ****
includeEmptyDirs = false
}
}
}
! task packagerFakeJar(type: Jar) {
! dependsOn compileTestJava
! from compileTestJava.destinationDir
! include "hello/**"
!
! destinationDir project.file("build/tmp/tests/appResources")
! archiveName "mainApp.jar"
!
! manifest {
! attributes(
! "Main-Class": "hello.HelloRectangle",
! "Custom-Attribute": " Is it stripped?"
! )
! }
!
! doFirst {
! copy {
from "$projectDir/src/main/resources/com/oracle/tools/packager/linux/javalogo_white_48.png"
from "$projectDir/src/main/resources/com/oracle/tools/packager/mac/GenericAppHiDPI.icns"
from "$projectDir/src/main/resources/com/oracle/tools/packager/windows/javalogo_white_48.ico"
from "$projectDir/src/test/resources/hello/java-logo2.gif"
from "$projectDir/src/test/resources/hello/small.ico"
from "$projectDir/src/test/resources/hello/test.icns"
from "$projectDir/src/test/resources/hello/LICENSE-RTF.rtf"
from "$projectDir/../../LICENSE"
into project.file("$projectDir/build/tmp/tests/appResources")
}
! copy {
from "$projectDir/../../LICENSE"
into project.file("$projectDir/build/tmp/tests/appResources")
rename '(.*)LICENSE', '$1LICENSE2'
}
}
}
task packagerFXPackagedJar(type: Jar) {
dependsOn packagerFakeJar
--- 2502,2542 ----
includeEmptyDirs = false
}
}
}
! task setupPackagerFakeJar(type: Copy) {
from "$projectDir/src/main/resources/com/oracle/tools/packager/linux/javalogo_white_48.png"
from "$projectDir/src/main/resources/com/oracle/tools/packager/mac/GenericAppHiDPI.icns"
from "$projectDir/src/main/resources/com/oracle/tools/packager/windows/javalogo_white_48.ico"
from "$projectDir/src/test/resources/hello/java-logo2.gif"
from "$projectDir/src/test/resources/hello/small.ico"
from "$projectDir/src/test/resources/hello/test.icns"
from "$projectDir/src/test/resources/hello/LICENSE-RTF.rtf"
from "$projectDir/../../LICENSE"
into project.file("$projectDir/build/tmp/tests/appResources")
}
!
! task setupPackagerFakeJarLicense(type: Copy) {
from "$projectDir/../../LICENSE"
into project.file("$projectDir/build/tmp/tests/appResources")
rename '(.*)LICENSE', '$1LICENSE2'
}
+
+ task packagerFakeJar(type: Jar, dependsOn: [setupPackagerFakeJar, setupPackagerFakeJarLicense]) {
+ dependsOn compileTestJava
+ from compileTestJava.destinationDir
+ include "hello/**"
+
+ destinationDir project.file("build/tmp/tests/appResources")
+ archiveName "mainApp.jar"
+
+ manifest {
+ attributes(
+ "Main-Class": "hello.HelloRectangle",
+ "Custom-Attribute": " Is it stripped?"
+ )
}
}
task packagerFXPackagedJar(type: Jar) {
dependsOn packagerFakeJar
*** 2597,2619 ****
'-all',
packagerDevOpts
].flatten()
}
! task copyRedistributableFiles() {
def projectDir = "tools/java/redistributable-files"
def sourceDir = "src/$projectDir"
def buildDir = "build/$projectDir"
def resourceDir = "${moduleDir}/jdk/packager/internal/resources/tools/redistributable-files"
- doLast {
- copy {
from "$sourceDir/redistributable.list"
into project.file("$resourceDir")
}
- }
- }
processResources.dependsOn copyRedistributableFiles
task copyDTtoPackager(type: Copy) {
def destDt = "${moduleDir}/com/sun/javafx/tools/resource"
--- 2591,2609 ----
'-all',
packagerDevOpts
].flatten()
}
! task copyRedistributableFiles(type: Copy) {
def projectDir = "tools/java/redistributable-files"
def sourceDir = "src/$projectDir"
def buildDir = "build/$projectDir"
def resourceDir = "${moduleDir}/jdk/packager/internal/resources/tools/redistributable-files"
from "$sourceDir/redistributable.list"
into project.file("$resourceDir")
}
processResources.dependsOn copyRedistributableFiles
task copyDTtoPackager(type: Copy) {
def destDt = "${moduleDir}/com/sun/javafx/tools/resource"
*** 3089,3110 ****
commandLine("perl", "Tools/Scripts/build-webkit",
"--java", "--icu-unicode", targetCpuBitDepthSwitch,
"--cmakeargs=${cmakeArgs}")
}
def library = rootProject.ext[t.upper].library
- copy {
- from "$webkitOutputDir/$webkitConfig/lib/${library('jfxwebkit')}"
- into "$buildDir/libs/${t.name}"
- }
- copy {
from "$webkitOutputDir/$webkitConfig/lib/${library('DumpRenderTreeJava')}"
into "$buildDir/test/${t.name}"
}
! }
}
if (IS_WINDOWS && t.name == "win") {
def webkitProperties = project.rootProject.ext[t.upper].webkit
def rcTask = project.task("rc${t.capital}", type: CompileResourceTask) {
--- 3079,3104 ----
commandLine("perl", "Tools/Scripts/build-webkit",
"--java", "--icu-unicode", targetCpuBitDepthSwitch,
"--cmakeargs=${cmakeArgs}")
}
+ }
+ }
+ def copyDumpTreeNativeTask = task("copyDumpTreeNative${t.capital}", type: Copy,
+ dependsOn: [ compileNativeTask]) {
def library = rootProject.ext[t.upper].library
from "$webkitOutputDir/$webkitConfig/lib/${library('DumpRenderTreeJava')}"
into "$buildDir/test/${t.name}"
}
! def copyNativeTask = task("copyNative${t.capital}", type: Copy,
! dependsOn: [compileNativeTask, , copyDumpTreeNativeTask]) {
! enabled = (IS_COMPILE_WEBKIT)
! def library = rootProject.ext[t.upper].library
! from "$webkitOutputDir/$webkitConfig/lib/${library('jfxwebkit')}"
! into "$buildDir/libs/${t.name}"
}
if (IS_WINDOWS && t.name == "win") {
def webkitProperties = project.rootProject.ext[t.upper].webkit
def rcTask = project.task("rc${t.capital}", type: CompileResourceTask) {
*** 3116,3143 ****
output(file("$webkitOutputDir/$webkitConfig/WebCore/obj"))
}
compileNativeTask.dependsOn rcTask
}
! def copyGeneratedTask = task("copyGenerated${t.capital}", dependsOn: [compileJava, compileNativeTask]) {
enabled = (IS_COMPILE_WEBKIT)
-
- outputs.dir "${gensrcDir}"
-
- doLast{
- copy {
from "$projectDir/src/main/java-wrappers/com/sun/webkit/dom/EventListenerImpl.java"
into "${gensrcDir}/com/sun/webkit/dom"
}
! copy {
from "$webkitOutputDir/$webkitConfig/DerivedSources/WebCore/nativeJava/java"
into "${gensrcDir}"
}
- }
- }
! def compileGeneratedTask = task("compileGenerated${t.capital}", type: JavaCompile, dependsOn: copyGeneratedTask) {
destinationDir = file("$buildDir/classes/main")
classpath = configurations.compile
source = project.sourceSets.main.java.srcDirs
options.compilerArgs.addAll([
'-implicit:none',
--- 3110,3135 ----
output(file("$webkitOutputDir/$webkitConfig/WebCore/obj"))
}
compileNativeTask.dependsOn rcTask
}
! def copyGeneratedDomTask = task("copyGeneratedDom${t.capital}", type: Copy,
! dependsOn: [compileJava, compileNativeTask, copyNativeTask]) {
enabled = (IS_COMPILE_WEBKIT)
from "$projectDir/src/main/java-wrappers/com/sun/webkit/dom/EventListenerImpl.java"
into "${gensrcDir}/com/sun/webkit/dom"
}
!
! def copyGeneratedTask = task("copyGenerated${t.capital}", type: Copy,
! dependsOn: [compileJava, compileNativeTask, copyNativeTask, copyGeneratedDomTask]) {
! enabled = (IS_COMPILE_WEBKIT)
from "$webkitOutputDir/$webkitConfig/DerivedSources/WebCore/nativeJava/java"
into "${gensrcDir}"
}
! def compileGeneratedTask = task("compileGenerated${t.capital}", type: JavaCompile,
! dependsOn: [copyGeneratedDomTask, copyGeneratedTask]) {
destinationDir = file("$buildDir/classes/main")
classpath = configurations.compile
source = project.sourceSets.main.java.srcDirs
options.compilerArgs.addAll([
'-implicit:none',
*** 3331,3340 ****
--- 3323,3334 ----
project.jar.enabled = false
// and redirect the resources into the module
project.processResources.destinationDir = project.moduleDir
}
+ // we use a custom javadoc command
+ project.javadoc.enabled = false
// Add in the -Xlint options
if (IS_LINT) {
LINT.split("[, ]").each { s ->
compile.options.compilerArgs += "-Xlint:$s"
*** 3444,3454 ****
mspFile << "\n"
}
}
task javadoc(type: Javadoc, dependsOn: createMSPfile) {
- enabled = IS_BUILD_JAVADOC
group = "Basic"
description = "Generates the JavaDoc for all the public API"
executable = JAVADOC
def projectsToDocument = [
project(":base"), project(":graphics"), project(":controls"), project(":media"),
--- 3438,3447 ----
*** 3529,3562 ****
dependsOn(updateCacheIfNeeded)
}
// TODO: consider moving the "public-sdk" portion of this task here
task publicExports() {
! doFirst {
! if (BUILD_CLOSED && !IS_BUILD_JAVADOC) {
! fail("publicExports task requires: -PBUILD_JAVADOC=true")
! }
! }
! dependsOn(sdk)
}
task perf() {
! dependsOn(sdk,apps)
doLast {
if (!BUILD_CLOSED) {
println "perf task is only run for a closed build"
}
}
}
task zips() {
! doFirst {
! if (BUILD_CLOSED && !IS_BUILD_JAVADOC) {
! fail("zips task requires: -PBUILD_JAVADOC=true")
! }
! }
! dependsOn(sdk,publicExports,apps,perf)
}
task all() {
dependsOn(sdk,publicExports,apps,perf,zips)
}
--- 3522,3545 ----
dependsOn(updateCacheIfNeeded)
}
// TODO: consider moving the "public-sdk" portion of this task here
task publicExports() {
! dependsOn(sdk, apps, javadoc)
}
task perf() {
! dependsOn(sdk, apps)
doLast {
if (!BUILD_CLOSED) {
println "perf task is only run for a closed build"
}
}
}
task zips() {
! dependsOn(sdk, javadoc, apps, publicExports, perf)
}
task all() {
dependsOn(sdk,publicExports,apps,perf,zips)
}
*** 3585,3612 ****
archiveName = "${project(":swt").buildDir}/libs/javafx-swt.jar";
includeEmptyDirs = false
from("${project(":swt").buildDir}/classes/main");
include("**/javafx/embed/swt/**")
! // FIXME: should only need to depend on the :swt:assemble task
! dependsOn(subprojects.collect { project -> project.getTasksByName("assemble", true)});
}
// FIXME: do we really need the index task for this modular jar?
def javafxSwtIndexTask = task("javafxSwtIndex$t.capital") {
//the following is a workaround for the lack of indexing in gradle 1.4 through 1.7
dependsOn(javafxSwtTask)
doLast() {
ant.jar (update: true, index: true, destfile: javafxSwtTask.archiveName)
}
}
def sdkTask = task("sdk$t.capital") {
group = "Basic"
dependsOn(javafxSwtIndexTask)
- dependsOn(javadoc)
}
sdk.dependsOn(sdkTask)
}
--- 3568,3603 ----
archiveName = "${project(":swt").buildDir}/libs/javafx-swt.jar";
includeEmptyDirs = false
from("${project(":swt").buildDir}/classes/main");
include("**/javafx/embed/swt/**")
! dependsOn(
! // note: assemble and classes are not enough for DidWork
! project(":swt").compileJava,
! project(":swt").processResources,
! )
! onlyIf {
! dependsOnTaskDidWork()
! }
}
// FIXME: do we really need the index task for this modular jar?
def javafxSwtIndexTask = task("javafxSwtIndex$t.capital") {
//the following is a workaround for the lack of indexing in gradle 1.4 through 1.7
dependsOn(javafxSwtTask)
+ onlyIf {
+ dependsOnTaskDidWork()
+ }
doLast() {
ant.jar (update: true, index: true, destfile: javafxSwtTask.archiveName)
}
}
def sdkTask = task("sdk$t.capital") {
group = "Basic"
dependsOn(javafxSwtIndexTask)
}
sdk.dependsOn(sdkTask)
}
*** 3694,3781 ****
from "${modularSdkDir}"
}
buildModules.dependsOn(zipTask)
def buildModulesTask = task("buildModules$t.capital", group: "Build") {
! doLast {
! moduleProjList.each { project ->
!
! // Copy classes, bin, and lib directories
!
! def moduleName = project.ext.moduleName
! def buildDir = project.buildDir
!
! def srcClassesDir = "${buildDir}/${platformPrefix}module-classes"
! def dstClassesDir = "${modulesDir}/${moduleName}"
! copy {
! from srcClassesDir
! into dstClassesDir
! exclude("module-info.class")
! }
!
! def srcCmdsDir = "${buildDir}/${platformPrefix}module-bin"
! def dstCmdsDir = "${modulesCmdsDir}/${moduleName}"
! copy {
! from srcCmdsDir
! into dstCmdsDir
}
! def srcLibsDir = "${buildDir}/${platformPrefix}module-lib"
! def dstLibsDir = "${modulesLibsDir}/${moduleName}"
! copy {
! from srcLibsDir
! into dstLibsDir
! }
! // Copy module sources
! // FIXME: javafx.swt sources?
! def copySources = project.hasProperty("includeSources") && project.includeSources
! copy {
! if (copySources) {
! from "${project.projectDir}/src/main/java"
! if (project.name.equals("base")) {
! from "${project.projectDir}/build/gensrc/java"
! }
! if (project.name.equals("web")) {
! from "${project.projectDir}/src/main/java-wrappers"
! }
! } else {
! from "${project.projectDir}/src/main/java/module-info.java"
! }
! into "${modulesSrcDir}/${moduleName}"
! include "**/*.java"
! if (project.hasProperty("sourceFilter")) {
! filter(project.sourceFilter)
}
}
- // Copy .html and other files needed for doc bundles
- if (copySources) {
- copy {
- from "${project.projectDir}/src/main/java"
- from "${project.projectDir}/src/main/docs"
- into "${modulesSrcDir}/${moduleName}"
- exclude "**/*.java"
}
}
! // Copy make/build.properties
! def srcMakeDir = "${project.projectDir}/make"
! def dstMakeDir = "${modulesMakeDir}/${moduleName}"
! copy {
! from srcMakeDir
! into dstMakeDir
! }
}
! // Copy dependencies/*/module-info.java.extra
! // merging as needed, removing duplicates
! // only lines with 'exports' will be copied
! def dependencyRoots = moduleDependencies
! if (rootProject.hasProperty("closedModuleDepedencies")) {
! dependencyRoots = [dependencyRoots, closedModuleDepedencies].flatten()
}
Map extras = [:]
dependencyRoots.each { root ->
FileTree ft = fileTree(root).include('**/*.extra')
ft.each() { e->
--- 3685,3739 ----
from "${modularSdkDir}"
}
buildModules.dependsOn(zipTask)
def buildModulesTask = task("buildModules$t.capital", group: "Build") {
! // Copy dependencies/*/module-info.java.extra
! // merging as needed, removing duplicates
! // only lines with 'exports' will be copied
! def dependencyRoots = moduleDependencies
! if (rootProject.hasProperty("closedModuleDepedencies")) {
! dependencyRoots = [dependencyRoots, closedModuleDepedencies].flatten()
}
! // Create the inputs/outputs list first to support UP-TO-DATE
! ArrayList outputNames = new ArrayList()
! dependencyRoots.each { root ->
! FileTree ft = fileTree(root).include('**/*.extra')
! ft.each() { e->
! inputs.file(e)
! String usename = e.path
! String filePath = e.getAbsolutePath()
! String folderPath = root.getAbsolutePath()
! if (filePath.startsWith(folderPath)) {
! usename = filePath.substring(folderPath.length() + 1);
}
+ if (! outputNames.contains(usename) ) {
+ outputNames.add(usename)
}
}
}
! outputNames.each() { e->
! File f = new File(modulesSrcDir, e)
! outputs.file(f)
}
! def outputPolicyDir = "${modulesConfDir}/java.base/security"
! def outputPolicyFile = file("${outputPolicyDir}/java.policy.extra")
!
! outputs.file(outputPolicyFile)
! moduleProjList.each { project ->
! def policyDir = "${project.projectDir}/src/main/conf/security"
! def policyFile = file("${policyDir}/java.policy")
! if (policyFile.exists()) {
! inputs.file(policyFile)
! }
}
+ doLast {
Map extras = [:]
dependencyRoots.each { root ->
FileTree ft = fileTree(root).include('**/*.extra')
ft.each() { e->
*** 3817,3828 ****
}
}
// concatecate java.policy files into a single file
//
- def outputPolicyDir = "${modulesConfDir}/java.base/security"
- def outputPolicyFile = file("${outputPolicyDir}/java.policy.extra")
mkdir outputPolicyDir
outputPolicyFile.delete()
moduleProjList.each { project ->
def policyDir = "${project.projectDir}/src/main/conf/security"
def policyFile = file("${policyDir}/java.policy")
--- 3775,3784 ----
*** 3831,3840 ****
--- 3787,3872 ----
}
}
zipTask.dependsOn(buildModulesTask);
buildModules.dependsOn(buildModulesTask)
+ moduleProjList.each { project ->
+ // Copy classes, bin, and lib directories
+
+ def moduleName = project.ext.moduleName
+ def buildDir = project.buildDir
+
+ def srcClassesDir = "${buildDir}/${platformPrefix}module-classes"
+ def dstClassesDir = "${modulesDir}/${moduleName}"
+ def copyClassFilesTask = project.task("copyClassFiles$t.capital", type: Copy, dependsOn: project.assemble) {
+ from srcClassesDir
+ into dstClassesDir
+ exclude("module-info.class")
+ }
+
+ def srcCmdsDir = "${buildDir}/${platformPrefix}module-bin"
+ def dstCmdsDir = "${modulesCmdsDir}/${moduleName}"
+ def copyBinFilesTask = project.task("copyBinFiles$t.capital", type: Copy, dependsOn: copyClassFilesTask) {
+ from srcCmdsDir
+ into dstCmdsDir
+ }
+
+ def srcLibsDir = "${buildDir}/${platformPrefix}module-lib"
+ def dstLibsDir = "${modulesLibsDir}/${moduleName}"
+ def copyLibFilesTask = project.task("copyLibFiles$t.capital", type: Copy, dependsOn: copyBinFilesTask) {
+ from srcLibsDir
+ into dstLibsDir
+ }
+
+ // Copy module sources
+ // FIXME: javafx.swt sources?
+ def copySources = project.hasProperty("includeSources") && project.includeSources
+ def copySourceFilesTask = project.task("copySourceFiles$t.capital", type: Copy, dependsOn: copyLibFilesTask) {
+ if (copySources) {
+ from "${project.projectDir}/src/main/java"
+ if (project.name.equals("base")) {
+ from "${project.projectDir}/build/gensrc/java"
+ }
+ if (project.name.equals("web")) {
+ from "${project.projectDir}/src/main/java-wrappers"
+ }
+ } else {
+ from "${project.projectDir}/src/main/java/module-info.java"
+ }
+ into "${modulesSrcDir}/${moduleName}"
+ include "**/*.java"
+ if (project.hasProperty("sourceFilter")) {
+ filter(project.sourceFilter)
+ }
+ }
+
+ // Copy .html and other files needed for doc bundles
+ def copyDocFiles = project.task("copyDocFiles$t.capital", type: Copy, dependsOn: copySourceFilesTask) {
+ if (copySources) {
+ from "${project.projectDir}/src/main/java"
+ from "${project.projectDir}/src/main/docs"
+ into "${modulesSrcDir}/${moduleName}"
+ exclude "**/*.java"
+ }
+ }
+
+ // Copy make/build.properties
+ def srcMakeDir = "${project.projectDir}/make"
+ def dstMakeDir = "${modulesMakeDir}/${moduleName}"
+ def copyBuildPropertiesTask = project.task("copyBuildProperties$t.capital", type: Copy, dependsOn: copyDocFiles) {
+ from srcMakeDir
+ into dstMakeDir
+ }
+
+ buildModules.dependsOn(
+ copyClassFilesTask,
+ copyLibFilesTask,
+ copySourceFilesTask,
+ copyDocFiles,
+ copyBuildPropertiesTask)
+ }
+
def buildRunArgsTask = task("buildRunArgs$t.capital",
group: "Build", dependsOn: buildModulesTask) {
outputs.file(runArgsFile);
doLast() {
List<String>libpath = []
*** 3855,3873 ****
def isWindows = IS_WINDOWS && t.name == "win";
def isMac = IS_MAC && t.name == "mac";
// Create layout for modular classes
moduleProjList.each { project ->
! def buildModuleClassesTask = project.task("buildModule$t.capital", group: "Build") {
dependsOn(project.assemble)
def buildDir = project.buildDir
def sourceBuildDirs = [
"${buildDir}/classes/main/${project.moduleName}",
]
! doLast {
def moduleClassesDir = "$buildDir/${platformPrefix}module-classes"
- copy {
includeEmptyDirs = false
sourceBuildDirs.each { d ->
from d
}
into moduleClassesDir
--- 3887,3904 ----
def isWindows = IS_WINDOWS && t.name == "win";
def isMac = IS_MAC && t.name == "mac";
// Create layout for modular classes
moduleProjList.each { project ->
! def buildModuleClassesTask = project.task("buildModule$t.capital", group: "Build", type: Copy) {
dependsOn(project.assemble)
def buildDir = project.buildDir
def sourceBuildDirs = [
"${buildDir}/classes/main/${project.moduleName}",
]
!
def moduleClassesDir = "$buildDir/${platformPrefix}module-classes"
includeEmptyDirs = false
sourceBuildDirs.each { d ->
from d
}
into moduleClassesDir
*** 3959,4007 ****
from ("${webbld}/classes/main",
"${webbld}resources/main")
}
*/
}
- }
- }
buildModulesTask.dependsOn(buildModuleClassesTask)
}
-
def buildModuleLibsTask = task("buildModuleLibs$t.capital") {
group = "Basic"
def graphicsProject = project(":graphics");
- dependsOn(graphicsProject.assemble)
def mediaProject = project(":media");
- dependsOn(mediaProject.assemble)
def webProject = project(":web");
dependsOn(webProject.assemble)
def swtProject = project(":swt");
- if (COMPILE_SWT) {
- def javafxSwtIndexTask = tasks.getByName("javafxSwtIndex${t.capital}");
- dependsOn(javafxSwtIndexTask)
- }
def packagerProject = project(":fxpackager");
! //dependsOn(packagerProject.assemble)
dependsOn(packagerProject.jar)
dependsOn(project(":fxpackagerservices").jar)
- doLast {
-
def library = targetProperties.library
! // javafx.base (lib/javafx.properties)
- def baseProject = project(":base");
def moduleLibDir = "${baseProject.buildDir}/${platformPrefix}module-lib"
- mkdir moduleLibDir
final File javafxProperties = file("${moduleLibDir}/javafx.properties")
javafxProperties.delete()
javafxProperties << "javafx.version=$RELEASE_VERSION_SHORT";
javafxProperties << "\n"
javafxProperties << "javafx.runtime.version=$RELEASE_VERSION_LONG";
javafxProperties << "\n"
--- 3990,4038 ----
from ("${webbld}/classes/main",
"${webbld}resources/main")
}
*/
}
buildModulesTask.dependsOn(buildModuleClassesTask)
}
def buildModuleLibsTask = task("buildModuleLibs$t.capital") {
group = "Basic"
+ def baseProject = project(":base");
+
def graphicsProject = project(":graphics");
def mediaProject = project(":media");
def webProject = project(":web");
dependsOn(webProject.assemble)
def swtProject = project(":swt");
def packagerProject = project(":fxpackager");
! dependsOn(packagerProject.assemble)
dependsOn(packagerProject.jar)
dependsOn(project(":fxpackagerservices").jar)
def library = targetProperties.library
! def useLipo = targetProperties.containsKey('useLipo') ? targetProperties.useLipo : false
! def modLibDest = targetProperties.modLibDest
! def moduleNativeDirName = "${platformPrefix}module-$modLibDest"
!
! def buildModuleBaseTask = task("buildModuleBase$t.capital", dependsOn: baseProject.assemble) {
! group = "Basic"
! description = "creates javafx.base property files"
def moduleLibDir = "${baseProject.buildDir}/${platformPrefix}module-lib"
final File javafxProperties = file("${moduleLibDir}/javafx.properties")
+ outputs.file(javafxProperties)
+
+ doLast {
+ mkdir moduleLibDir
+
javafxProperties.delete()
javafxProperties << "javafx.version=$RELEASE_VERSION_SHORT";
javafxProperties << "\n"
javafxProperties << "javafx.runtime.version=$RELEASE_VERSION_LONG";
javafxProperties << "\n"
*** 4015,4037 ****
}
// Embedded builds define this file as well
if (targetProperties.containsKey("javafxPlatformProperties")) {
final File javafxPlatformProperties = file("${moduleLibDir}/javafx.platform.properties")
javafxPlatformProperties.delete()
javafxPlatformProperties << targetProperties.javafxPlatformProperties
javafxPlatformProperties << "\n"
}
- def useLipo = targetProperties.containsKey('useLipo') ? targetProperties.useLipo : false
- def modLibDest = targetProperties.modLibDest
- def moduleNativeDirName = "${platformPrefix}module-$modLibDest"
-
- // javafx.graphics native libraries
-
- copy {
into "${graphicsProject.buildDir}/${moduleNativeDirName}"
from("${graphicsProject.buildDir}/libs/jsl-decora/${t.name}/${library(targetProperties.decora.lib)}")
def libs = ['font', 'prism', 'prismSW', 'glass', 'iio']
if (IS_INCLUDE_ES2) {
--- 4046,4068 ----
}
// Embedded builds define this file as well
if (targetProperties.containsKey("javafxPlatformProperties")) {
final File javafxPlatformProperties = file("${moduleLibDir}/javafx.platform.properties")
+ outputs.file(javafxPlatformProperties)
+
javafxPlatformProperties.delete()
javafxPlatformProperties << targetProperties.javafxPlatformProperties
javafxPlatformProperties << "\n"
}
+ }
+ }
+ def buildModuleGraphicsTask = task("buildModuleGraphics$t.capital", type: Copy, dependsOn: graphicsProject.assemble) {
+ group = "Basic"
+ description = "copies javafx.graphics native libraries"
into "${graphicsProject.buildDir}/${moduleNativeDirName}"
from("${graphicsProject.buildDir}/libs/jsl-decora/${t.name}/${library(targetProperties.decora.lib)}")
def libs = ['font', 'prism', 'prismSW', 'glass', 'iio']
if (IS_INCLUDE_ES2) {
*** 4050,4063 ****
if (IS_WINDOWS) {
from ("${graphicsProject.buildDir}/libs/prismD3D/${t.name}/${library(targetProperties.prismD3D.lib)}");
}
}
- // javafx.media native libraries
-
- copy {
into "${mediaProject.buildDir}/${moduleNativeDirName}"
def mediaBuildType = project(":media").ext.buildType
if (IS_COMPILE_MEDIA) {
[ "fxplugins", "gstreamer-lite", "jfxmedia" ].each { name ->
--- 4081,4094 ----
if (IS_WINDOWS) {
from ("${graphicsProject.buildDir}/libs/prismD3D/${t.name}/${library(targetProperties.prismD3D.lib)}");
}
}
+ def buildModuleMediaTask = task("buildModuleMedia$t.capital", type: Copy, dependsOn: mediaProject.assemble) {
+ group = "Basic"
+ description = "copies javafx.media native libraries"
into "${mediaProject.buildDir}/${moduleNativeDirName}"
def mediaBuildType = project(":media").ext.buildType
if (IS_COMPILE_MEDIA) {
[ "fxplugins", "gstreamer-lite", "jfxmedia" ].each { name ->
*** 4087,4100 ****
from ("$MEDIA_STUB/${library("glib-lite")}")
}
}
}
- // javafx.web native libraries
-
- copy {
into "${webProject.buildDir}/${moduleNativeDirName}"
if (IS_COMPILE_WEBKIT) {
from ("${webProject.buildDir}/libs/${t.name}/${library('jfxwebkit')}")
} else {
--- 4118,4131 ----
from ("$MEDIA_STUB/${library("glib-lite")}")
}
}
}
+ def buildModuleWeb = task("buildModuleWeb$t.capital", type: Copy, dependsOn: webProject.assemble) {
+ group = "Basic"
+ description = "copies javafx.web native libraries"
into "${webProject.buildDir}/${moduleNativeDirName}"
if (IS_COMPILE_WEBKIT) {
from ("${webProject.buildDir}/libs/${t.name}/${library('jfxwebkit')}")
} else {
*** 4102,4139 ****
from ("$WEB_STUB/${library('jfxwebkit')}")
}
}
}
// FIXME: the following is a hack to workaround the fact that there
// is no way to deliver javafx-swt.jar other than in one of the
// existing runtime modules.
if (COMPILE_SWT) {
// Copy javafx-swt.jar to the javafx-graphics module lib dir
- copy {
from "${swtProject.buildDir}/libs/javafx-swt.jar"
into "${graphicsProject.buildDir}/${platformPrefix}module-lib"
}
- }
! // javafx.packager libraries and executable
- // Copy over the javapackager libs
- copy {
from "${packagerProject.buildDir}/libs"
into "${packagerProject.buildDir}/${platformPrefix}module-lib"
}
// Copy over the javapackager executable
! if (t.name == "win" || t.name == "linux" || t.name == "mac") {
! copy {
from "${packagerProject.buildDir}/javapackager"
into "${packagerProject.buildDir}/${platformPrefix}module-bin"
}
- }
! }
}
buildModulesTask.dependsOn(buildModuleLibsTask)
Task testArgFiles = task("createTestArgfiles${t.capital}") {
--- 4133,4195 ----
from ("$WEB_STUB/${library('jfxwebkit')}")
}
}
}
+ def buildModuleSWT = task("buildModuleSWT$t.capital", type: Copy) {
+ group = "Basic"
+ description = "copies SWT JAR"
+
// FIXME: the following is a hack to workaround the fact that there
// is no way to deliver javafx-swt.jar other than in one of the
// existing runtime modules.
+
+ dependsOn(buildModuleGraphicsTask) // we copy to the graphics module
+
if (COMPILE_SWT) {
+ def javafxSwtIndexTask = tasks.getByName("javafxSwtIndex${t.capital}");
+ dependsOn(javafxSwtIndexTask)
+ //enabled = COMPILE_SWT
+ }
+
// Copy javafx-swt.jar to the javafx-graphics module lib dir
from "${swtProject.buildDir}/libs/javafx-swt.jar"
into "${graphicsProject.buildDir}/${platformPrefix}module-lib"
}
! def buildModulePackagerLibs = task("buildModulePackagerLibs$t.capital",
! type: Copy,
! dependsOn: [ packagerProject.assemble, project(":fxpackagerservices").assemble ]) {
! group = "Basic"
! description = "copies jdk.packager libraries"
from "${packagerProject.buildDir}/libs"
into "${packagerProject.buildDir}/${platformPrefix}module-lib"
}
+ def buildModulePackagerExes = task("buildModulePackagerExe$t.capital",
+ type: Copy,
+ dependsOn: [ packagerProject.assemble, project(":fxpackagerservices").assemble ]) {
+ group = "Basic"
+ description = "copies jdk.packager executable"
+
// Copy over the javapackager executable
! enabled = (t.name == "win" || t.name == "linux" || t.name == "mac")
!
from "${packagerProject.buildDir}/javapackager"
into "${packagerProject.buildDir}/${platformPrefix}module-bin"
}
! dependsOn(
! buildModuleBaseTask,
! buildModuleGraphicsTask,
! buildModuleMediaTask,
! buildModuleWeb,
! buildModuleSWT,
! buildModulePackagerLibs,
! buildModulePackagerExes
! )
}
buildModulesTask.dependsOn(buildModuleLibsTask)
Task testArgFiles = task("createTestArgfiles${t.capital}") {
< prev index next >