449 }
450
451 // The following properties are set based on properties defined in
452 // build.properties. The release version and suffix should be updated
453 // in that file.
454 def relVer = 0
455 if (jfxReleasePatchVersion == "0") {
456 if (jfxReleaseSecurityVersion == "0") {
457 if (jfxReleaseMinorVersion == "0") {
458 relVer = "${jfxReleaseMajorVersion}"
459 } else {
460 relVer = "${jfxReleaseMajorVersion}.${jfxReleaseMinorVersion}"
461 }
462 } else {
463 relVer = "${jfxReleaseMajorVersion}.${jfxReleaseMinorVersion}.${jfxReleaseSecurityVersion}"
464 }
465 } else {
466 relVer = "${jfxReleaseMajorVersion}.${jfxReleaseMinorVersion}.${jfxReleaseSecurityVersion}.${jfxReleasePatchVersion}"
467 }
468 defineProperty("RELEASE_VERSION", relVer)
469 def buildDate = new java.util.Date()
470 def buildTimestamp = new java.text.SimpleDateFormat("yyyy-MM-dd-HHmmss").format(buildDate)
471 defineProperty("BUILD_TIMESTAMP", buildTimestamp)
472 def relSuffix = ""
473 def relOpt = ""
474 if (HUDSON_JOB_NAME == "not_hudson") {
475 relSuffix = "-internal"
476 relOpt = "-${buildTimestamp}"
477 } else {
478 relSuffix = jfxReleaseSuffix
479 }
480 defineProperty("RELEASE_SUFFIX", relSuffix)
481 defineProperty("RELEASE_VERSION_SHORT", "${RELEASE_VERSION}${RELEASE_SUFFIX}")
482 defineProperty("RELEASE_VERSION_LONG", "${RELEASE_VERSION_SHORT}+${PROMOTED_BUILD_NUMBER}${relOpt}")
483
484 // Check whether the COMPILE_TARGETS property has been specified (if so, it was done by
485 // the user and not by this script). If it has not been defined then default
486 // to building the normal desktop build for this machine
487 project.ext.set("defaultHostTarget", IS_MAC ? "mac" : IS_WINDOWS ? "win" : IS_LINUX ? "linux" : "");
488 defineProperty("COMPILE_TARGETS", "$defaultHostTarget")
849 logger.quiet("java.runtime.version: ${javaRuntimeVersion}")
850 logger.quiet("java version: ${javaVersion}")
851 logger.quiet("java build number: ${javaBuildNumber}")
852 logger.quiet("jdk.runtime.version: ${jdkRuntimeVersion}")
853 logger.quiet("jdk version: ${jdkVersion}")
854 logger.quiet("jdk build number: ${jdkBuildNumber}")
855 logger.quiet("minimum jdk version: ${jfxBuildJdkVersion}")
856 logger.quiet("minimum jdk build number: ${jfxBuildJdkBuildnumMin}")
857 logger.quiet("CONF: $CONF")
858 logger.quiet("NUM_COMPILE_THREADS: $NUM_COMPILE_THREADS")
859 logger.quiet("COMPILE_TARGETS: $COMPILE_TARGETS")
860 logger.quiet("COMPILE_FLAGS_FILES: $COMPILE_FLAGS_FILES")
861 logger.quiet("HUDSON_JOB_NAME: $HUDSON_JOB_NAME")
862 logger.quiet("HUDSON_BUILD_NUMBER: $HUDSON_BUILD_NUMBER")
863 logger.quiet("PROMOTED_BUILD_NUMBER: $PROMOTED_BUILD_NUMBER")
864 logger.quiet("PRODUCT_NAME: $PRODUCT_NAME")
865 logger.quiet("RELEASE_VERSION: $RELEASE_VERSION")
866 logger.quiet("RELEASE_SUFFIX: $RELEASE_SUFFIX")
867 logger.quiet("RELEASE_VERSION_SHORT: $RELEASE_VERSION_SHORT")
868 logger.quiet("RELEASE_VERSION_LONG: $RELEASE_VERSION_LONG")
869
870 if (UPDATE_STUB_CACHE) {
871 logger.quiet("UPDATE_STUB_CACHE: $UPDATE_STUB_CACHE")
872 }
873
874 /******************************************************************************
875 * *
876 * Definition of Native Code Compilation Tasks *
877 * *
878 * - JavaHeaderTask is used to run javah. The JAVAH property will point at *
879 * the version of javah to be used (i.e.: a path to javah) *
880 * - CCTask compiles native code. Specifically it will compile .m, .c, *
881 * .cpp, or .cc files. It uses the headers provided by the *
882 * JavaHeaderTask plus additional platform specific headers. It will *
883 * compile into .obj files. *
884 * - LinkTask will perform native linking and create the .dll / .so / *
885 * .dylib as necessary. *
886 * *
887 *****************************************************************************/
888
2011 jar.dependsOn compileLauncher;
2012 }
2013
2014 // Builds the javapackager executable. For everything other than windows,
2015 // this is simply moving the existing shell script and ensuring it has proper
2016 // permissions. For Windows, this includes compiling the native executable
2017 if (IS_WINDOWS && COMPILE_FXPACKAGER){
2018 task buildJavaPackager(type: CCTask, group: "Build") {
2019 description = "Compiles native sources for javapackager.exe"
2020 matches = "javapackager\\.cpp"
2021 params.addAll(WIN.fxpackager.ccFlags)
2022 compiler = WIN.fxpackager.compiler
2023 output(file("$buildDir/native/javapackager"))
2024 source WIN.fxpackager.nativeSource
2025 doFirst {
2026 copy {
2027 mkdir "$buildDir/native"
2028 mkdir "$buildDir/native/javapackager"
2029 from file("src/main/native/javapackager/win/javapackager.manifest")
2030 into file("$buildDir/native/javapackager")
2031 // FIXME: the following is wrong and needs to be fixed
2032 filter { line->
2033 line = line.replace("FXVERSION", "${RELEASE_VERSION}.${HUDSON_BUILD_NUMBER}");
2034 }
2035 }
2036 }
2037 doLast {
2038 mkdir "$buildDir/native"
2039 exec {
2040 environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT)
2041 commandLine(WIN.fxpackager.rcCompiler)
2042 args(WIN.fxpackager.rcFlags)
2043 args("/fo$buildDir/native/javapackager/javapackager.res")
2044 args(WIN.fxpackager.rcSource)
2045 }
2046 }
2047 doLast {
2048 mkdir "$buildDir/javapackager"
2049 exec({
2050 commandLine("$WIN.fxpackager.linker", "/nologo", "/opt:REF", "/incremental:no", "/manifest", "kernel32.lib", "advapi32.lib",
2051 "/out:$buildDir/native/javapackager/javapackager.exe",
2052 "$buildDir/native/javapackager/javapackager.obj",
2053 "$buildDir/native/javapackager/javapackager.res")
|
449 }
450
451 // The following properties are set based on properties defined in
452 // build.properties. The release version and suffix should be updated
453 // in that file.
454 def relVer = 0
455 if (jfxReleasePatchVersion == "0") {
456 if (jfxReleaseSecurityVersion == "0") {
457 if (jfxReleaseMinorVersion == "0") {
458 relVer = "${jfxReleaseMajorVersion}"
459 } else {
460 relVer = "${jfxReleaseMajorVersion}.${jfxReleaseMinorVersion}"
461 }
462 } else {
463 relVer = "${jfxReleaseMajorVersion}.${jfxReleaseMinorVersion}.${jfxReleaseSecurityVersion}"
464 }
465 } else {
466 relVer = "${jfxReleaseMajorVersion}.${jfxReleaseMinorVersion}.${jfxReleaseSecurityVersion}.${jfxReleasePatchVersion}"
467 }
468 defineProperty("RELEASE_VERSION", relVer)
469 defineProperty("RELEASE_VERSION_PADDED", "${jfxReleaseMajorVersion}.${jfxReleaseMinorVersion}.${jfxReleaseSecurityVersion}.${jfxReleasePatchVersion}")
470
471 def buildDate = new java.util.Date()
472 def buildTimestamp = new java.text.SimpleDateFormat("yyyy-MM-dd-HHmmss").format(buildDate)
473 defineProperty("BUILD_TIMESTAMP", buildTimestamp)
474 def relSuffix = ""
475 def relOpt = ""
476 if (HUDSON_JOB_NAME == "not_hudson") {
477 relSuffix = "-internal"
478 relOpt = "-${buildTimestamp}"
479 } else {
480 relSuffix = jfxReleaseSuffix
481 }
482 defineProperty("RELEASE_SUFFIX", relSuffix)
483 defineProperty("RELEASE_VERSION_SHORT", "${RELEASE_VERSION}${RELEASE_SUFFIX}")
484 defineProperty("RELEASE_VERSION_LONG", "${RELEASE_VERSION_SHORT}+${PROMOTED_BUILD_NUMBER}${relOpt}")
485
486 // Check whether the COMPILE_TARGETS property has been specified (if so, it was done by
487 // the user and not by this script). If it has not been defined then default
488 // to building the normal desktop build for this machine
489 project.ext.set("defaultHostTarget", IS_MAC ? "mac" : IS_WINDOWS ? "win" : IS_LINUX ? "linux" : "");
490 defineProperty("COMPILE_TARGETS", "$defaultHostTarget")
851 logger.quiet("java.runtime.version: ${javaRuntimeVersion}")
852 logger.quiet("java version: ${javaVersion}")
853 logger.quiet("java build number: ${javaBuildNumber}")
854 logger.quiet("jdk.runtime.version: ${jdkRuntimeVersion}")
855 logger.quiet("jdk version: ${jdkVersion}")
856 logger.quiet("jdk build number: ${jdkBuildNumber}")
857 logger.quiet("minimum jdk version: ${jfxBuildJdkVersion}")
858 logger.quiet("minimum jdk build number: ${jfxBuildJdkBuildnumMin}")
859 logger.quiet("CONF: $CONF")
860 logger.quiet("NUM_COMPILE_THREADS: $NUM_COMPILE_THREADS")
861 logger.quiet("COMPILE_TARGETS: $COMPILE_TARGETS")
862 logger.quiet("COMPILE_FLAGS_FILES: $COMPILE_FLAGS_FILES")
863 logger.quiet("HUDSON_JOB_NAME: $HUDSON_JOB_NAME")
864 logger.quiet("HUDSON_BUILD_NUMBER: $HUDSON_BUILD_NUMBER")
865 logger.quiet("PROMOTED_BUILD_NUMBER: $PROMOTED_BUILD_NUMBER")
866 logger.quiet("PRODUCT_NAME: $PRODUCT_NAME")
867 logger.quiet("RELEASE_VERSION: $RELEASE_VERSION")
868 logger.quiet("RELEASE_SUFFIX: $RELEASE_SUFFIX")
869 logger.quiet("RELEASE_VERSION_SHORT: $RELEASE_VERSION_SHORT")
870 logger.quiet("RELEASE_VERSION_LONG: $RELEASE_VERSION_LONG")
871 logger.quiet("RELEASE_VERSION_PADDED: $RELEASE_VERSION_PADDED")
872
873 if (UPDATE_STUB_CACHE) {
874 logger.quiet("UPDATE_STUB_CACHE: $UPDATE_STUB_CACHE")
875 }
876
877 /******************************************************************************
878 * *
879 * Definition of Native Code Compilation Tasks *
880 * *
881 * - JavaHeaderTask is used to run javah. The JAVAH property will point at *
882 * the version of javah to be used (i.e.: a path to javah) *
883 * - CCTask compiles native code. Specifically it will compile .m, .c, *
884 * .cpp, or .cc files. It uses the headers provided by the *
885 * JavaHeaderTask plus additional platform specific headers. It will *
886 * compile into .obj files. *
887 * - LinkTask will perform native linking and create the .dll / .so / *
888 * .dylib as necessary. *
889 * *
890 *****************************************************************************/
891
2014 jar.dependsOn compileLauncher;
2015 }
2016
2017 // Builds the javapackager executable. For everything other than windows,
2018 // this is simply moving the existing shell script and ensuring it has proper
2019 // permissions. For Windows, this includes compiling the native executable
2020 if (IS_WINDOWS && COMPILE_FXPACKAGER){
2021 task buildJavaPackager(type: CCTask, group: "Build") {
2022 description = "Compiles native sources for javapackager.exe"
2023 matches = "javapackager\\.cpp"
2024 params.addAll(WIN.fxpackager.ccFlags)
2025 compiler = WIN.fxpackager.compiler
2026 output(file("$buildDir/native/javapackager"))
2027 source WIN.fxpackager.nativeSource
2028 doFirst {
2029 copy {
2030 mkdir "$buildDir/native"
2031 mkdir "$buildDir/native/javapackager"
2032 from file("src/main/native/javapackager/win/javapackager.manifest")
2033 into file("$buildDir/native/javapackager")
2034 filter { line->
2035 line = line.replace("FXVERSION", RELEASE_VERSION_PADDED)
2036 }
2037 }
2038 }
2039 doLast {
2040 mkdir "$buildDir/native"
2041 exec {
2042 environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT)
2043 commandLine(WIN.fxpackager.rcCompiler)
2044 args(WIN.fxpackager.rcFlags)
2045 args("/fo$buildDir/native/javapackager/javapackager.res")
2046 args(WIN.fxpackager.rcSource)
2047 }
2048 }
2049 doLast {
2050 mkdir "$buildDir/javapackager"
2051 exec({
2052 commandLine("$WIN.fxpackager.linker", "/nologo", "/opt:REF", "/incremental:no", "/manifest", "kernel32.lib", "advapi32.lib",
2053 "/out:$buildDir/native/javapackager/javapackager.exe",
2054 "$buildDir/native/javapackager/javapackager.obj",
2055 "$buildDir/native/javapackager/javapackager.res")
|