< 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 >